メモ
Azure AI 検索は、Azure ポータル、REST API、およびAzure SDKから使用できます。 また、Foundry IQ は、エンタープライズ コンテンツを、Microsoft Foundry ポータルのエージェントの再利用可能なアクセス許可に対応したナレッジ ベースに変換するマネージド ナレッジ レイヤーです。
Important
機能、またはマークされたプロパティ (プレビュー) は、サービス レベル アグリーメントの対象ではなく、運用環境のワークロードには推奨されず、一般公開される前に変更または制約される可能性があります。 Azure AI 検索 プレビューの用語は、スタンドアロンでも一般公開されている機能の一部でも、すべてのプレビュー機能に適用されます。
エージェント検索では、クエリの計画と回答の定式化のために、大規模言語モデル (LLM) 処理のレベルを指定できます。 取得の理由付け作業 (プレビュー) を使用して、コストと待機時間に影響する LLM 処理レベルを設定します。 追加の LLM 処理により関連性が向上しますが、時間がかかり、課金対象の LLM リソースも使用されます。
このプロパティは、ナレッジ ベースまたは取得要求で設定できます。 ナレッジ ベースの設定ではすべてのクエリの既定値が設定されますが、取得要求設定ではクエリごとに既定値がオーバーライドされます。 どちらの設定も存在しない場合、サービスは lowを使用します。
使用サポート
| Azure Portal | Microsoft Foundry ポータル | .NET SDK | Python SDK | Java SDK | JavaScript SDK | REST API |
|---|---|---|---|---|---|---|
| ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
前提 条件
少なくとも 1 つのナレッジ ソースとモデル構成を持つ既存のナレッジ ベース 。
ナレッジ ベースを更新およびクエリするためのアクセス許可。 ユーザー アカウントに割り当てられた Search Service 共同作成者ロールと検索インデックス データ閲覧者ロール (推奨) を使用してキーレス認証を構成するか、管理者 API キーを使用します。
最新の
Azure.Search.Documentsプレビュー パッケージ:dotnet add package Azure.Search.Documents --prereleaseキーレス認証の場合、
Azure.Identityパッケージは次のようになります。dotnet add package Azure.Identity
最新の
azure-search-documentsプレビュー パッケージ:pip install --pre azure-search-documentsキーレス認証の場合、
azure-identityパッケージは次のようになります。pip install azure-identity
Search Service REST API の 2026-08-01-preview バージョン。
キーレス認証の場合は、各 HTTP 要求の
AuthorizationヘッダーにMicrosoft Entra ID トークンを含めます。
推論作業を選択する
待機時間、コスト、検索深度のトレードオフに応じて、推論の度合いを選択してください。
推論作業レベル
| レベル | 説明 | 推薦 | 制限 |
|---|---|---|---|
minimal |
LLM ベースのクエリ計画を無効にして、エージェント検索のコストと待機時間を最小限に抑えます。 ナレッジ ベースに一覧表示されているナレッジ ソース間で直接テキストとベクター検索を発行し、最適に一致する箇所を返します。 ナレッジ ベース内のすべてのナレッジ ソースは常に検索され、クエリの拡張は実行されないため、動作は予測可能で制御が容易です。 また、取得要求の alwaysQueryKnowledgeSource プロパティは無視されます。 |
minimalを使用して、Search API からの移行、またはクエリ計画を自分で管理する場合に使用します。 |
|
low |
エージェント検索の既定のモード。LLM ベースのクエリ計画とナレッジ ソースの選択を 1 回実行します。 エージェント検索エンジンによってサブクエリが生成され、選択したナレッジ ソースにファンアウトされ、結果がマージされます。 回答合成 (プレビュー) を有効にして、インライン引用で基底の自然言語応答を生成できます。 | 最小待機時間とより深い処理のバランスを取る場合は、 low を使用します。 |
|
medium |
より深い検索と強化された検索スタックをエージェント検索に追加して、完全性を最大化します。 最初の検索の後、高精度セマンティック分類子は、取得したドキュメントを評価します。 最初の結果が十分に関連性がない場合、サービスは、変更されたクエリ プランを使用して 1 回のフォローアップイテレーションを実行します。 |
mediumを使用して、LLM 支援の知識取得の有用性を最大化します。 |
|
auto |
軽量な検索パスで開始します。 最初のパスで十分な根拠が得られた場合、サービスは結果を返します。 それ以外の場合は、LLM ベースのクエリ計画が継続され、最大で中程度の作業が行われます。 |
autoは、要求ごとに取得の深さと待機時間のバランスを取るためにサービスを使用します。 |
|
媒体取得のための反復的な検索
初期結果が十分に関連性がない場合は、中程度の取得推論作業によって反復的な検索が提供されます。 2 回目の反復が必要かどうかを判断するために、追加の セマンティック分類子モデル が呼び出されます。
セマンティック分類子:
質問に答えるのに十分なコンテキストがある場合に認識します。
コンテキストの既存の情報を使用して、不十分な結果を再試行します。 新しいクエリでは、詳細に絞り込んだり、検索の幅を広げたりする場合があります。 応答のアクティビティ ログには、より包括的な回答に使用される生成されたクエリが表示されます。
L3 分類を使用した再スコア付け。 範囲は L2 ランク付けと同じです。絶対範囲は 0 ~ 4.0 です。
再試行は 1 回だけです。 各イテレーションでは待機時間とコストが追加されるため、システムは再試行を 1 回のパスに制限します。 2 回目のイテレーションでは、クエリ パイプラインに入力トークンが追加され、課金対象の入力トークンの合計数が合計されます。
イテレーションでは、既存のナレッジ ソースを再利用したり、異なるソースを選択したりできます。 2 番目のパスは、不足している情報を提供するために最も有望なナレッジ ソースを選択します。
メディア取得のためのリージョンサポート
検索サービスが次のいずれかのリージョンにある場合は、中程度の取得推論作業を設定できます。
- 米国東部 2
- 米国東部
- 米国中南部
- 米国西部 3
- 米国西部 2
- 米国西部
- ドイツ中西部
- 北ヨーロッパ
- スイス北部
- スウェーデン中部
- スペイン中部
- 英国南部
- 韓国中部
- 東日本
- 東南アジア
ナレッジ ベースで推論作業を設定する
ナレッジ ベース定義で retrievalReasoningEffort を設定して、クエリの既定値を確立します。
autoの推論作業には、モデル構成が必要です。 次の例では、既存の knowledgeSources と models の設定を保持し、推論の強度を auto に設定して、ナレッジベースを更新します。
using Azure.Identity;
using Azure.Search.Documents.Indexes;
using Azure.Search.Documents.Indexes.Models;
using Azure.Search.Documents.KnowledgeBases.Models;
var endpoint = new Uri("<search-endpoint>");
var credential = new DefaultAzureCredential();
var knowledgeBaseName = "<knowledge-base-name>";
var indexClient = new SearchIndexClient(endpoint, credential);
var knowledgeBase = (
await indexClient.GetKnowledgeBaseAsync(knowledgeBaseName)).Value;
knowledgeBase.RetrievalReasoningEffort =
new KnowledgeRetrievalAutoReasoningEffort();
await indexClient.CreateOrUpdateKnowledgeBaseAsync(knowledgeBase);
リファレンス:KnowledgeBase
別のレベルを使用するには、 KnowledgeRetrievalAutoReasoningEffort を KnowledgeRetrievalMinimalReasoningEffort、 KnowledgeRetrievalLowReasoningEffort、または KnowledgeRetrievalMediumReasoningEffortに置き換えます。
from azure.identity import DefaultAzureCredential
from azure.search.documents.indexes import SearchIndexClient
from azure.search.documents.knowledgebases.models import (
KnowledgeRetrievalAutoReasoningEffort,
)
endpoint = "<search-endpoint>"
credential = DefaultAzureCredential()
knowledge_base_name = "<knowledge-base-name>"
index_client = SearchIndexClient(endpoint, credential)
knowledge_base = index_client.get_knowledge_base(knowledge_base_name)
knowledge_base.retrieval_reasoning_effort = (
KnowledgeRetrievalAutoReasoningEffort()
)
index_client.create_or_update_knowledge_base(knowledge_base)
リファレンス:KnowledgeBase
別のレベルを使用するには、 KnowledgeRetrievalAutoReasoningEffort を KnowledgeRetrievalMinimalReasoningEffort、 KnowledgeRetrievalLowReasoningEffort、または KnowledgeRetrievalMediumReasoningEffortに置き換えます。
@api-version = 2026-08-01-preview
@knowledge-base-url = {{search-endpoint}}/knowledgebases/{{knowledge-base-name}}
PUT {{knowledge-base-url}}?api-version={{api-version}}
Content-Type: application/json
Authorization: Bearer {{search-access-token}}
{
"name": "{{knowledge-base-name}}",
"knowledgeSources": [
{
"name": "{{knowledge-source-name}}"
}
],
"models": [
{
"kind": "azureOpenAI",
"azureOpenAIParameters": {
"resourceUri": "{{aoai-endpoint}}",
"authIdentity": null,
"deploymentId": "{{model-deployment-name}}",
"modelName": "{{model-name}}"
}
}
],
"retrievalReasoningEffort": {
"kind": "auto"
}
}
リファレンス:ナレッジ ベース - 作成または更新
別のレベルを使用するには、 retrievalReasoningEffort.kind を minimal、 low、または mediumに設定します。
取得要求で推論作業を設定する
取得要求の retrievalReasoningEffort を設定して、その要求のナレッジ ベースの既定値をオーバーライドします。 次の例では、メッセージを送信し、 low を使用して前のセクションの既定の auto をオーバーライドし、応答合成 (プレビュー) を有効にします。
using Azure.Identity;
using Azure.Search.Documents.KnowledgeBases;
using Azure.Search.Documents.KnowledgeBases.Models;
var endpoint = new Uri("<search-endpoint>");
var credential = new DefaultAzureCredential();
var knowledgeBaseName = "<knowledge-base-name>";
var kbClient = new KnowledgeBaseRetrievalClient(
endpoint, knowledgeBaseName, credential);
var request = new KnowledgeBaseRetrievalRequest
{
RetrievalReasoningEffort =
new KnowledgeRetrievalLowReasoningEffort(),
OutputMode = KnowledgeRetrievalOutputMode.AnswerSynthesis
};
request.Messages.Add(
new KnowledgeBaseMessage(
content: new[] {
new KnowledgeBaseMessageTextContent("What is the return policy?")
}
) { Role = "user" }
);
var result = await kbClient.RetrieveAsync(request);
from azure.identity import DefaultAzureCredential
from azure.search.documents.knowledgebases import KnowledgeBaseRetrievalClient
from azure.search.documents.knowledgebases.models import (
KnowledgeBaseMessage,
KnowledgeBaseMessageTextContent,
KnowledgeBaseRetrievalRequest,
KnowledgeRetrievalOutputMode,
KnowledgeRetrievalLowReasoningEffort,
)
endpoint = "<search-endpoint>"
credential = DefaultAzureCredential()
knowledge_base_name = "<knowledge-base-name>"
kb_client = KnowledgeBaseRetrievalClient(
endpoint,
credential,
knowledge_base_name=knowledge_base_name,
)
request = KnowledgeBaseRetrievalRequest(
messages=[
KnowledgeBaseMessage(
role="user",
content=[
KnowledgeBaseMessageTextContent(
text="What is the return policy?"
)
],
)
],
retrieval_reasoning_effort=KnowledgeRetrievalLowReasoningEffort(),
output_mode=KnowledgeRetrievalOutputMode.ANSWER_SYNTHESIS,
)
result = kb_client.retrieve(request)
@api-version = 2026-08-01-preview
@retrieve-url = {{search-endpoint}}/knowledgebases/{{knowledge-base-name}}/retrieve
POST {{retrieve-url}}?api-version={{api-version}}
Content-Type: application/json
Authorization: Bearer {{search-access-token}}
{
"messages": [
{
"role": "user",
"content": [
{
"type": "text",
"text": "What is the return policy?"
}
]
}
],
"retrievalReasoningEffort": {
"kind": "low"
},
"outputMode": "answerSynthesis"
}
リファレンス:ナレッジの取得 - 取得
取得要求は、ナレッジ ベースで構成されたナレッジ ソースに基づいて、根拠のある回答を返します。