Семантический поиск

Семантический поиск извлекает информацию с помощью представлений смысла, а не только точных совпадений слов. Вопрос и подходящий фрагмент могут быть сформулированы по-разному и всё же описывать одну идею. Однако поисковая система должна отличать полезное совпадение от просто близкой темы.

Автор: Ai Flowi · Опубликовано

Эмбеддинги — один из способов представить эту связь. Они позволяют сравнивать представления текстов, но полученное сходство не подтверждает фактическую достоверность. Семантический поиск — метод извлечения информации; создание ответа и проверка подтверждений остаются отдельными задачами.

Сопоставление по смыслу и буквальное совпадение

Представьте документ с заголовком «Сторнирование выставленного счёта». Пользователь ищет «отменить уже отправленный счёт». Для связи этих фраз системе буквального поиска может понадобиться обработка синонимов. Подход на основе эмбеддингов способен представить близость их смысла в зависимости от выбранной модели и окружающего текста.

Буквальное совпадение по-прежнему важно, когда запрос содержит точный идентификатор, код продукта или цитату ошибки. Если пользователь спрашивает о счёте INV-A, запись для INV-B недостаточна, хотя обе касаются выставления счетов. Смысл и идентичность — разные ограничения.

Для объединения буквального и семантического поиска изучите гибридный поиск в RAG; примеры счетов здесь рассматривают, соответствует ли смысл кандидата запрошенному этапу работы со счётом.

Пример перефразирования и ловушка этапа процесса

Возьмём вымышленный набор документов по счетам. Одна заметка описывает сторнирование выставленного счёта, другая — удаление неотправленного черновика, третья — напоминания о просрочке. Запрос звучит так: «Как отменить уже отправленный счёт?» Решающим совпадением будет процедура сторнирования после выставления, а не любое действие, удаляющее текст счёта.

Заданные автором критерии релевантности; результаты поиска и оценки не приводятся
ЗапросФрагмент-кандидатЖелаемая оценка
Отменить уже отправленный счёт.Сторнирование выставленного счёта.Релевантная переформулировка запрошенного этапа процесса.
Тот же вопрос о выставленном счётеУдаление неотправленного черновика.Неверный этап, несмотря на близкую лексику удаления.
Почему счёт INV-A просрочен?Запись об оплате INV-B.Неверный идентификатор, даже если обсуждение оплаты релевантно.
Что означает ошибка BILL-LOCK?Общие рекомендации по напоминаниям о просрочке.Одной темы недостаточно для объяснения конкретной ошибки.

Эти критерии помогают оценить качество поиска без вымышленных рейтингов. Полученный фрагмент нужно сверить с запрошенным объектом и вопросом. Коллекция, из которой извлекаются лишь тексты с близкой лексикой, может выглядеть полезной в демонстрации и при этом не решать реальную задачу.

Почему представление — лишь часть качества семантического поиска?

Модель эмбеддингов влияет на представление текста, но то, что можно найти, определяется исходной коллекцией. Отсутствующие, устаревшие или плохо разделённые фрагменты нельзя исправить одним изменением метрики сходства. Уточняющее условие политики, отделённое от основного предложения, может потеряться, даже если нужная тема найдена.

Формулировка запроса тоже важна. Для короткого неоднозначного вопроса «можно мне это взять?» нужен достаточный контекст диалога, чтобы определить объект. Неверный объект создаёт неверную задачу поиска. Расширение запроса должно сохранять смысл пользователя, а не незаметно добавлять предполагаемый продукт.

По вопросам доступа и выбора версии источника изучите рекомендации по проектированию контекста.

Отличайте запрос инструкции от запроса записи. «Как сторнировать счёт?» требует процедуры; «Был ли счёт INV-A сторнирован?» требует соответствующей записи операции. Процедура, объясняющая сторнирование, не устанавливает, выполнялось ли оно для этого счёта. Набор кандидатов должен соответствовать типу подтверждений, который требуется в вопросе.

