README.md 3.9 KB

Описание

Была реализована RAG система с историей сообщений, которая отвечает на вопросы по Terraria Wiki.

  • Dataset: parkourer10/terraria-wiki
  • Embeddings: paraphrase-multilingual-MiniLM-L12-v2

Результат

Настроен мониторинг в Langfuse, протестированны некоторые запросы к модели, можно сравнить время выполнения операций. Мне больше понравилась Qwen3 по качеству ответа. llama3.1 не корректно переформулировала запрос к векторной базе данных, возможно требуется переписать промпт на этом этапе. Для качественного ответа процесс можно настраивать и настраивать

P.S. Не имею GPU, ключа для OpenAI тоже нет, так что использовал Ollama для моделей. Поэтому время выполнения операция большое. Ollama не возвращает количество сгенерированных токенов, поэтому количество токенов и стоимость в метриках не учитывается

P.P.S. Сначала RAG был реализован реализован на Chroma, а при настройки Langfuse, он требовал clickhouse. Одну из них, по иде, можно убрать

Стек

  • Python 3.11
  • Ollama
  • Сhroma - векторная БД для хранения Dataset с Terraria Wiki
  • Langchain
  • Langfuse - требует для работы Postgres, Minio, Clickhouse, Redis

Запуск

Вариант 1. Dev Container

  • Запустить Dev Container
  • Скопировать .env.example в .env (переменные уже настроены)
  • Установить pip install -r requirement.txt
  • Выполнить команду task up для запуска сервиса
  • Дождаться пока Ollama скачает модели (Модели указываются в env OLLAMA_MODELS и качаются автоматически, после запуска контейнера)
  • Запустить скрипт src/main.py
  • При желании, можно изменить список загружаемых моделей в env (необходим перезапуск контейнера Ollama)
  • При желании, можно изменить используемую модель (В самом файле main.py из списка OLLAMA_MODELS)
  • При желании, можно изменить список вопросов к модели (В файле main.py)

Вариант 2. Ручной запуск

  • Скопировать .env.example в .env
  • Изменить значение переменных в .env OLLAMA_HOST, CHROMA_URL и LANGFUSE_HOST на localhost
  • Установить pip install -r requirement.txt
  • Выполнить команду docker compose up -d для запуска сервиса
  • Дождаться пока Ollama скачает модели (Модели указываются в env OLLAMA_MODELS и качаются автоматически, после запуска контейнера)
  • Запустить скрипт src/main.py
  • При желании, можно изменить список загружаемых моделей в env (необходим перезапуск контейнера Ollama)
  • При желании, можно изменить используемую модель (В самом файле main.py из списка OLLAMA_MODELS)
  • При желании, можно изменить список вопросов к модели (В файле main.py)