Проверка поиска по базе
Вкладка «Тестирование поиска»: порог сходства, вес ключевых слов и векторов, Топ-K, реранкер, как читать оценки у найденных фрагментов, типовые причины плохого поиска и проверка перед подключением базы к ассистенту.
Проверка поиска показывает, какие фрагменты база вернёт на вопрос, ещё до того, как к ней подключён ассистент. Если нужный фрагмент находится здесь, проблему с ответом следует искать в настройках ассистента и модели; если не находится, в обработке документов.
Где и как запускать
- Откройте базу знаний и перейдите на вкладку «Тестирование поиска». Документы должны быть в статусе «УСПЕШНО».
- В поле «Тестовый текст» введите вопрос, у которого вы заранее знаете правильный источник.
- Для первого прогона не меняйте параметры, нажмите «Тестирование».
- В блоке «Найденные результаты» проверьте первые фрагменты и их оценки. Кнопка «Просмотр» открывает исходный документ на нужном месте.
Повторите для четырёх типов вопросов: точный вопрос словами документа, вопрос с синонимами, вопрос по таблице и вопрос, ответа на который в базе нет. Последний не должен возвращать уверенно выглядящий, но посторонний фрагмент выше порога.
Параметры
| Параметр | Что делает |
|---|---|
| Порог сходства | Фрагменты с комбинированной оценкой ниже порога отбрасываются. Значение по умолчанию 0.2, то есть 20 баллов по шкале результатов |
| Вес сходства ключевых слов | Доля сходства по словам в комбинированной оценке; остаток приходится на векторное сходство. Сумма весов равна 1 |
| Топ-K | Сколько фрагментов передаётся в модель реранкинга |
| Модель реранкинга | Необязательна. Если выбрана, векторная часть оценки заменяется оценкой реранкера. Заметно увеличивает время ответа |
| Использовать граф знаний | Добавляет к поиску сущности, связи и отчёты сообществ из построенного графа. Требует вызова модели и удлиняет ответ |
| Межъязыковый поиск | Один или несколько языков, на которые модель переведёт вопрос перед поиском. Нужен, когда документы и вопросы на разных языках |
Поиск гибридный: совпадение по ключевым словам и близость векторов считаются отдельно и складываются с весами. Без реранкера комбинированная оценка равна «Сходство терминов», умноженное на вес ключевых слов, плюс «Векторное сходство», умноженное на оставшийся вес. Например, при весах 0.7 и 0.3 оценки 25.17 и 36.49 дают 28.56. Фрагменты, созданные графом знаний, оцениваются только векторным сходством.
Внимание
Изменённые на вкладке параметры нигде не сохраняются. Подобранные значения порога, весов и реранкера нужно перенести в настройки ассистента или компонента поиска агента.
Как читать результаты
У каждого найденного фрагмента показаны «Комбинированное сходство», «Сходство терминов» и «Векторное сходство». Разбор типичных картин:
- Высокое сходство терминов и низкое векторное: совпали слова, но не смысл. Часто это фрагмент с нужными терминами из другого контекста, например из оглавления.
- Низкое сходство терминов и высокое векторное: вопрос задан другими словами. Такой фрагмент полезен, и вес ключевых слов можно снизить.
- Правильный фрагмент есть, но ниже первых трёх: уточните формулировку или добавьте к фрагменту ключевые слова и вопросы на странице фрагментов.
- Правильного фрагмента нет совсем: причина в обработке, см. таблицу ниже.
Проверяйте, что числа, даты и названия в фрагменте совпадают с оригиналом: искажения на этом этапе означают проблему распознавания, а не поиска.
Типовые причины и исправления
| Симптом | Вероятная причина | Что сделать |
|---|---|---|
| Фрагменты начинаются и обрываются посреди фразы, таблица разорвана | Не тот метод фрагментации | Сменить метод (например, «Законы» для нормативных актов, «Таблица» для реестров) и обработать заново, см. Методы фрагментации |
| Фрагмент найден, но в нём нет ответа целиком | Слишком маленький размер фрагмента | Увеличить «Рекомендуемый размер фрагмента» или включить «Чанки с учётом структуры» |
| Оценки низкие у всех результатов, фрагменты длинные и разнородные | Слишком большой размер фрагмента | Уменьшить размер, проверить разделитель |
| Документы на одном языке, вопросы на другом | Нет межъязыкового поиска | Включить «Межъязыковый поиск» с нужными языками в тесте и в ассистенте |
| Пустые или бессмысленные фрагменты, «Качество индекса» с предупреждением | Скан без OCR или слабое распознавание | Выбрать анализатор PDF с OCR, проверить фрагменты, обработать заново |
| Похожие фрагменты из соседних документов перебивают нужный | Нет различающего признака | Подключить набор тегов или задать метаданные, см. Метаданные, теги и PageRank |
| Документ есть, но никогда не находится | Документ выключен или не в статусе «УСПЕШНО» | Проверить список документов |
Проверка через API
Тот же поиск доступен методом POST /api/v1/retrieval с ключом организации. Основные поля запроса: question, dataset_ids, необязательные document_ids, similarity_threshold, vector_similarity_weight (доля векторной части, в интерфейсе задаётся обратная величина), top_k, rerank_id, keyword, highlight, use_kg, cross_languages, page и page_size. Все базы в запросе должны использовать одну модель эмбеддинга. Ответ содержит фрагменты с полями similarity, vector_similarity, term_similarity, document_id и dataset_id, что удобно для автоматической регрессии: набор контрольных вопросов с ожидаемыми документами прогоняется после каждой переобработки базы. Как получить ключ: API-ключ и SDK.
Перед подключением к ассистенту
Проверка считается пройденной, когда правильный источник входит в первые результаты по всем контрольным вопросам, числа и названия не искажены, а отрицательный вопрос не создаёт ложного подтверждения. После этого создайте ассистента, перенесите в него подобранные параметры и повторите те же вопросы уже в чате: ассистент добавляет к поиску модель и промпт, и его ответ стоит проверять отдельно, см. Чат с источниками.
Спросить Сему