Настройки поиска чанков
Чтобы перейти к параметрам поиска чанков, выберите в меню Настройки проекта → Поиск.
Выбор пайплайна определяет последовательность действий, выполняемых для извлечения чанков и подготовки ответа:
- Семантический пайплайн — система сравнивает векторное представление (эмбеддинг) запроса пользователя с векторными представлениями чанков. Наиболее релевантные чанки вместе с запросом будут переданы в LLM для генерации ответа.
- Агентский пайплайн — AI-агент управляет процессом подготовки ответа, используя LLM и вызовы функций. LLM через AI-агента инициирует поиск чанков, анализирует их и запрашивает дополнительные. Когда LLM считает полученные чанки наиболее подходящими, подбор чанков завершается, и LLM генерирует ответ.
Более подробное описание пайплайнов см. в разделе Основные этапы работы Jay Knowledge Hub.
Состав настроек зависит от выбранного пайплайна.
- Семантический пайплайн
- Агентский пайплайн
Параметры поиска чанков в источниках
-
Количество результатов поиска — количество найденных чанков, которые будут переданы для дальнейшей обработки.
подсказкаЕсли вы планируете использовать повторное ранжирование, увеличьте количество результатов поиска. Это позволит выбирать подходящие чанки из большего числа кандидатов.
-
Количество соседних чанков — количество соседних чанков каждого найденного чанка, которые будут переданы вместе с ним. Соседние чанки помогают модели лучше понять контекст запроса и сгенерировать более точный ответ.
Например, если Количество результатов поиска равно 10, а Количество соседних чанков — 3, то к каждому найденному чанку добавится еще по 3 чанка до и после него. Таким образом объем найденного чанка увеличится, в итоге для дальнейшей обработки будут переданы 10 «больших» чанков.
-
Поиск по метаданным чанков — если включен, система будет искать подходящие чанки не только по их контенту, но и по дополнительным полям, которые были заполнены в процессе индексации.
-
Перефразировать запрос пользователя — если включено, система попытается перефразировать запрос пользователя, чтобы он стал понятнее. Это может улучшить качество поиска.
Вы можете отредактировать промт для перефразирования запроса, если требуется.
-
Полнотекстовый поиск — если включен, в дополнение к семантическому поиску будет использоваться полнотекстовый.
Семантический поиск отбирает чанки, подходящие по смыслу, даже если слова из запроса отсутствуют. Полнотекстовый поиск учитывает только совпадения со словами из запроса.
Выберите стратегию использования полнотекстового поиска:
-
Гибридный поиск объединяет результаты семантического и полнотекстового поиска, предоставляя как чанки, подходящие по смыслу, так и содержащие слова из запроса. Итоговое количество результатов не превышает Количество результатов поиска, указанное выше.
-
Взвешенный поиск позволяет комбинировать результаты семантического и полнотекстового поиска в нужном соотношении.
Укажите максимальное количество результатов каждого вида поиска, которое можно включить в итоговый список для дальнейшей обработки.
Например, если Количество результатов поиска равно 10, Порция семантики — 8, а Порция полнотекстового поиска — 4, вначале отбирается по 10 результатов каждого вида поиска. Затем результаты объединяются, отбрасываются повторы (чанки, найденные обоими видами поиска) и результаты сверх указанных порций. Итоговое количество результатов — не более 12 (8 + 4).
-
С порогом: в первую очередь выполняется семантический поиск, но если он не предоставил достаточно релевантных результатов — применяется полнотекстовый.
Укажите пороговую оценку релевантности для результатов семантического поиска. Если все результаты ниже порога, поиск переключается на полнотекстовый.
-
-
Учет истории диалога — если включено, система будет учитывать предыдущие запросы пользователя при поиске чанков. Это позволяет модели лучше понимать контекст и генерировать более точные ответы.
Для учета истории вы можете модифицировать следующие настройки:
- Промт;
- Максимальный размер истории диалога, в токенах, который может быть отправлен в LLM;
- Минимальное количество запросов пользователя в истории диалога.
предупреждениеЕсли размер истории превышает ограничение по токенам, сообщения удаляются по одному, пока не будет достигнут нужный размер или минимальное количество запросов пользователя. Если минимальное количество запросов достигнуто раньше, история отправляется в LLM с превышением размера, что может привести к ошибке. Если ошибка повторяется, рекомендуем уменьшить минимальное количество запросов в истории.
Повторное ранжирование
Повторное ранжирование выполняется после извлечения чанков из документов-источников, чтобы заново оценить их релевантность запросу пользователя и отобрать наиболее подходящие. Если найденные чанки соответствуют запросу достаточно хорошо, повторное ранжирование можно отключить.
Выберите способ повторного ранжирования:
- Эмпирическое — используется алгоритм, основанный на опыте Just AI.
- С помощью модели — используется специальная модель-реранкер.
Эмпирическое ранжирование работает быстрее, чем ранжирование с помощью модели, но менее точно.
Настройки повторного ранжирования зависят от выбранного способа.
- Эмпирическое
- С помощью модели
- Количество результатов поиска — максимальное количество результатов, которые после повторного ранжирования будут отправлены в LLM вместе с запросом пользователя для генерации ответа.
- Количество результатов из одного документа — настройка полезна, чтобы чанки из одного документа-источника не заняли весь контекст при подготовке ответа.
- Пороговая оценка — результаты с оценкой релевантности ниже порога не будут использоваться для генерации ответа.
- Максимальное отличие от лучшей оценки, в % — допустимое отклонение от оценки самого релевантного чанка. Результаты, оценка которых отличается сильнее, не будут использоваться для генерации ответа.
- Количество результатов поиска — максимальное количество результатов, которые после повторного ранжирования будут отправлены в LLM вместе с запросом пользователя для генерации ответа.
- Модель — модель, которая выполняет повторное ранжирование.
Аббревиатуры
Если в ваших документах-источниках используются аббревиатуры и другие сокращения, которые отличаются от общепринятых, вы можете сделать их понятными системе.
Для этого загрузите список таких аббревиатур с расшифровкой в виде файла формата JSON.
Шаблон файла можно скачать в интерфейсе. Каждый JSON-объект описывает аббревиатуру.
Ключ объекта — сама аббревиатура. Значение содержит поля: Если в запросе пользователя найдена аббревиатура или вариант из Пример файла:Формат файла
name
— расшифровка аббревиатуры.variations
— варианты написания.description
— объяснение понятия.variations
, они добавляются в промт для перефразирования вместе с name
и description
.{
"ИНН": {
"name": "Идентификационный номер налогоплательщика",
"variations": [],
"description": "Налоговый номер"
},
"PIN": {
"name": "PIN-код",
"variations": ["пин"],
"description": "Цифровой пароль для банковской карты"
}
}
-
Количество результатов поиска — количество найденных чанков, которые будут переданы для дальнейшей обработки.
-
Количество соседних чанков — количество соседних чанков каждого найденного чанка, которые будут переданы вместе с ним. Соседние чанки помогают модели лучше понять контекст запроса и сгенерировать более точный ответ.
Например, если Количество результатов поиска равно 10, а Количество соседних чанков — 3, то к каждому найденному чанку добавится еще по 3 чанка до и после него. Таким образом объем найденного чанка увеличится, в итоге для дальнейшей обработки будут переданы 10 «больших» чанков.
В агентском пайплайне используются также настройки LLM, указанные в разделе Настройки проекта → Генерация.