Files
DLE/md/RAG_TASKS.md

15 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. Безопасность и контроль

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

Требования к CRM-интерфейсу для работы с контактами, тегами и настройками RAG-ассистента

1. Раздел "Контакты" в CRM

  • Фильтры:
    • Новые пользователи (по дате создания или статусу "новый").
    • Новые входящие сообщения (по наличию непрочитанных/неотвеченных сообщений).
    • Теги (мультиселект по тегам пользователя).
  • Детали контакта:
    • Просмотр истории сообщений.
    • Список тегов пользователя.
    • Добавление/удаление тегов через выпадающий список или автокомплит (создание связи в таблице user_tags).

2. Настройки ИИ-ассистента

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

3. Рекомендации по интерфейсу (Vue)

  • Компоненты:
    • ContactList.vue — фильтры, список пользователей
    • ContactDetails.vue — история сообщений, теги, добавление тегов
    • AssistantSettings.vue — выбор RAG-таблиц
    • RagTableSelector.vue — список таблиц с чекбоксами
    • TagList.vue — просмотр тегов в выбранной таблице

4. Схема действий администратора

  1. В разделе "Контакты" находит нового пользователя/сообщение через фильтры.
  2. В деталях контакта добавляет нужные теги пользователю.
  3. В настройках ассистента выбирает, какие RAG-таблицы использовать для поиска по тегам.
  4. ИИ-ассистент при ответе использует только релевантные RAG-таблицы и теги.

5. Пример структуры таблиц для RAG и тегов

  • users — пользователи
  • messages — сообщения
  • tags — справочник тегов
  • user_tags — связь пользователей и тегов (user_id, tag_id)
  • rag_tables — таблицы знаний (например, FAQ, инструкции)
  • rag_entries — записи в таблицах знаний (content, rag_table_id, ...)
  • rag_entry_tags — связь записей знаний и тегов (rag_entry_id, tag_id)

План внедрения RAG-ассистента в CRM

  1. Создать RAG-таблицы для ИИ-ассистента

    • Таблицы для хранения знаний о компании, продуктах, услугах (например, rag_tables, rag_entries).
    • Возможность добавлять, редактировать, удалять записи через UI.
    • Каждая запись может быть связана с тегами (например, категория продукта, язык, сегмент клиента).
  2. Создать таблицы с тегами для пользователей

    • Таблица тегов (tags).
    • Связующая таблица user_tags (user_id, tag_id).
    • UI для управления тегами и их привязкой к пользователям.
  3. Отредактировать страницу настройки ИИ-ассистента

    • Добавить выбор, какие RAG-таблицы использовать для поиска.
    • Отображать список тегов, связанных с выбранными таблицами.
    • Возможность быстро подключать/отключать таблицы и теги.
  4. Добавить в раздел "Контакты" фильтры (отдельные компоненты)

    • Фильтр по новым пользователям.
    • Фильтр по новым входящим сообщениям.
    • Фильтр по тегам (мультиселект).
    • Каждый фильтр реализовать отдельным Vue-компонентом для переиспользования.
  5. В "Детали контакта" добавить инлайн-кнопки

    • Кнопки:
      • Сгенерировать (ответ с помощью ИИ)
      • Редактировать (отредактировать сгенерированный ответ)
      • Отправить (отправить ответ пользователю)
      • Добавить в RAG-таблицу (сделать сообщение или ответ частью базы знаний)
    • Кнопки должны быть доступны для каждого сообщения в истории.

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