メモ
このエージェント検索機能は、プログラムによるアクセスを介して 2026-04-01 REST API で一般提供されています。 Azure ポータルと foundry ポータルMicrosoftは、引き続きすべてのエージェント検索機能へのプレビュー専用アクセスを提供します。 移行のガイダンスについては、「 エージェントの取得コードを最新バージョンに移行する」を参照してください。
プレビュー REST API を使用する場合は、この機能ではまだ一般公開されていない機能にアクセスできます。 プレビュー機能は、サービス レベル アグリーメントなしで提供され、運用環境のワークロードには推奨されません。 詳細については、「 Microsoft Azure プレビューの追加使用条件」を参照してください。
重要
これらの機能は、2026-05-01-preview REST API の一部です。 2026-05-01-preview は、お客様の Azure サブスクリプションの一部としてお客様にライセンス供与されるものであり、Microsoft Product Terms における「Previews」に適用される条件、Microsoft Products and Services Data Protection Addendum(「DPA」)、および Supplemental Terms of Use for Microsoft Azure Previews に従うものとします。
2026-05-01-preview では、他のMicrosoft サービスやサード パーティのサービスへの接続がサポートされています。 これらのサービスの利用は各サービスの利用規約に従うものとし、データが Azure コンプライアンス境界の外部で処理または保存されたり、Azure コンプライアンス境界内に流入したりする場合があります。
データが組織のコンプライアンスと地理的境界の外部に流れるかどうか、および関連する影響、および適切なアクセス許可、境界、承認がプロビジョニングされるかどうかを管理するのは、お客様の責任です。
特定のユース ケースのコンテキストで構築したアプリケーションを慎重に確認およびテストし、すべての適切な決定とカスタマイズを行う責任があります。 これには、メタプロンプト、コンテンツ フィルター、その他の安全システムなどの独自の責任ある AI 軽減策の実装や、アプリケーションが適切な品質、信頼性、セキュリティ、信頼性の標準を満たしていることを確認する機能が含まれます。 詳細については、「Azure AI 検索透過性に関するメモを参照してください。
Azure AI 検索では、knowledge base は、agentic 取得を調整する最上位のオブジェクトです。 クエリを実行するナレッジ ソースと、取得操作の既定の動作を定義します。 クエリ時に、 取得メソッド はナレッジ ベースをターゲットにして、構成された取得パイプラインを実行します。
ナレッジ ベースは、Microsoft Foundry (新しい) ポータルの Foundry IQ ワークロードで作成できます。 また、Azure AI 検索 API を使用して作成するすべてのエージェント ソリューションのナレッジ ベースも必要です。
ナレッジ ベースでは、次の項目を指定します。
検索可能なコンテンツを指す 1 つ以上のナレッジ ソース。
クエリ計画、応答合成、または Web コンテンツの要約のためのオプションの LLM。 サポートされるタスクは、API のバージョンとナレッジ ソースの種類によって異なります。
ルーティング、ソースの選択、およびオブジェクトの暗号化を制御するカスタム プロパティ。
利用サポート
| Azure Portal | Microsoft Foundry ポータル | .NET SDK | Python SDK | Java SDK | JavaScript SDK | REST API |
|---|---|---|---|---|---|---|
| ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
前提 条件
Azure AI 検索 を利用できる任意のエージェンティック検索を提供する領域。 デプロイされたモデルへのロールベースのアクセスに マネージド ID を 使用している場合は、検索サービスが Basic レベル以上である必要があります。
1 つ以上の ナレッジ ソース。 2026-05-01-preview API バージョンを使用して、プレビューのナレッジ ソースにアクセスしたり、Web 以外のナレッジ ソースで LLM を使用したりします。 一般公開されているナレッジ ソースと最小限の抽出取得には、2026-04-01 API バージョンを使用します。
(条件付き) サポートされた LLM デプロイを使用した Azure OpenAI。 ナレッジ ベースに Web ナレッジ ソースが含まれている場合は、LLM が必要です。 その他のナレッジ ソースの場合、LLM は 2026-05-01-preview API バージョンでは省略可能であり、2026-04-01 API バージョンではサポートされていません。
ナレッジ ベースを作成するためのアクセス許可。 ユーザー アカウントに割り当てられた Search Service 共同作成者ロール (推奨) を使用してキーレス認証を構成するか、API キーを使用します。
ナレッジ ベースで LLM が指定されている場合、検索サービスには、Microsoft Foundry リソースに対する Cognitive Services ユーザーアクセス許可を持つマネージド ID が必要です。
必須
Azure.Search.Documentsパッケージ:2026-05-01-preview 機能の場合、最新のプレビュー パッケージ:
dotnet add package Azure.Search.Documents --prerelease2026-04-01 機能の場合、最新の安定したパッケージ:
dotnet add package Azure.Search.Documents
必須
azure-search-documentsパッケージ:2026-05-01-preview 機能の場合、最新のプレビュー パッケージ:
pip install --pre azure-search-documents2026-04-01 機能の場合、最新の安定したパッケージ:
pip install azure-search-documents
必要な REST API バージョン:
プレビュー機能の場合: Search Service 2026-05-01-preview
一般公開されている機能の場合: Search Service 2026-04-01
サポートされているモデル
Azure OpenAI の次のいずれかの LLM を Foundry モデルで使用します。 Azure OpenAI は、選択したデプロイのリージョンの可用性を決定します。 デプロイ手順については、Microsoft Foundry モデルを Foundry ポータルでデプロイするドキュメントを参照してください。
| Model | サポートされる API バージョン |
|---|---|
gpt-4o |
2025-11-01-preview、2026-05-01-preview |
gpt-4o-mini |
2025-11-01-preview、2026-05-01-preview |
gpt-4.1 |
2025-11-01-preview、2026-05-01-preview |
gpt-4.1-mini |
2025-11-01-preview、2026-05-01-preview |
gpt-4.1-nano |
2025-11-01-preview、2026-05-01-preview |
gpt-5 |
2025-11-01-preview、2026-05-01-preview |
gpt-5-mini |
2025-11-01-preview、2026-05-01-preview |
gpt-5-nano |
2025-11-01-preview、2026-05-01-preview |
gpt-5.1 |
2026-05-01-プレビュー |
gpt-5.2 |
2026-05-01-プレビュー |
gpt-5.4 |
2026-05-01-プレビュー |
gpt-5.4-mini |
2026-05-01-プレビュー |
gpt-5.4-nano |
2026-05-01-プレビュー |
アクセスの構成
Azure AI 検索 は、Foundry Models 内の Azure OpenAI の LLM にアクセスする必要があります。 認証用にMicrosoft Entra IDし、承認用にロールベースのアクセスを行うことをお勧めします。 ロールを割り当てるには、 所有者またはユーザー アクセス管理者である必要があります。 ロールを使用できない場合は、代わりにキーベースの認証を使用してください。
モデル プロバイダーで、検索サービスのマネージド ID に Cognitive Services ユーザー を割り当てます。 ローカルでテストする場合は、同じロールをユーザー アカウントに割り当てます。
ローカル テストの場合は、「 クイック スタート: キーなしで接続 して特定のサブスクリプションとテナントにサインインする」の手順に従います。 各要求で
DefaultAzureCredentialの代わりにAzureKeyCredentialを使用します。これは次の例のようになります。// Authenticate using roles using Azure.Search.Documents.Indexes; using Azure.Identity; var indexClient = new SearchIndexClient(new Uri(searchEndpoint), new DefaultAzureCredential());
モデル プロバイダーで、検索サービスのマネージド ID に Cognitive Services ユーザー を割り当てます。 ローカルでテストする場合は、同じロールをユーザー アカウントに割り当てます。
ローカル テストの場合は、「 クイック スタート: キーなしで接続 して特定のサブスクリプションとテナントにサインインする」の手順に従います。 各要求で
DefaultAzureCredentialの代わりにAzureKeyCredentialを使用します。これは次の例のようになります。# Authenticate using roles from azure.identity import DefaultAzureCredential index_client = SearchIndexClient(endpoint = "search_url", credential = DefaultAzureCredential())
モデル プロバイダーで、検索サービスのマネージド ID に Cognitive Services ユーザー を割り当てます。 ローカルでテストする場合は、同じロールをユーザー アカウントに割り当てます。
ローカル テストの場合は、「 クイック スタート: キーなしで接続 して、特定のサブスクリプションとテナントの個人用アクセス トークンを取得する」の手順に従います。 各要求でアクセス トークンを指定します。これは次の例のようになります。
# List indexes using roles GET https://{{search-url}}/indexes?api-version=2026-04-01 Content-Type: application/json Authorization: Bearer {{access-token}}
重要
この記事のコード スニペットでは、API キーを使用します。 ロールベースの認証を使用する場合は、それに応じて各要求を更新します。 両方の方法を指定する要求では、API キーが優先されます。
既存のナレッジ ベースを確認する
ナレッジ ベースは、最上位の再利用可能なオブジェクトです。 既存のナレッジ ベースについて知ることは、新しいオブジェクトを再利用または名前付けする場合に役立ちます。
次のコードを実行して、既存のナレッジ ベースを名前で一覧表示します。 この一覧には、作成に使用した API バージョンに関係なく、検索サービスのすべてのナレッジ ベースが含まれます。
// List knowledge bases by name
using Azure.Search.Documents.Indexes;
var indexClient = new SearchIndexClient(new Uri(searchEndpoint), credential);
var knowledgeBases = indexClient.GetKnowledgeBasesAsync();
Console.WriteLine("Knowledge Bases:");
await foreach (var kb in knowledgeBases)
{
Console.WriteLine($" - {kb.Name}");
}
Reference:SearchIndexClient
# List knowledge bases by name
from azure.core.credentials import AzureKeyCredential
from azure.search.documents.indexes import SearchIndexClient
index_client = SearchIndexClient(endpoint = "search_url", credential = AzureKeyCredential("api_key"))
for kb in index_client.list_knowledge_bases():
print(f" - {kb.name}")
Reference:SearchIndexClient
# List knowledge bases
GET {{search-url}}/knowledgebases?api-version={{api-version}}&$select=name
Content-Type: application/json
api-key: {{search-api-key}}
リファレンス:ナレッジ ベース - リスト
名前で 1 つのナレッジ ベースを返して、その JSON 定義を確認することもできます。
using Azure.Search.Documents.Indexes;
using System.Text.Json;
var indexClient = new SearchIndexClient(new Uri(searchEndpoint), credential);
// Specify the knowledge base name to retrieve
string kbNameToGet = "earth-knowledge-base";
// Get a specific knowledge base definition
var knowledgeBaseResponse = await indexClient.GetKnowledgeBaseAsync(kbNameToGet);
var kb = knowledgeBaseResponse.Value;
// Serialize to JSON for display
string json = JsonSerializer.Serialize(kb, new JsonSerializerOptions { WriteIndented = true });
Console.WriteLine(json);
Reference:SearchIndexClient
# Get a knowledge base definition
from azure.core.credentials import AzureKeyCredential
from azure.search.documents.indexes import SearchIndexClient
import json
index_client = SearchIndexClient(endpoint = "search_url", credential = AzureKeyCredential("api_key"))
kb = index_client.get_knowledge_base("knowledge_base_name")
print(json.dumps(kb.as_dict(), indent = 2))
Reference:SearchIndexClient
# Get knowledge base
GET {{search-url}}/knowledgebases/{{knowledge-base-name}}?api-version={{api-version}}
Content-Type: application/json
api-key: {{search-api-key}}
リファレンス:ナレッジ ベース - 取得
次の JSON は、ナレッジ ベースに対する応答の例です。
{
"name": "my-kb",
"description": "A sample knowledge base.",
"retrievalInstructions": null,
"answerInstructions": null,
"outputMode": null,
"knowledgeSources": [
{
"name": "my-blob-ks"
}
],
"models": [],
"encryptionKey": null,
"retrievalReasoningEffort": {
"kind": "low"
}
}
メモ
応答スキーマには、ナレッジ ベースの作成に使用した API バージョンが反映されます。 一般公開されている 2026-04-01 API バージョンで作成されたナレッジ ベースは、2026-05-01-preview よりも狭い定義を返します。 各バージョンでサポートされるプロパティの詳細については、次のセクションを参照してください。
ナレッジ ベースを作成する
重要
2026-04-01 API バージョンは、一般公開されているナレッジ ソースの種類のみを受け入れ、最小限の抽出取得をサポートします。 クエリ計画、回答合成、構成可能な推論作業などのプレビューのみの機能はサポートされていません。 完全な機能については、2026-05-01-preview を使用します。
ナレッジベースは、Foundry Models において、検索可能なコンテンツである 1 つ以上のナレッジソースを、Azure OpenAI のオプションの LLM に接続します。 設定したプロパティは、クエリの実行と取得応答の既定値を設定します。
ナレッジ ベースを作成した後は、いつでもそのプロパティを更新できます。 ナレッジ ベースが使用中の場合、更新は次の取得に有効になります。
// Create a knowledge base
using Azure.Search.Documents.Indexes;
using Azure.Search.Documents.Indexes.Models;
using Azure.Search.Documents.KnowledgeBases.Models;
using Azure;
var indexClient = new SearchIndexClient(new Uri(searchEndpoint), new AzureKeyCredential(apiKey));
var aoaiParams = new AzureOpenAIVectorizerParameters
{
ResourceUri = new Uri(aoaiEndpoint),
DeploymentName = aoaiGptDeployment,
ModelName = aoaiGptModel,
ApiKey = aoaiApiKey
};
var knowledgeBase = new KnowledgeBase(
name: "my-kb",
knowledgeSources: new KnowledgeSourceReference[]
{
new KnowledgeSourceReference("hotels-ks"),
new KnowledgeSourceReference("earth-at-night-ks")
}
)
{
Description = "This knowledge base handles questions directed at two unrelated sample indexes.",
RetrievalInstructions = "Use the hotels knowledge source for queries about where to stay, otherwise use the earth at night knowledge source.",
AnswerInstructions = "Provide a two-sentence, concise, and informative answer based on the retrieved documents.",
OutputMode = KnowledgeRetrievalOutputMode.AnswerSynthesis,
Models = { new KnowledgeBaseAzureOpenAIModel(azureOpenAIParameters: aoaiParams) },
RetrievalReasoningEffort = new KnowledgeRetrievalLowReasoningEffort()
};
await indexClient.CreateOrUpdateKnowledgeBaseAsync(knowledgeBase);
Console.WriteLine($"Knowledge base '{knowledgeBase.Name}' created or updated successfully.");
リファレンス:SearchIndexClient、 KnowledgeBase
# Create a knowledge base
from azure.core.credentials import AzureKeyCredential
from azure.search.documents.indexes import SearchIndexClient
from azure.search.documents.indexes.models import (
AzureOpenAIVectorizerParameters,
KnowledgeBase,
KnowledgeBaseAzureOpenAIModel,
KnowledgeSourceReference,
)
from azure.search.documents.knowledgebases.models import KnowledgeRetrievalLowReasoningEffort
index_client = SearchIndexClient(endpoint = "search_url", credential = AzureKeyCredential("api_key"))
aoai_params = AzureOpenAIVectorizerParameters(
resource_url = "aoai_endpoint",
api_key="aoai_api_key",
deployment_name = "aoai_gpt_deployment",
model_name = "aoai_gpt_model",
)
knowledge_base = KnowledgeBase(
name = "my-kb",
description = "This knowledge base handles questions directed at two unrelated sample indexes.",
retrieval_instructions = "Use the hotels knowledge source for queries about where to stay, otherwise use the earth at night knowledge source.",
answer_instructions = "Provide a two-sentence, concise, and informative answer based on the retrieved documents.",
output_mode = "answerSynthesis",
knowledge_sources = [
KnowledgeSourceReference(name = "hotels-ks"),
KnowledgeSourceReference(name = "earth-at-night-ks"),
],
models = [KnowledgeBaseAzureOpenAIModel(azure_open_ai_parameters = aoai_params)],
encryption_key = None,
retrieval_reasoning_effort = KnowledgeRetrievalLowReasoningEffort(),
)
index_client.create_or_update_knowledge_base(knowledge_base)
print(f"Knowledge base '{knowledge_base.name}' created or updated successfully.")
リファレンス:SearchIndexClient、 KnowledgeBase
# Create a knowledge base
PUT {{search-url}}/knowledgebases/{{knowledge-base-name}}?api-version=2026-05-01-preview
Content-Type: application/json
api-key: {{search-api-key}}
{
"name" : "my-kb",
"description": "This knowledge base handles questions directed at two unrelated sample indexes.",
"retrievalInstructions": "Use the hotels knowledge source for queries about where to stay, otherwise use the earth at night knowledge source.",
"answerInstructions": null,
"outputMode": "answerSynthesis",
"knowledgeSources": [
{
"name": "hotels-ks"
},
{
"name": "earth-at-night-ks"
}
],
"models" : [
{
"kind": "azureOpenAI",
"azureOpenAIParameters": {
"resourceUri": "{{model-provider-url}}",
"apiKey": "{{model-api-key}}",
"deploymentId": "gpt-5.4-mini",
"modelName": "gpt-5.4-mini"
}
}
],
"encryptionKey": null,
"retrievalReasoningEffort": {
"kind": "low"
}
}
リファレンス:ナレッジ ベース - 作成または更新
ナレッジ ベースのプロパティ
ナレッジ ベースを作成するには、次のプロパティを渡します。
| 名前 | 説明 | タイプ | 必須 |
|---|---|---|---|
Name |
ナレッジ ベースの名前。 ナレッジ ベース コレクション内で一意である必要があり、Azure AI 検索内のオブジェクトの命名ガイドラインに従う必要があります。 | 文字列 | はい |
KnowledgeSources |
サポートされている 1 つ以上 のナレッジ ソース。 | 配列 | はい |
Description |
ナレッジ ベースの説明。 LLM では、説明を使用してクエリの計画を通知します。 | 文字列 | いいえ |
RetrievalInstructions |
ナレッジ ソースがクエリのスコープ内に存在する必要があるかどうかを判断するための LLM のプロンプト。 複数のナレッジ ソースがある場合は、このプロンプトを含めます。 このフィールドは、ナレッジ ソースの選択とクエリの作成の両方に影響します。 たとえば、命令で情報を追加したり、ナレッジ ソースに優先順位を付けたりすることができます。 命令は LLM に直接渡されます。つまり、基本的なナレッジ ソースをバイパスする命令など、クエリ計画を中断する命令を提供できます。 | 文字列 | いいえ |
AnswerInstructions |
合成された回答を整形するためのカスタム命令。 既定値は null です。 詳細については、「 引用に基づく応答に回答合成を使用する」を参照してください。 | 文字列 | いいえ |
OutputMode |
有効な値は、LLM で作成された回答の場合の AnswerSynthesis または、ダウンストリームステップとして LLM に渡すことができる完全な検索結果の場合の ExtractedData です。 |
文字列 | いいえ |
Models |
Web情報源に必要です。 その他のナレッジ ソースの種類の場合は省略可能です。 クエリ計画または応答合成で サポートされる LLM を 指定します。 Microsoft Foundry ポータルまたはコマンド ライン要求から接続の詳細を取得し、KnowledgeBaseAzureOpenAIModel クラス を使用して指定>。 モデルへのAzure AI 検索接続には、API キーの代わりにロールベースのアクセス制御を使用できます。 | 配列 | いいえ |
RetrievalReasoningEffort |
LLM 関連のクエリ処理のレベルを決定します。 有効な値は、 minimal、 low (既定値)、および mediumです。 詳細については、「取得理由付けの努力を設定」を参照してください。 |
オブジェクト | いいえ |
EncryptionKey |
ナレッジ ベースと生成されたオブジェクトの両方の機密情報を暗号化するための カスタマー マネージド キー 。 | オブジェクト | いいえ |
| 名前 | 説明 | タイプ | 必須 |
|---|---|---|---|
name |
ナレッジ ベースの名前。 ナレッジ ベース コレクション内で一意である必要があり、Azure AI 検索内のオブジェクトの命名ガイドラインに従う必要があります。 | 文字列 | はい |
description |
ナレッジ ベースの説明。 LLM では、説明を使用してクエリの計画を通知します。 | 文字列 | いいえ |
retrieval_instructions |
ナレッジ ソースがクエリのスコープ内に存在する必要があるかどうかを判断するための LLM のプロンプト。 複数のナレッジ ソースがある場合は、このプロンプトを含めます。 このフィールドは、ナレッジ ソースの選択とクエリの作成の両方に影響します。 たとえば、命令で情報を追加したり、ナレッジ ソースに優先順位を付けたりすることができます。 LLM に命令を直接渡します。 重要なナレッジ ソースをバイパスする命令など、クエリの計画を中断する命令を提供できます。 | 文字列 | いいえ |
answer_instructions |
合成された回答を整形するためのカスタム命令。 既定値は null です。 詳細については、「 引用に基づく応答に回答合成を使用する」を参照してください。 | 文字列 | いいえ |
output_mode |
有効な値は、LLM で作成された回答の場合の answerSynthesis または、ダウンストリームステップとして LLM に渡すことができる完全な検索結果の場合の extractedData です。 |
文字列 | いいえ |
knowledge_sources |
サポートされている 1 つ以上 のナレッジ ソース。 | 配列 | はい |
models |
Web情報源に必要です。 その他のナレッジ ソースの種類の場合は省略可能です。 クエリ計画または応答合成で サポートされる LLM を 指定します。 Microsoft Foundry ポータルまたはコマンド ライン要求から接続の詳細を取得します。 モデルへのAzure AI 検索接続には、API キーの代わりにロールベースのアクセス制御を使用できます。 | 配列 | いいえ |
encryption_key |
ナレッジ ベースと生成されたオブジェクトの両方の機密情報を暗号化するための カスタマー マネージド キー 。 | オブジェクト | いいえ |
retrieval_reasoning_effort |
LLM 関連のクエリ処理のレベルを決定します。 有効な値は、 minimal、 low (既定値)、および mediumです。 詳細については、「取得理由付けの努力を設定」を参照してください。 |
オブジェクト | いいえ |
| 名前 | 説明 | タイプ | 必須 |
|---|---|---|---|
name |
ナレッジ ベースの名前。 ナレッジ ベース コレクション内で一意である必要があり、Azure AI 検索内のオブジェクトの命名ガイドラインに従う必要があります。 | 文字列 | はい |
description |
ナレッジ ベースの説明。 LLM では、説明を使用してクエリの計画を通知します。 | 文字列 | いいえ |
retrievalInstructions |
ナレッジ ソースがクエリのスコープ内に存在する必要があるかどうかを判断するための LLM のプロンプト。 複数のナレッジ ソースがある場合は、このプロンプトを含めます。 このフィールドは、ナレッジ ソースの選択とクエリの作成の両方に影響します。 たとえば、命令で情報を追加したり、ナレッジ ソースに優先順位を付けたりすることができます。 LLM に命令を直接渡します。つまり、基本的なナレッジ ソースをバイパスする命令など、クエリ計画を中断する命令を提供できます。 | 文字列 | いいえ |
answerInstructions |
合成された回答を整形するためのカスタム命令。 既定値は null です。 詳細については、「 引用に基づく応答に回答合成を使用する」を参照してください。 | 文字列 | いいえ |
outputMode |
有効な値は、LLM で作成された回答の場合の answerSynthesis または、ダウンストリームステップとして LLM に渡すことができる完全な検索結果の場合の extractedData です。 |
文字列 | いいえ |
knowledgeSources |
サポートされている 1 つ以上 のナレッジ ソース。 | 配列 | はい |
models |
Web情報源に必要です。 その他のナレッジ ソースの種類の場合は省略可能です。 クエリ計画または応答合成で サポートされる LLM を 指定します。 Microsoft Foundry ポータルまたはコマンド ライン要求から接続の詳細を取得します。 モデルへのAzure AI 検索接続には、API キーの代わりにロールベースのアクセス制御を使用できます。 | 配列 | いいえ |
encryptionKey |
ナレッジ ベースと生成されたオブジェクトの両方の機密情報を暗号化するための カスタマー マネージド キー 。 | オブジェクト | いいえ |
retrievalReasoningEffort.kind |
LLM 関連のクエリ処理のレベルを決定します。 有効な値は、 minimal、 low (既定値)、および mediumです。 詳細については、「取得理由付けの努力を設定」を参照してください。 |
オブジェクト | いいえ |
ブラウザーベースの取得呼び出し用に CORS を構成する (プレビュー)
重要
2026-05-01-preview を使用してクロスオリジン リソース共有 (CORS) を有効にすることができます。これにより、ブラウザー ベースのアプリケーションがサービスから直接データを要求できます。 CORS の構成によっては、外部 Web ページが、ユーザーのブラウザー コンテキストを使用してサービスとそのデータにアクセスまたは呼び出したり、他のセキュリティ上の脅威を作成したりすることができます。 CORS の有効化は、ご自身の責任で行ってください。
2026-05-01-preview API バージョンでは、ナレッジ ベースで、JavaScript から直接取得アクションを呼び出すブラウザー ベースのアプリケーションの corsOptions を定義できます。 CORS ポリシーは、取得要求をナレッジ ベースに送信できるブラウザーの配信元を識別します。
corsOptionsを省略すると、ナレッジ ベースには CORS ポリシーがなく、ブラウザーはクロスオリジン取得要求をブロックします。
次の例では、1 つのブラウザーの配信元から要求を取得できるナレッジ ベースを作成します。
using Azure;
using Azure.Search.Documents.Indexes;
using Azure.Search.Documents.Indexes.Models;
var indexClient = new SearchIndexClient(new Uri(searchEndpoint), new AzureKeyCredential(apiKey));
var knowledgeBase = new KnowledgeBase(
name: "browser-chat-kb",
knowledgeSources: new[] { new KnowledgeSourceReference("product-docs-ks") }
)
{
Description = "A knowledge base that allows one browser app origin.",
CorsOptions = new CorsOptions(new[] { "https://myapp.example.com" })
{
MaxAgeInSeconds = 300
}
};
await indexClient.CreateOrUpdateKnowledgeBaseAsync(knowledgeBase);
Reference:CorsOptions、 KnowledgeBase
from azure.core.credentials import AzureKeyCredential
from azure.search.documents.indexes import SearchIndexClient
from azure.search.documents.indexes.models import (
CorsOptions,
KnowledgeBase,
KnowledgeSourceReference,
)
index_client = SearchIndexClient(endpoint="search_url", credential=AzureKeyCredential("api_key"))
knowledge_base = KnowledgeBase(
name="browser-chat-kb",
description="A knowledge base that allows one browser app origin.",
knowledge_sources=[KnowledgeSourceReference(name="product-docs-ks")],
cors_options=CorsOptions(
allowed_origins=["https://myapp.example.com"],
max_age_in_seconds=300,
),
)
index_client.create_or_update_knowledge_base(knowledge_base)
Reference:CorsOptions、 KnowledgeBase
PUT {{search-url}}/knowledgebases/browser-chat-kb?api-version=2026-05-01-preview
Content-Type: application/json
api-key: {{search-api-key}}
{
"name": "browser-chat-kb",
"description": "A knowledge base that allows one browser app origin.",
"knowledgeSources": [
{
"name": "product-docs-ks"
}
],
"corsOptions": {
"allowedOrigins": [
"https://myapp.example.com"
],
"maxAgeInSeconds": 300
}
}
corsOptions は、次のプロパティを受け入れます。
| 名前 | 説明 | タイプ | 必須 |
|---|---|---|---|
allowedOrigins |
ブラウザーからナレッジ ベースを呼び出すことができる配信元を一覧表示します。 運用アプリケーションの場合は、配信元の明示的なリストを使用します。
"*"を使用してすべての配信元を許可できますが、この設定は運用環境には推奨されません。 |
配列 | はい |
maxAgeInSeconds |
ブラウザーがプリフライト応答をキャッシュできる期間を制御します。 省略すると、プリフライト キャッシュの期間は既定で 300 秒になります。 | Integer | いいえ |
ナレッジ ベースのクエリを実行する
ナレッジ ベースを作成したら、 取得アクションまたは MCP エンドポイント を呼び出してクエリを実行します。
ナレッジ ベースを削除する
ナレッジ ベースが不要になった場合、または検索サービスでナレッジ ベースを再構築する必要がなくなった場合は、次のコードを実行してオブジェクトを削除します。
// Delete a knowledge base
using Azure.Search.Documents.Indexes;
var indexClient = new SearchIndexClient(new Uri(searchEndpoint), credential);
await indexClient.DeleteKnowledgeBaseAsync(knowledgeBaseName);
System.Console.WriteLine($"Knowledge base '{knowledgeBaseName}' deleted successfully.");
Reference:SearchIndexClient
# Delete a knowledge base
from azure.core.credentials import AzureKeyCredential
from azure.search.documents.indexes import SearchIndexClient
index_client = SearchIndexClient(endpoint = "search_url", credential = AzureKeyCredential("api_key"))
index_client.delete_knowledge_base("knowledge_base_name")
print(f"Knowledge base deleted successfully.")
Reference:SearchIndexClient
# Delete a knowledge base
DELETE {{search-url}}/knowledgebases/{{knowledge-base-name}}?api-version={{api-version}}
api-key: {{search-api-key}}
リファレンス:ナレッジ ベース - 削除