9.0 KiB
9.0 KiB
Внедрение RAG-ассистента: поэтапный план
Особенности проекта: разнообразие клиентов, каналов и данных
-
Клиенты:
- Различные сегменты: B2B, B2C, VIP, оптовые и розничные покупатели, корпоративные клиенты, частные лица и др.
- Различные сценарии взаимодействия (покупка, поддержка, консультация, возврат и т.д.).
-
Каналы коммуникации:
- Веб-чат
- Telegram/мессенджеры
- Возможна интеграция с другими каналами (WhatsApp, телефон и др.)
-
Типы данных:
- Текстовые сообщения
- Аудио, видео, изображения (мультимодальные данные)
- Вложения (документы, сканы, фото товаров и т.д.)
-
Языки:
- Русский
- Английский
- Испанский
- Китайский
- Возможность расширения на другие языки
-
Товары и услуги:
- Широкий ассортимент товаров (разные категории, бренды, характеристики)
- Различные услуги (консультации, сервис, доставка, гарантия, возврат и др.)
- Возможность кросс-продаж и рекомендаций
-
Требования к RAG:
- Гибкая фильтрация знаний по сегменту клиента, языку, категории товара/услуги, каналу обращения
- Поддержка мультиязычности и мультимодальности
- Масштабируемость для добавления новых ассистентов, сегментов, каналов и языков
Этап 1. Проектирование и подготовка инфраструктуры
- Проектирование схемы хранения знаний (RAG):
- Описать структуру таблицы
knowledge_documents(миграция). - Определить поля: id, content, language, type (текст/медиа), метаданные, дата, автор и т.д.
- Описать структуру таблицы
- Подготовка backend:
- Создать миграцию и модель для
knowledge_documents. - Подготовить базовые CRUD-эндпоинты для работы с базой знаний.
- Создать миграцию и модель для
Этап 2. Интеграция векторного поиска (RAG)
- Реализация векторного хранилища:
- Реализовать методы инициализации и поиска (
initVectorStore,findSimilarDocuments) вai-assistant.js. - Настроить хранение эмбеддингов для документов.
- Реализовать методы инициализации и поиска (
- API для поиска знаний:
- Добавить эндпоинт для поиска релевантных знаний по запросу пользователя.
Этап 3. Интеграция RAG в pipeline ассистента
- Модификация логики ответа ассистента:
- При получении сообщения пользователя — искать релевантные знания и включать их в prompt LLM.
- Обеспечить мультиязычность поиска и генерации ответа.
- Логирование и трассировка:
- Сохранять, какие знания были использованы для ответа.
Этап 4. Интерфейс для админа
- UI для управления знаниями:
- Добавить на фронте раздел для просмотра, добавления, редактирования и удаления знаний.
- UI для модерации ответов ассистента:
- Кнопки "Редактировать", "Отправить", "Добавить в RAG" для сообщений и ответов.
- Возможность быстро добавить сообщение пользователя или ответ ассистента в базу знаний.
Этап 5. Поддержка мультимодальности и мультиязычности
- Обработка вложений (аудио, видео, картинки):
- Решить, как хранить и индексировать такие данные (например, хранить ссылки и метаданные, а не сами файлы).
- Мультиязычный поиск и генерация:
- Проверить корректность работы эмбеддингов и LLM для разных языков.
Этап 6. Тестирование и оптимизация
- Покрытие тестами ключевых сценариев (unit, интеграционные).
- Оптимизация скорости поиска и генерации.
- Документация для команды.
Бизнес-логика управления знаниями и тегами для 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. Безопасность и контроль
- Только администратор может создавать и редактировать системные теги и знания.
- Обычные пользователи могут видеть только свои теги и связанные с ними знания.
Этот документ будет дополняться по мере реализации каждого этапа.