Умный поиск тендеров
Опишите закупку обычными словами — сервис сам распознает закон, регион, бюджет и категорию.
—
RAG-ассистент
Аналитика рынка закупок
Как устроен сервис
Прототип веб-сервиса умного поиска тендеров с RAG-ассистентом.
Конвейер обработки запроса
- Разбор запроса. Из естественно-языковой формулировки извлекаются структурные фильтры: закон (44-ФЗ / 223-ФЗ), регион, категория, диапазон НМЦК, признак СМП, актуальность.
- Гибридный поиск. Параллельно работают BM25 (лексика, точные термины и номера) и плотные векторы (семантика, синонимы, словоформы).
- Слияние RRF. Два ранжирования объединяются методом Reciprocal Rank Fusion — устойчиво к разным шкалам оценок.
- Фильтрация и реранк. Применяются жёсткие фильтры, затем буст по свежести, статусу и совпадению атрибутов.
- Генерация ответа. Найденные фрагменты попадают в контекст LLM; каждое утверждение сопровождается ссылкой на источник [n].
- Проверка ссылок. Guardrail отклоняет ответы со ссылками на несуществующие фрагменты.
Технологический стек
- Backend
- Python 3.11, FastAPI, Pydantic v2
- Поиск
- BM25 (Okapi) + плотные векторы, RRF-слияние
- Эмбеддинги
- сменный провайдер: локальный / OpenAI / YandexGPT / GigaChat
- Генерация
- сменный провайдер LLM + офлайн-экстрактивный фолбэк
- Frontend
- одностраничное приложение без сборки (HTML + CSS + vanilla JS)
- Тестирование
- pytest: API, качество поиска (Recall@k, MRR), guardrails RAG
- Источник данных
- карточки закупок в формате ЕИС; адаптер под zakupki.gov.ru