これらの設定は、返す結果の件数と、必要な最低スコアを制御します。フォルダーやカテゴリなどのメタデータ属性で結果を絞り込む場合は、フィルタリング を参照してください。
match_threshold は、チャンクが結果に入るために必要な、最低のベクトル類似度スコアです。しきい値の範囲は 0 から 1 です。このしきい値はベクトル類似度スコアに対して効きます。応答で返る融合スコアではありません。
- しきい値を上げるとフィルタが厳しくなり、類似度の高い一致だけが返ります。
- しきい値を下げると一致の範囲が広がり、再現率は上がりますが、適合率が下がることがあります。
max_num_results は、返す上位一致チャンクの件数です。上限は 50 です。
- 複数ドキュメントを横断して要約したい場合は、値を上げます。ただしモデルへの入力が増えると、レイテンシとコストが上がることがあります。
- 文脈を抑えた短い回答が欲しい場合は、値を下げます。
- クエリは、設定した埋め込みモデルで埋め込まれます。
- 検索インデックスが照会されます。ハイブリッド検索 では、ベクトル結果とキーワード結果が 1 つの順位付きリストに融合されます。
- ベクトル類似度スコアが
match_threshold未満のチャンクは除外されます。 - 絞り込んだ結果は
max_num_results件までに制限され、生成ステップの文脈として渡されます。
しきい値を満たす結果がない場合、AI Search は応答を生成しません。
リランキング が有効な場合は、リランキングスコアでチャンクを絞り込む別の reranking.match_threshold を設定できます。
これらの値はインスタンス単位で設定でき、リクエストごとに上書きもできます。
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,
},
},
});