DocRAG — Q&A по документам с поддержкой ChatGPT, Claude, Llama
Self-hosted приложение для умного поиска по документам с использованием больших языковых моделей.
Возможности:
— Загрузка PDF, DOCX, TXT, MD-файлов
— Векторная индексация документов (ChromaDB)
— Q&A с цитированием конкретных фрагментов источника — пользователь видит, откуда взят ответ
— Двуязычный интерфейс RU/EN с переключателем
— Поддержка любых OpenAI-совместимых API: OpenAI, Anthropic Claude, NVIDIA NIM, OpenRouter, локальные модели через Ollama
— Запуск одной командой через Docker
Архитектура и стек:
— FastAPI + Uvicorn — асинхронный backend
— ChromaDB — локальная векторная БД для хранения эмбеддингов
— tiktoken — разбиение текста на чанки с учётом токенов
— pypdf, python-docx — извлечение текста из документов
— Vanilla HTML/CSS/JS — фронтенд без зависимостей и сборки
— Docker + docker-compose — деплой одной командой
Особенности реализации:
— Корректная работа с асимметричными моделями эмбеддингов (NVIDIA nv-embedqa) — разделение passage/query
— Token-aware разбиение текста с настраиваемым overlap
— Системный промпт с инструкцией отвечать только на основе предоставленных фрагментов и на языке вопроса
Подходит для:
— AI-ассистентов по базе знаний компании
— автоматизации поддержки клиентов
— поиска по технической документации
— обработки внутренних регламентов и инструкций
Открытый код, документация и Docker-сборка: https://github.com/lowlatency-dev/docrag