Разработка RAG-системы для корпоративной документации
Задача
Создать интеллектуальную RAG-систему (Retrieval-Augmented Generation), которая позволит эффективно искать и анализировать внутреннюю документацию строительной компании. Требуется обрабатывать большие объёмы неструктурированных данных, такие как:
- Проектная документация
- Сметы и договоры с подрядчиками
- Технические регламенты
- СНиПы и ГОСТы
Функциональные требования
1. Обработка и индексирование
- Загрузка файлов различных форматов (PDF, DOCX, Excel, текст и др.) одной папкой или через веб-интерфейс
- Автоматическое извлечение текста, разбиение на чанки (с учётом семантики и структуры)
- Генерация эмбедингов с помощью современных моделей (например, sentence-transformers или API LLM)
2. Механизм поиска
- Семантический поиск по корпусу документов (векторная база данных, FAISS / Pinecone / Qdrant)
- Ключевой поиск и ранжирование релевантных чанков
- Поддержка естественно-языковых запросов, синонимов и профессиональной терминологии
3. Генерация ответов
- Интеграция с LLM (GPT, Click, HuggingFace или другая модель) для создания выдержек или полных ответов на основе найденных документов
- Возможность указания источников (ссылки на документы/страницы) в ответе
- Контроль за актуальностью - update index при добавлении/изменении файлов
4. Интерфейс
- Удобный чат-интерфейс для взаимодействия
- Фильтры по типу документа, дате, подрядчику, разделу
- Режимы: простой ‘Q&A’ по запросу и ‘Explorer’ для многошагового анализа
Технические требования
- Масштабируемость - система для единовременной работы с десятками тысяч страниц
- Поддержание конфиденциальности - работа в корпоративной сети или изолированном окружении
- Микросервисная архитектура (бекенд на Python/FastAPI, векторная база, модуль перестроения индекса, front-end)
- API для интеграции с существующими корпоративными системами (CRM, документооборот)
- Логирование и аудит - кто и по каким запросам взаимодействовал
Комментарий исполнителю
В компании используется большой массив исторических документов разных форматов, включая текстовые сканы. Необходимо реализовать распознавание артефактов (таблиц, формул) внутри чанков. Также важно настроить детекцию дубликатов и контекстную рубрикацию.