go-ragger

module
v0.0.0-...-085a19f Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jul 21, 2025 License: MIT

README

Go-Ragger

License Demo

Go-Ragger - это веб-приложение для организации базы знаний на основе RAG (Retrieval-Augmented Generation) AI.

🚀 Демо

Работающее демо доступно здесь

✨ Возможности

  • 🔐 Регистрация и авторизация пользователей
  • 📂 Загрузка, просмотр и скачивание документов (PDF, DOCX, XLSX, PPTX, JPG, PNG и др.)
  • 🤖 ИИ-ассистент для ответов на вопросы по документам

🛠️ Технологический стек

📝 Как это работает

  1. Пользователь загружает документы в хранилище
  2. Документы разбиваются на чанки "умными методами" с помощью сервиса Chunkr.ai
  3. Чанки векторизуются с помощью LLM и сохраняются в Milvus
  4. При запросе к ИИ-ассистенту:
    • Векторная БД ищет релевантные запросу чанки
    • Найденные чанки подаются в LLM как контекст для формирования ответа

⚙️ Требования

Для работы приложения необходимо:

  • Доступ по API к сервису chunkr.ai (можно развернуть локально - инструкции)
  • Доступ по API к OpenAI-совместимому API (например, Ollama)
  • Установленный DevSpace
  • Работающий Kubernetes-кластер (можно использовать Kind)

🚀 Запуск проекта

Первоначальная настройка

При первом запуске Devspace запросит необходимые переменные:

  • Имя Docker Hub аккаунта
  • Виртуальный хост для Ingress
  • Модель для эмбеддинга (рекомендуется дефолтная)
  • Модель для чата (рекомендуется дефолтная)
  • URL OpenAI-совместимого сервиса
  • API-ключ OpenAI-совместимого сервиса
  • URL API сервиса Chunkr
  • API-ключ сервиса Chunkr

Devspace сохранит введенные ответы для последующих запусков.

Для сброса переменных:

 devspace reset vars
Разработка
  1. Запустить devspace deploy:
devspace deploy --namespace ragger 
  • создаст заданный namespace если не существует
  • соберет докер-образы
  • развернет prod деплоймент в заданном кластере и неймспейсе вместе с дополнительными сервисами (postgresql и milvus)
  1. Запустить devspace dev:
devspace dev
  • заменит prod образ на dev в кластере
  • запустит терминал в контейнере приложения.
  1. В терминале DevSpace выполнить:
task reset-all      # Сгенерировать код, резетнуть и засидить бд
task                # Запустить приложение в dev-режиме с hot-reload
  1. Приложение будет доступно по адресу: http://localhost:8383
Полезные команды разработки (в Taskfile.yml):
task db:seed # создать сиды в БД
task sqlc:generate # сгенерировать SQLC код
task reset-all # сбросить и засидить БД, перегенерировать код
Деплоймент
  1. Запустить devspace:
devspace reset vars # сбросить переменные devspace на всякий случай
devspace deploy --namespace ragger # запустить prod деплоймент в namespace ragger
  • соберет prod-образ приложения и образ миграций
  • развернет в заданном кластере и неймспейсе вместе с дополнительными сервисам (postgresql и milvus)
  • запустит init-конейнер для применения миграций
  • запустит приложение
  • приложение будет доступно по адресу виртуального хоста

📄 Лицензия

MIT License - см. LICENSE

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL