← Обзор / ai-search / configuration / retrieval
Управление результатами
Эти настройки определяют, сколько результатов возвращается и какая минимальная оценка требуется. Чтобы отфильтровать результаты по атрибутам метаданных, например по папке или категории, см. Фильтрация.
Порог соответствия
match_threshold задаёт минимальную оценку векторного сходства, которой должен соответствовать чанк, чтобы попасть в результаты. Значения порога находятся в диапазоне от 0 к 1. Порог фильтрует по оценке векторного сходства, а не по итоговой оценке, объединённой в ответе.
- Более высокий порог означает более строгую фильтрацию и возврат только максимально похожих совпадений.
- Более низкий порог допускает более широкий диапазон совпадений, повышая полноту, но, возможно, снижая точность.
Максимальное количество результатов
max_num_results настройка определяет количество возвращаемых наиболее подходящих чанков. Максимально допустимое значение составляет 50.
- Используйте более высокое значение, если хотите синтезировать ответ на основе нескольких документов. Учтите, что больший объём входных данных для модели может увеличить задержку и стоимость.
- Используйте более низкое значение, если предпочитаете короткие ответы с минимальным контекстом.
Как они работают вместе
- Ваш запрос векторизуется с помощью настроенной embedding-модели.
- Выполняется запрос к поисковому индексу. Для гибридный поиск, результаты векторного поиска и поиска по ключевым словам сливаются в единый ранжированный список.
- Чанки с оценкой векторного сходства ниже
match_thresholdотфильтровываются. - Отфильтрованные результаты ограничены
max_num_resultsи передаётся на этап генерации в качестве контекста.
Если ни один результат не соответствует порогу, AI Search не будет создавать ответ.
Если реранкинг включено, создаётся отдельный reranking.match_threshold можно настроить так, чтобы отфильтровывать чанки по их показателю reranking.
Переопределение на уровне запроса
Эти значения можно задать на уровне экземпляра или переопределить для отдельного запроса:
const instance = env.AI_SEARCH.get("my-instance");
const results = await instance.search({
messages: [{ role: "user", content: "What is Cloudflare?" }],
ai_search_options: {
retrieval: {
match_threshold: 0.5,
max_num_results: 10,
},
},
});