1Где промахивается чистый векторный поиск
Векторный поиск превращает запрос и документы в числовые представления смысла и находит ближайшие. Это сильно: «ванна для двоих» найдёт просторные ванны, даже если слова «двоих» нет ни в одной карточке. Но у метода есть слепые зоны, которые больно бьют именно по каталогам.
Первая — категории-соседи. «Унитазы» и «Бачки для унитазов» по смыслу почти неразличимы, и бот может уверенно отвечать про бачки на вопрос об унитазах. Вторая — числа: вектор не понимает «до 30 тысяч», и дорогие товары вытесняют из выдачи подходящие по бюджету. Третья — короткие уточнения: реплика «горизонтальный до 12000» без слова «унитаз» из предыдущего сообщения превращается для поиска в шум.
2Что добавляет гибрид: лексика, категории и контекст диалога
Гибридный поиск ставит перед вектором лексический слой. Сначала система пытается сопоставить слова запроса с деревом категорий каталога — по основам слов «кондиционер» уверенно приводит в «Кондиционеры» — и ищет внутри найденной категории. Не удалось определить категорию — поиск честно падает в чистый вектор, а не молчит.
Второй элемент — контекст диалога: к короткому уточнению подмешивается предыдущее сообщение клиента, и «горизонтальный до 12000» снова становится запросом про унитазы. Такая связка закрывает большинство промахов: лексика даёт точность там, где слова совпадают, вектор — полноту там, где клиент говорит своими словами.
3Жёсткие фильтры поверх смысла
Третий слой гибрида — фильтры, которые нельзя доверять «смыслу», потому что это условия, а не семантика:
- Наличие. Либо в индекс попадают только доступные товары, либо выдача жёстко фильтруется по признаку «в наличии» — иначе бот продаёт то, чего нет.
- Цена. Если в запросе распознан бюджет («до 30 000»), он превращается в числовое условие поверх поиска, а не в пожелание.
- Числовые характеристики. Мощность, напор, площадь и подобные параметры хранятся в карточках отдельными тегами — модель подбирает по ним точно, а не «на глаз».
- Синонимы характеристик. «Какой напор» и «высота подъёма» — об одном и том же; словарь синонимов подмешивает канонические термины в запрос перед поиском.
4Последний рубеж: защита от галлюцинаций
Даже с хорошим поиском остаётся риск: если модель получила слабый контекст, она может «дорисовать» ответ брендами, знакомыми ей из обучения, — с правдоподобными ценами. Причём этим грешат и сильные модели: апгрейд LLM проблему не лечит, лечит качество поиска плюс проверка ответа.
Поэтому финальный слой — пост-фильтры ответа. Из найденных карточек собирается белый список ссылок; ссылки не из списка вырезаются из ответа, а строки-рекомендации с ценой, рядом с которыми нет ссылки-источника, отбрасываются целиком. В связке с правилом промпта «не называть товар без ссылки из базы» это закрывает путь выдуманным товарам до клиента.
