Проблематика прототипирования RAG
Построить базовый прототип системы Retrieval-Augmented Generation (RAG) можно за выходные. Достаточно установить библиотеку оркестрации, загрузить небольшой текстовый файл и отправить сырые строки через API OpenAI. Однако перевод такого прототипа в промышленное использование представляет собой совершенно другую инженерную задачу.
В реальных корпоративных средах стандартные реализации языковых моделей быстро сталкиваются с тремя серьезными проблемами:
- Неопределенные расходы на токены API;
- Высокая задержка при выводе данных;
- Риск «тихих галлюцинаций», когда модель выдает неверные ответы без явных признаков ошибки.
Архитектура Nexus Knowledge Engine
Для решения этих проблем был разработан Nexus Knowledge Engine – безопасный, полностью контейнеризованный и готовый к эксплуатации корпоративный движок RAG и LLMOps, ориентированный на строгие критерии качества поиска, высокопроизводительное индексирование базы данных и глубокую надежность системы.
Основные компоненты архитектуры:
- Core Backend: FastAPI (Python 3.11), Uvicorn, Asyncpg, Pydantic v2, Pydantic Settings;
- Хранение векторных и реляционных данных: PostgreSQL 16 с расширением pgvector;
- Кэширующий слой: Redis 7 (Alpine);
- Машинное обучение и встраивание: библиотека sentence-transformers модели all-MiniLM-L6-v2 (размерность 384);
- Оркестрация: LangChain, OpenAI GPT-4 mini;
- Инфраструктура: Docker, Docker Compose, многостадийные производственные сборки;
- CI/CD и тестирование: GitHub Actions, Pytest, Pytest-cov, Ruff;
- Телеметрия и мониторинг: MLflow.
Высокоскоростная обработка документов
При обработке загруженных документов необходимо избегать блокировки цикла событий веб-сервера. Для этого Nexus использует структурированные и эффективные методы обработки памяти. Обработка включает следующие этапы:
- Извлечение исходного документа с помощью библиотеки PyMuPDF;
- Агрессивная нормализация текста и очистка от шумов;
- Пользовательское разбиение на фрагменты методом скользящего окна с размером фрагмента 1000 и перекрытием 200, что позволяет сохранить семантическую непрерывность между фрагментами и улучшить качество поиска.
Поиск по векторам с использованием HNSW
Вместо традиционного линейного сканирования векторов (O(N)), Nexus реализует высокоэффективный поиск по векторам с использованием алгоритма иерархического навигационного графа (HNSW). Это значительно ускоряет процесс поиска и снижает нагрузку на систему.