ваше сообщение коммита
This commit is contained in:
@@ -7,13 +7,14 @@
|
||||
- Поддерживает фильтрацию по продуктам, сегментам клиентов (тегам), приоритету, дате и другим бизнес-полям.
|
||||
- Интегрируется с LLM (Ollama/OpenAI) для генерации финального ответа на основе найденного контекста.
|
||||
- Позволяет настраивать системный промт с плейсхолдерами для гибкой персонализации ответов.
|
||||
- Позволяет генерировать draft-ответ для администратора, который может быть отредактирован и отправлен вручную.
|
||||
|
||||
---
|
||||
|
||||
## Основные требования
|
||||
|
||||
1. **Структура RAG-таблицы**
|
||||
- Каждая строка содержит:
|
||||
1. **Гибкая структура RAG-таблицы**
|
||||
- Пользователь может создавать таблицы с произвольными столбцами и назначать им специальное значение (purpose) через выпадающий список:
|
||||
- Вопрос (`question`)
|
||||
- Ответ (`answer`)
|
||||
- Ответ с уточняющим вопросом (`clarifyingAnswer`)
|
||||
@@ -23,12 +24,13 @@
|
||||
- Дополнительный контекст (`context`)
|
||||
- Приоритет (`priority`)
|
||||
- Дата (`date`)
|
||||
- Для каждого столбца указывается назначение (purpose) через выпадающий список при создании/редактировании.
|
||||
- Для каждого столбца указывается назначение при создании/редактировании.
|
||||
- Можно добавлять дополнительные столбцы для бизнес-атрибутов.
|
||||
|
||||
2. **Фильтрация и поиск**
|
||||
- При поступлении вопроса пользователя:
|
||||
- Фильтровать строки по продукту, тегам пользователя, приоритету, дате и другим полям.
|
||||
- Выполнять векторный поиск (embedding) только по релевантным строкам.
|
||||
- Выполнять векторный поиск (embedding) только по релевантным строкам (по столбцу "Вопрос").
|
||||
|
||||
3. **Интеграция с LLM**
|
||||
- После поиска по RAG-таблице формировать системный промт с подстановкой найденных данных (через плейсхолдеры).
|
||||
@@ -59,6 +61,11 @@
|
||||
- Логируются все этапы работы ассистента: запрос пользователя, найденный контекст, результат LLM, время ответа, id пользователя и т.д.
|
||||
- Вся информация сохраняется для последующего анализа и улучшения качества ответов.
|
||||
|
||||
7. **Автоответ и draft-ответ**
|
||||
- Если найден релевантный вопрос (score > 0.95) — ассистент автоматически отвечает пользователю.
|
||||
- Если нет — ассистент генерирует draft-ответ для администратора (через роут `/ai-draft`), который подставляется в поле ввода и ожидает отправки админом. Draft генерируется всегда, даже если нет точного совпадения в RAG.
|
||||
- Draft-ответ строится с учётом промта, истории и всех доступных данных из RAG.
|
||||
|
||||
---
|
||||
|
||||
## Пример бизнес-сценария
|
||||
@@ -69,6 +76,7 @@
|
||||
- Векторный поиск проводится только по релевантным строкам.
|
||||
- В системном промте используются плейсхолдеры для подстановки найденных данных.
|
||||
- LLM генерирует финальный ответ с учётом контекста, уточняющих вопросов и ответов на возражения.
|
||||
- Если точного совпадения нет — draft-ответ для администратора формируется на основе промта и истории.
|
||||
|
||||
---
|
||||
|
||||
@@ -89,4 +97,5 @@
|
||||
|
||||
- Персонализированные, точные и масштабируемые ответы для разных продуктов и сегментов клиентов.
|
||||
- Гибкая настройка ассистента через UI и системный промт.
|
||||
- Возможность расширения под любые бизнес-сценарии.
|
||||
- Возможность расширения под любые бизнес-сценарии.
|
||||
- Draft-ответы для администратора, которые можно редактировать и отправлять вручную.
|
||||
51
md/RAG_SEARCH_SETUP_AND_TEST.md
Normal file
51
md/RAG_SEARCH_SETUP_AND_TEST.md
Normal file
@@ -0,0 +1,51 @@
|
||||
# План настройки и тестирования поиска по таблице RAG
|
||||
|
||||
## 1. Подготовка таблицы RAG
|
||||
- Убедиться, что таблица RAG создана и содержит пары "вопрос-ответ".
|
||||
- Добавить несколько тестовых записей через UI или напрямую в базу данных.
|
||||
|
||||
## 2. Настройка провайдера эмбеддингов
|
||||
- В настройках ассистента выбрать нужного провайдера (OpenAI, Ollama и др.).
|
||||
- Ввести API-ключ и Base URL (например, для OpenAI: https://api.openai.com/v1).
|
||||
- Сохранить настройки.
|
||||
|
||||
## 3. Проверка настроек ассистента
|
||||
- Убедиться, что выбран актуальный ID таблицы RAG.
|
||||
- Проверить выбранного провайдера эмбеддингов.
|
||||
- Установить порог релевантности (например, 0.95).
|
||||
|
||||
## 4. Проверка backend-логики
|
||||
- Проверить, что в backend (например, в ragService.js) реализован поиск по RAG с использованием выбранного провайдера эмбеддингов.
|
||||
- Убедиться, что используется актуальный ID таблицы и динамический выбор провайдера.
|
||||
- Проверить возможность изменения порога релевантности.
|
||||
|
||||
## 5. Тестирование через UI
|
||||
- Отправить ассистенту вопрос, который есть в RAG-таблице — убедиться, что ответ возвращается из базы.
|
||||
- Отправить вопрос, которого нет в таблице — убедиться, что ассистент либо не отвечает, либо использует LLM (по настройкам).
|
||||
|
||||
## 6. Проверка логов backend
|
||||
- Проверить логи на наличие сообщений о поиске по RAG, найденных совпадениях и выбранном провайдере эмбеддингов.
|
||||
- В случае ошибок — проанализировать и устранить их.
|
||||
|
||||
## 7. Тестирование через API (опционально)
|
||||
- Использовать Postman/curl для отправки запросов напрямую к backend.
|
||||
- Пример запроса:
|
||||
```http
|
||||
POST /api/chat/message
|
||||
{
|
||||
"userId": 137,
|
||||
"message": "Как зовут?"
|
||||
}
|
||||
```
|
||||
|
||||
## 8. Автоматизация тестирования (по желанию)
|
||||
- Написать автотесты (например, на Mocha/Jest), которые будут отправлять вопросы и сверять ответы с ожидаемыми из RAG.
|
||||
|
||||
## 9. Рекомендации
|
||||
- Для тестов использовать уникальные, простые вопросы и ответы.
|
||||
- После каждого изменения настроек проводить тестовые запросы.
|
||||
- Добавить в UI индикатор источника ответа (из базы или сгенерирован).
|
||||
|
||||
---
|
||||
|
||||
**Если потребуется пример кода или помощь с конкретной реализацией — обращайтесь!**
|
||||
Reference in New Issue
Block a user