Files
DLE/md/RAG_SEARCH_SETUP_AND_TEST.md

4.8 KiB
Raw Blame History

План настройки и тестирования поиска по таблице 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.
  • Пример запроса:
    POST /api/chat/message
    {
      "userId": 137,
      "message": "Как зовут?"
    }
    

8. Автоматизация тестирования (по желанию)

  • Написать автотесты (например, на Mocha/Jest), которые будут отправлять вопросы и сверять ответы с ожидаемыми из RAG.

9. Рекомендации

  • Для тестов использовать уникальные, простые вопросы и ответы.
  • После каждого изменения настроек проводить тестовые запросы.
  • Добавить в UI индикатор источника ответа (из базы или сгенерирован).

Этапы внедрения сервиса векторного поиска (под ключ)

  • 1. Проектирование и создание структуры Python-сервиса (FastAPI + FAISS)
  • 2. Реализация REST API: /upsert, /search, /delete, /rebuild, /health
  • 3. Интеграция с Ollama для генерации эмбеддингов
  • 4. Dockerfile и docker-compose для сервиса
  • 5. Интеграция Node.js backend с новым сервисом (HTTP-клиент)
  • 6. Перенос логики поиска из ragService.js на новый сервис
  • 7. Тестирование интеграции (ручное и через API)
  • 8. Документация по запуску и использованию
  • 9. Финальное тестирование через UI и API
  • 10. Передача проекта заказчику

Прогресс:

  • Сервис векторного поиска реализован, поддерживает кэширование, интеграцию с Ollama, все основные REST API.
  • Следующий этап — интеграция с Node.js backend и перенос логики поиска.

Если потребуется пример кода или помощь с конкретной реализацией — обращайтесь!