Keine Beschreibung

Artem Kastrov 8b5e72db77 TMP vor 1 Monat
.docker 8590338b77 Init vor 2 Monaten
src 8b5e72db77 TMP vor 1 Monat
.env.example 8590338b77 Init vor 2 Monaten
.gitignore 8b5e72db77 TMP vor 1 Monat
Pipfile 8b5e72db77 TMP vor 1 Monat
Pipfile.lock 8b5e72db77 TMP vor 1 Monat
README.md 8590338b77 Init vor 2 Monaten
Taskfile.yml 8590338b77 Init vor 2 Monaten
config.py 8b5e72db77 TMP vor 1 Monat
devbox.json 8590338b77 Init vor 2 Monaten
devbox.lock 8590338b77 Init vor 2 Monaten
docker-compose.yml 8b5e72db77 TMP vor 1 Monat
requirement.txt 8b5e72db77 TMP vor 1 Monat

README.md

Описание

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