Files
DLE/RAG_TASKS.md

9.0 KiB
Raw Blame History

Внедрение RAG-ассистента: поэтапный план


Особенности проекта: разнообразие клиентов, каналов и данных

  • Клиенты:

    • Различные сегменты: B2B, B2C, VIP, оптовые и розничные покупатели, корпоративные клиенты, частные лица и др.
    • Различные сценарии взаимодействия (покупка, поддержка, консультация, возврат и т.д.).
  • Каналы коммуникации:

    • Веб-чат
    • Email
    • Telegram/мессенджеры
    • Возможна интеграция с другими каналами (WhatsApp, телефон и др.)
  • Типы данных:

    • Текстовые сообщения
    • Аудио, видео, изображения (мультимодальные данные)
    • Вложения (документы, сканы, фото товаров и т.д.)
  • Языки:

    • Русский
    • Английский
    • Испанский
    • Китайский
    • Возможность расширения на другие языки
  • Товары и услуги:

    • Широкий ассортимент товаров (разные категории, бренды, характеристики)
    • Различные услуги (консультации, сервис, доставка, гарантия, возврат и др.)
    • Возможность кросс-продаж и рекомендаций
  • Требования к RAG:

    • Гибкая фильтрация знаний по сегменту клиента, языку, категории товара/услуги, каналу обращения
    • Поддержка мультиязычности и мультимодальности
    • Масштабируемость для добавления новых ассистентов, сегментов, каналов и языков

Этап 1. Проектирование и подготовка инфраструктуры

  1. Проектирование схемы хранения знаний (RAG):
    • Описать структуру таблицы knowledge_documents (миграция).
    • Определить поля: id, content, language, type (текст/медиа), метаданные, дата, автор и т.д.
  2. Подготовка backend:
    • Создать миграцию и модель для knowledge_documents.
    • Подготовить базовые CRUD-эндпоинты для работы с базой знаний.

Этап 2. Интеграция векторного поиска (RAG)

  1. Реализация векторного хранилища:
    • Реализовать методы инициализации и поиска (initVectorStore, findSimilarDocuments) в ai-assistant.js.
    • Настроить хранение эмбеддингов для документов.
  2. API для поиска знаний:
    • Добавить эндпоинт для поиска релевантных знаний по запросу пользователя.

Этап 3. Интеграция RAG в pipeline ассистента

  1. Модификация логики ответа ассистента:
    • При получении сообщения пользователя — искать релевантные знания и включать их в prompt LLM.
    • Обеспечить мультиязычность поиска и генерации ответа.
  2. Логирование и трассировка:
    • Сохранять, какие знания были использованы для ответа.

Этап 4. Интерфейс для админа

  1. UI для управления знаниями:
    • Добавить на фронте раздел для просмотра, добавления, редактирования и удаления знаний.
  2. UI для модерации ответов ассистента:
    • Кнопки "Редактировать", "Отправить", "Добавить в RAG" для сообщений и ответов.
    • Возможность быстро добавить сообщение пользователя или ответ ассистента в базу знаний.

Этап 5. Поддержка мультимодальности и мультиязычности

  1. Обработка вложений (аудио, видео, картинки):
    • Решить, как хранить и индексировать такие данные (например, хранить ссылки и метаданные, а не сами файлы).
  2. Мультиязычный поиск и генерация:
    • Проверить корректность работы эмбеддингов и LLM для разных языков.

Этап 6. Тестирование и оптимизация

  1. Покрытие тестами ключевых сценариев (unit, интеграционные).
  2. Оптимизация скорости поиска и генерации.
  3. Документация для команды.

Бизнес-логика управления знаниями и тегами для RAG-ассистента

1. Гибкая система тегов и связей с пользователями

  • Пользователь может создавать собственные таблицы тегов (например, "покупатель", "поставщик", "VIP-клиент" и т.д.).
  • В таблице тегов должна быть возможность добавлять ссылки (relation) на пользователей из таблицы users.
  • Для одного тега может быть привязано несколько пользователей (мультисвязь).
  • Для одного пользователя может быть несколько тегов.

2. Управление знаниями (FAQ, инструкции, ответы)

  • Пользователь может создавать таблицы с вопросами и ответами (например, FAQ для определённой группы клиентов).
  • Каждая запись (вопрос-ответ) может быть связана с определённым тегом или группой тегов.
  • Возможна фильтрация и поиск знаний по тегам, языку, типу клиента и другим параметрам.

3. Использование тегов и знаний в RAG-ассистенте

  • При обработке запроса пользователя RAG-ассистент определяет его теги (по связям в таблице тегов).
  • Для генерации ответа ассистент использует только те знания (вопросы/ответы), которые соответствуют тегам пользователя.
  • Администратор может добавлять новые теги, связывать их с пользователями, а также создавать и редактировать знания для каждой группы.

4. UI/UX требования

  • В интерфейсе создания/редактирования пользовательских таблиц должен быть доступен тип столбца "relation" (связь с users).
  • Для ячеек типа "relation" реализовать выпадающий список с поиском по пользователям.
  • Для таблиц знаний — возможность выбора одного или нескольких тегов для каждой записи.

Пример структуры:

  • Таблица user_tags: id, name, [user_id (relation, мультисвязь)]
  • Таблица faq: id, question, answer, [tag_id (relation, мультисвязь)]

Применение:

  • RAG-ассистент использует связи между пользователями, тегами и знаниями для персонализации ответов и поиска релевантной информации.

5. Безопасность и контроль

  • Только администратор может создавать и редактировать системные теги и знания.
  • Обычные пользователи могут видеть только свои теги и связанные с ними знания.

Этот документ будет дополняться по мере реализации каждого этапа.