ваше сообщение коммита
This commit is contained in:
129
RAG_TASKS.md
Normal file
129
RAG_TASKS.md
Normal file
@@ -0,0 +1,129 @@
|
||||
# Внедрение 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. Безопасность и контроль
|
||||
- Только администратор может создавать и редактировать системные теги и знания.
|
||||
- Обычные пользователи могут видеть только свои теги и связанные с ними знания.
|
||||
|
||||
---
|
||||
|
||||
**Этот документ будет дополняться по мере реализации каждого этапа.**
|
||||
Reference in New Issue
Block a user