AI-сервис поиска · ЭБС «Лань» СТАТУС: PROD

AI-Snippets

Сниппет-ответы над поисковой выдачей ЭБС: кэш, BM25+RRF, quality gate, circuit breaker, graceful degradation. Стресс-тест: 13,2 часа без единой инфраструктурной ошибки.

ИСТОЧНИК: РУЧНОЙ README

AI-Snippets — сервис, который над поисковой выдачей ЭБС показывает короткий сниппет-ответ с маркерами источников. Если что-то падает — сниппет просто не появляется, выдача и сам поиск работают как обычно.

Как устроено

  • Pipeline: проверка двухуровневого кэша (exact + semantic) → классификация запроса → расширение запроса → multi-source поиск по Elasticsearch → сборка контекста через BM25 и RRF → генерация на vLLM → финальный quality gate.
  • Polling-схема через Redis, distributed semantic-кэш для похожих запросов, circuit breaker и graceful degradation: при любой проблеме сниппет не показывается — без ошибки наружу.
  • Серьёзный тюнинг параметров vLLM под производительность сниппетов на конкретной конфигурации сервера.

Проверено нагрузкой

Стресс-тест на целевом GPU-железе подтвердил готовность к production:

  • 13,2 часа непрерывной нагрузки, 55 200 запросов, ноль инфраструктурных ошибок (сервис не падал и не возвращал 5xx);
  • OK-rate quality gate — 87,3%: строгий отсев качества, остальные 13% — корректное срабатывание graceful degradation без ошибки наружу;
  • медиана клиентской латентности 4,6 секунды при SLA в 5.

Стек: Python · FastAPI · RabbitMQ · Redis · Elasticsearch · vLLM · sentence-transformers · Prometheus