Зачем менять запрос
Пользователь пишет коротко, с опечатками, местоимениями и внутренними терминами. 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: найденные документы релевантны переписанному, но не исходному вопросу.