От представления к выбору кандидатов в AI Flowi Workflow

В объяснении эмбеддингов текста описаны условия представления данных для Text Embedder и Embedding Similarity.

В руководстве по Knowledge Base описана настройка извлечения фрагментов-кандидатов.

Для вопроса о счёте проверьте этап, указанный в каждом кандидате, прежде чем выбирать его для ответа. «Неотправленный черновик» однозначно не соответствует «уже отправленному», даже если оба фрагмента обсуждают отмену документа. Сохраняйте предварительные условия сторнирования вместе с процедурой, чтобы на следующем этапе можно было определить её применимость.

Количество результатов, например параметр каталога top_k , определяет число запрашиваемых кандидатов, а не число полезных. Сначала найдите решающий фрагмент о сторнировании в авторском тестовом наборе. Если его нет, исследуйте запрос и коллекцию. Если он присутствует среди нерелевантных инструкций для черновиков, исследуйте отбор. Одно увеличение количества не устраняет это различие.

Не заменяйте «отменить счёт» на «удалить черновик» только ради совпадения. Это подставляет интерпретацию, которой пользователь не давал. Если пользователь не уточнил, выставлен ли счёт, спросите об этом этапе либо найдите процедуры для обоих этапов и сохраните неоднозначность. Расширение запроса должно выявлять альтернативные смыслы, а не стирать выбор между ними.

Результат отбора кандидатов — небольшой набор применимых фрагментов с причинами включения и исключения. Он предшествует окончательному ответу. Сохранение отклонённого фрагмента о черновике на этапе оценки помогает объяснить, почему семантически близкий результат не подошёл, не передавая его модели ответа как столь же авторитетное подтверждение.

документировано в каталоге; не проверено Ai Flowi в производственной среде

Компоненты поиска представлены в указателе каталога; раздел подключений моделей описывает использование вашей собственной учётной записи и ключа API поставщика эмбеддингов; использование эмбеддингов оплачивается отдельно.

Оценки релевантности счетов для последующей проверки

В руководстве по оценке RAG описаны подготовка корпуса и процедура оценки извлечения отдельно от созданных ответов.

Для этих вымышленных счетов оценка релевантности зависит от уже совершившегося события. У выставленного счёта и неотправленного черновика могут совпадать суммы, получатели и большая часть формулировок, но требуются разные процедуры. Кандидат об удалении черновика остаётся неподходящим для вопроса о выставленном счёте, даже если использует точный глагол «отменить». Иначе сформулированный фрагмент о сторнировании может подойти благодаря совпадению исходного состояния.

Из-за отрицания это различие легко потерять: «ещё не выставлен» и «выставлен» содержат один объект и слово действия, но описывают противоположные исходные состояния. Сохраняйте отрицание при чтении заголовка и предварительных условий кандидата. Если убрать его из короткой выдержки, процедура для черновика может показаться применимой. Поэтому нужно оценивать полное условие этапа, а не число знакомых слов о счетах.

«Отправить счёт снова» добавляет ещё один близкий смысл: повторная доставка отличается от сторнирования выставленного документа. Если вопрос звучит только как «отменить отправку», предполагаемая операция остаётся неясной. Поисковый ответ может показать эти интерпретации, не выбирая одну за пользователя. Уточните, имеется в виду доставка или статус счёта, прежде чем считать любого кандидата процедурой, содержащей ответ.

Типичные ошибки и связанные понятия

Семантический поиск не подходит как единственная проверка идентичности для точного идентификатора учётной записи или документа. Он также не может восстановить подтверждения, которые никогда не сохранялись. Не считайте, что пустой или нерелевантный результат нужно превращать в уверенный ответ.

Читайте об эмбеддингах текста для понимания совместимости представлений и о векторной базе данных для понимания хранения и индексирования. В документации Agent описан уровень приложения, способного использовать инструменты. Изучите документированные сценарии использования как исходные шаблоны, сохраняя различие между поисковым кандидатом и подтверждением, на котором можно основывать ответ.