Зачем менять запрос

Пользователь пишет коротко, с опечатками, местоимениями и внутренними терминами. Query transformation может раскрыть сущности и создать несколько retrieval-вариантов, но добавляет latency и риск смыслового дрейфа.

Normalization

Сначала применяйте детерминированные правила: Unicode, регистр для выбранных полей, alias-справочник, даты и артикулы. Не удаляйте редкие символы вслепую — они могут быть ключом к точному совпадению.

Expansion и multi-query

Создайте несколько синонимичных запросов, выполните retrieval параллельно и объедините ranks. Ограничивайте число вариантов и сохраняйте исходный запрос как один из путей.

Decomposition

Сложный вопрос разбивается на подзадачи, особенно когда второй факт зависит от первого. Каждый hop должен иметь лимит, evidence и условие завершения; иначе агент создаёт дорогой бесконечный поиск.

HyDE

Модель генерирует гипотетический ответ и ищет документы, похожие на него. Метод может улучшать semantic recall, но способен зафиксировать неверную гипотезу. Используйте его как дополнительный retriever, не как доказательство.

Защита намерения

Храните original query, transformed queries и причины. Запрещайте rewrite расширять tenant, временной диапазон или права. Для неоднозначного бизнес-действия лучше уточнение пользователя.

Оценка

Размечайте query class и сравнивайте Recall@k, nDCG, answer correctness, latency и стоимость. Отдельно измеряйте semantic drift: найденные документы релевантны переписанному, но не исходному вопросу.

С чего начать?
С ограниченного корпуса, реальных запросов и измеримого baseline. Зафиксируйте версии данных, retrieval и модели до эксперимента.
Какие метрики обязательны?
Retrieval quality, correctness ответа, p95 latency, стоимость и ошибки по отдельным сегментам запросов.
Можно ли копировать настройки из документации?
Только как baseline. Финальные параметры выбираются по вашему корпусу, фильтрам, языку и нагрузке.
Как выпускать изменение?
Собрать новую версию рядом, прогнать offline eval и shadow, затем canary с готовым rollback.
Что логировать?
Trace ID, версии pipeline и индекса, transformed queries, candidate IDs, filters и итоговые метрики без лишнего чувствительного payload.
Как избежать утечки данных?
Проверять identity и ACL до retrieval, изолировать кэши и повторно проверять права при показе citations.
← Все статьи блога