Описание
Была реализована 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)