Разработчик Владимир опубликовал статью о создании RAG-системы для автоматизации ответов на вопросы, связанные с закупочной документацией. Система ориентирована на работу с федеральными законами ФЗ-44 и ФЗ-223, а также с внутренними положениями организаций. Ключевая особенность — полная работа в локальном контуре, без обращения к внешним API.
В основе решения лежит фреймворк LlamaIndex, который управляет пайплайном обработки запросов. Векторная база данных Qdrant хранит эмбеддинги документов. Для генерации эмбеддингов используется модель intfloat/multilingual-e5-base с размерностью 768. Сама LLM по умолчанию запускается через Ollama на локальном хосте: порт 11434, модель qwen3:14b. Опционально можно подключить реранкер cross-encoder/ms-marco-MiniLM-L-6-v2, который отбирает top-n наиболее релевантных чанков.
Особое внимание уделено обработке PDF-документов. Разработчик создал собственный класс PdfReader, который извлекает текст из потока байтов (документы поступают по сети). Если на странице меньше заданного порога символов (по умолчанию 50), автоматически запускается OCR через Tesseract с поддержкой русского и английского языков. Результат включает имя файла, текст и флаг использования OCR.
Для конфигурации проекта используется Pydantic Settings с переменными окружения, что упрощает развёртывание. Весь код написан на Python, а UI реализован на Gradio. Система может быть полезна для отделов закупок, которые работают с конфиденциальными данными и не могут использовать облачные сервисы. Подход демонстрирует, как собрать fully local RAG из открытых компонентов.

