注
現在、この機能はパブリック プレビュー段階にあります。 このプレビュー版はサービス レベル アグリーメントなしで提供されています。運用環境のワークロードに使用することはお勧めできません。 特定の機能はサポート対象ではなく、機能が制限されることがあります。 詳細については、「 Microsoft Azure プレビューの追加使用条件」を参照してください。
BLOB ナレッジ ソースを使用して、エージェント検索パイプラインで Azure BLOB コンテンツのインデックス作成とクエリを実行します。 ナレッジ ソース は個別に作成され、 ナレッジ ベースで参照され、エージェントまたはチャットボットがクエリ時に 取得アクション を呼び出すときに、グラウンド データとして使用されます。
既存のインデックスと修飾インデックスを指定する 検索インデックスナレッジ ソースとは異なり、BLOB ナレッジ ソースでは、外部データ ソース、モデル、およびプロパティを指定して、次の Azure AI Search オブジェクトを自動的に生成します。
- BLOB コンテナーを表すデータ ソース。
- コンテナーからマルチモーダル コンテンツをチャンクし、必要に応じてベクター化するスキルセット。
- エンリッチされたコンテンツを格納し、エージェント検索の条件を満たすインデックス。
- 前のオブジェクトを使用してインデックス作成およびエンリッチメント パイプラインを駆動するインデクサー。
注
Azure Storage のドキュメント (BLOB) レベルでユーザー アクセスが指定されている場合、ナレッジ ソースはアクセス許可メタデータを Azure AI Search のインデックス付きコンテンツに転送できます。 詳細については、 ADLS Gen2 アクセス許可メタデータ または BLOB RBAC スコープに関するページを参照してください。
[前提条件]
Azure AI Search はエージェント型情報検索を提供する任意のリージョンで利用可能です。 セマンティック ランカーを有効にする必要があります。
Azure Blob Storage または Azure Data Lake Storage (ADLS) Gen2 アカウント。
テキスト コンテンツでサポートされているコンテンツ タイプ を含む BLOB コンテナー。 オプションの画像言語化の場合、サポートされるコンテンツ タイプは、チャット完了モデルで画像ファイルを分析および記述できるかどうかによって異なります。
.NET SDK 用の
Azure.Search.Documentsクライアント ライブラリ の最新のプレビュー バージョン。Azure AI Search でオブジェクトを作成して使用するためのアクセス許可。 ロールベースのアクセスをお勧めしますが、ロールの割り当てが不可能な場合は API キーを使用できます。 詳細については、「 検索サービスへの接続」を参照してください。
既存のナレッジ ソースを確認する
ナレッジ ソースは、最上位の再利用可能なオブジェクトです。 既存のナレッジ ソースについて知ることは、新しいオブジェクトを再利用または名前付けする場合に役立ちます。
次のコードを実行して、名前と種類でナレッジ ソースを一覧表示します。
// List knowledge sources by name and type
using Azure.Search.Documents.Indexes;
var indexClient = new SearchIndexClient(new Uri(searchEndpoint), credential);
var knowledgeSources = indexClient.GetKnowledgeSourcesAsync();
Console.WriteLine("Knowledge Sources:");
await foreach (var ks in knowledgeSources)
{
Console.WriteLine($" Name: {ks.Name}, Type: {ks.GetType().Name}");
}
名前で 1 つのナレッジ ソースを取得し、その JSON 定義を確認することもできます。
using Azure.Search.Documents.Indexes;
using System.Text.Json;
var indexClient = new SearchIndexClient(new Uri(searchEndpoint), credential);
// Specify the knowledge source name to retrieve
string ksNameToGet = "earth-knowledge-source";
// Get its definition
var knowledgeSourceResponse = await indexClient.GetKnowledgeSourceAsync(ksNameToGet);
var ks = knowledgeSourceResponse.Value;
// Serialize to JSON for display
var jsonOptions = new JsonSerializerOptions
{
WriteIndented = true,
DefaultIgnoreCondition = System.Text.Json.Serialization.JsonIgnoreCondition.Never
};
Console.WriteLine(JsonSerializer.Serialize(ks, ks.GetType(), jsonOptions));
次の JSON は、BLOB ナレッジ ソースに対する応答の例です。
{
"name": "my-blob-ks",
"kind": "azureBlob",
"description": "A sample blob knowledge source.",
"encryptionKey": null,
"azureBlobParameters": {
"connectionString": "<REDACTED>",
"containerName": "blobcontainer",
"folderPath": null,
"isADLSGen2": false,
"ingestionParameters": {
"disableImageVerbalization": false,
"ingestionPermissionOptions": [],
"contentExtractionMode": "standard",
"identity": null,
"embeddingModel": {
"kind": "azureOpenAI",
"azureOpenAIParameters": {
"resourceUri": "<REDACTED>",
"deploymentId": "text-embedding-3-large",
"apiKey": "<REDACTED>",
"modelName": "text-embedding-3-large",
"authIdentity": null
}
},
"chatCompletionModel": {
"kind": "azureOpenAI",
"azureOpenAIParameters": {
"resourceUri": "<REDACTED>",
"deploymentId": "gpt-5-mini",
"apiKey": "<REDACTED>",
"modelName": "gpt-5-mini",
"authIdentity": null
}
},
"ingestionSchedule": null,
"assetStore": null,
"aiServices": {
"uri": "<REDACTED>",
"apiKey": "<REDACTED>"
}
},
"createdResources": {
"datasource": "my-blob-ks-datasource",
"indexer": "my-blob-ks-indexer",
"skillset": "my-blob-ks-skillset",
"index": "my-blob-ks-index"
}
}
}
注
機密情報はリダクトされます。 生成されたリソースは、応答の最後で示されます。
ナレッジ ソースを作成する
次のコードを実行して 、BLOB ナレッジ ソースを作成します。
// Create a blob knowledge source
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 chatCompletionParams = new AzureOpenAIVectorizerParameters
{
ResourceUri = new Uri(aoaiEndpoint),
DeploymentName = aoaiGptDeployment,
ModelName = aoaiGptModel
};
var embeddingParams = new AzureOpenAIVectorizerParameters
{
ResourceUri = new Uri(aoaiEndpoint),
DeploymentName = aoaiEmbeddingDeployment,
ModelName = aoaiEmbeddingModel
};
var ingestionParams = new KnowledgeSourceIngestionParameters
{
DisableImageVerbalization = false,
ChatCompletionModel = new KnowledgeBaseAzureOpenAIModel(azureOpenAIParameters: chatCompletionParams),
EmbeddingModel = new KnowledgeSourceAzureOpenAIVectorizer
{
AzureOpenAIParameters = embeddingParams
}
};
var blobParams = new AzureBlobKnowledgeSourceParameters(
connectionString: connectionString,
containerName: containerName
)
{
IsAdlsGen2 = false,
IngestionParameters = ingestionParams
};
var knowledgeSource = new AzureBlobKnowledgeSource(
name: "my-blob-ks",
azureBlobParameters: blobParams
)
{
Description = "This knowledge source pulls from a blob storage container."
};
await indexClient.CreateOrUpdateKnowledgeSourceAsync(knowledgeSource);
Console.WriteLine($"Knowledge source '{knowledgeSource.Name}' created or updated successfully.");
ソース固有のプロパティ
次のプロパティを渡して、BLOB ナレッジ ソースを作成できます。
| 名前 | Description | タイプ | 編集可能 | 必須 |
|---|---|---|---|---|
name |
ナレッジ ソースの名前。ナレッジ ソース コレクション内で一意である必要があり、Azure AI Search のオブジェクトの 名前付けガイドライン に従う必要があります。 | 糸 | いいえ | イエス |
Description |
ナレッジ ソースの説明。 | 糸 | イエス | いいえ |
encryptionKey |
ナレッジ ソースと生成されたオブジェクトの両方の機密情報を暗号化するための カスタマー マネージド キー 。 | Object | イエス | いいえ |
chatCompletionParams |
検索の推論作業が低または中である場合に、クエリ計画とオプションの回答合成に使用されるチャット完了モデルに固有のパラメーター。 | Object | いいえ | |
embeddingParams |
コンテンツのチャンクをベクター化する場合に使用される埋め込みモデルに固有のパラメーター。 | Object | いいえ | |
azureBlobParameters |
ブロブ ナレッジ ソースに固有のパラメーター: connectionString, containerName, folderPath, isAdlsGen2。 |
Object | いいえ | |
connectionString |
キーベースの 接続文字列 、またはマネージド ID を使用している場合はリソース ID。 | 糸 | いいえ | イエス |
containerName |
BLOB ストレージ コンテナーの名前。 | 糸 | いいえ | イエス |
folderPath |
コンテナー内のフォルダー。 | 糸 | いいえ | いいえ |
isAdlsGen2 |
既定値は Falseです。 ADLS Gen2 ストレージ アカウントを使用している場合は、 True に設定します。 |
ブール値 | いいえ | いいえ |
ingestionParameters のプロパティ
インデックス付きナレッジ ソースの場合のみ、次の ingestionParameters プロパティを渡して、コンテンツの取り込みと処理方法を制御できます。
| 名前 | Description | タイプ | 編集可能 | 必須 |
|---|---|---|---|---|
Identity |
生成されたインデクサーで使用する マネージド ID 。 | Object | イエス | いいえ |
DisableImageVerbalization |
画像の言語化の使用を有効または無効にします。 既定値は False で、画像の言語化を 有効にします 。 画像の言語化をTrueにするには、に設定します。 |
ブール値 | いいえ | いいえ |
ChatCompletionModel |
画像を言語化したり、コンテンツを抽出したりするチャット完了モデル。 サポートされているモデルは、 gpt-4o、 gpt-4o-mini、 gpt-4.1、 gpt-4.1-mini、 gpt-4.1-nano、 gpt-5、 gpt-5-mini、および gpt-5-nanoです。
GenAI プロンプト スキルは、生成されたスキルセットに含まれます。 このパラメーターを設定するには、 disable_image_verbalization が False に設定されている必要もあります。 |
Object | 編集可能な api_key と deployment_name のみ |
いいえ |
EmbeddingModel |
インデックス作成中およびクエリ時にテキストと画像の内容をベクター化するテキスト埋め込みモデル。 サポートされているモデルは、 text-embedding-ada-002、 text-embedding-3-small、および text-embedding-3-largeです。
Azure OpenAI Embedding スキルは生成されたスキルセットに含まれます。また、生成されたインデックスには Azure OpenAI ベクター化が含まれます。 |
Object | 編集可能な api_key と deployment_name のみ |
いいえ |
ContentExtractionMode |
ファイルからコンテンツを抽出する方法を制御します。 既定値は minimal で、テキストと画像に標準のコンテンツ抽出を使用します。
standard スキルを使用した高度なドキュメント解析とチャンク処理を行うには に設定します。これは、生成されるスキルセットに含められます。
standardの場合のみ、AiServicesおよびAssetStoreパラメーターは指定できます。 |
糸 | いいえ | いいえ |
AiServices |
Foundry Tools で Azure Content Understanding にアクセスするための Microsoft Foundry リソース。 このパラメーターを設定するには、 ContentExtractionMode が standard に設定されている必要があります。 |
Object | 編集可能な api_key のみ |
イエス |
IngestionSchedule |
生成されたインデクサーにスケジュール情報を追加します。 後で スケジュールを追加 して、データ更新を自動化することもできます。 | Object | イエス | いいえ |
IngestionPermissionOptions |
選択したナレッジ ソース ( ADLS Gen2 または インデックス付き SharePoint) から取り込むドキュメント レベルのアクセス許可。
user_ids、group_ids、またはrbac_scopeを指定すると、生成された ADLS Gen2 インデクサーまたは SharePoint インデクサーに取り込まれたアクセス許可が含まれます。 |
Array | いいえ | いいえ |
インジェストの状態を確認する
インデクサー パイプラインを生成し、検索インデックスを設定するナレッジ ソースの インデクサーの状態 など、インジェストの進行状況と正常性を監視するには、次のコードを実行します。
// Get knowledge source ingestion status
using Azure.Search.Documents.Indexes;
using System.Text.Json;
var indexClient = new SearchIndexClient(new Uri(searchEndpoint), new AzureKeyCredential(apiKey));
// Get the knowledge source status
var statusResponse = await indexClient.GetKnowledgeSourceStatusAsync(knowledgeSourceName);
var status = statusResponse.Value;
// Serialize to JSON for display
var json = JsonSerializer.Serialize(status, new JsonSerializerOptions { WriteIndented = true });
Console.WriteLine(json);
インジェスト パラメーターを含み、コンテンツをアクティブに取り込む要求の応答は、次の例のようになります。
{
"synchronizationStatus": "active", // creating, active, deleting
"synchronizationInterval" : "1d", // null if no schedule
"currentSynchronizationState" : { // spans multiple indexer "runs"
"startTime": "2025-10-27T19:30:00Z",
"itemUpdatesProcessed": 1100,
"itemsUpdatesFailed": 100,
"itemsSkipped": 1100,
},
"lastSynchronizationState" : { // null on first sync
"startTime": "2025-10-27T19:30:00Z",
"endTime": "2025-10-27T19:40:01Z", // this value appears on the activity record on each /retrieve
"itemUpdatesProcessed": 1100,
"itemsUpdatesFailed": 100,
"itemsSkipped": 1100,
},
"statistics": { // null on first sync
"totalSynchronization": 25,
"averageSynchronizationDuration": "00:15:20",
"averageItemsProcessedPerSynchronization" : 500
}
}
作成されたオブジェクトを確認する
BLOB ナレッジ ソースを作成すると、検索サービスによってインデクサー、インデックス、スキルセット、データ ソースも作成されます。 エラーや非互換性が発生するとパイプラインが壊れる可能性があるので、これらのオブジェクトを編集することはお勧めしません。
ナレッジ ソースを作成すると、作成されたオブジェクトが応答に一覧表示されます。 これらのオブジェクトは固定テンプレートに従って作成され、その名前はナレッジ ソースの名前に基づいています。 オブジェクト名は変更できません。
Azure portal を使って出力の作成を検証することをお勧めします。 ワークフローは次のとおりです。
- インデクサーで成功または失敗のメッセージを確認します。 接続またはクォータのエラーがここに表示されます。
- 検索可能なコンテンツのインデックスを調べます。 検索エクスプローラーを使用してクエリを実行します。
- スキルセットを確認して、コンテンツがどのようにチャンクされ、必要に応じてベクター化されるかを確認します。
- 接続の詳細については、データ ソースを確認します。 この例では、わかりやすくするために API キーを使用していますが、認証には Microsoft Entra ID を使用し、承認にはロールベースのアクセス制御を使用できます。
ナレッジ ベースに割り当てる
ナレッジ ソースに問題がない場合は、次の手順に進 みます。ナレッジ ベースでナレッジ ソースを指定します。
ナレッジ ベースを構成したら、 取得アクション を使用してナレッジ ソースにクエリを実行します。
ナレッジ ソースを削除する
ナレッジ ソースを削除する前に、ナレッジ ソースを参照するすべてのナレッジ ベースを削除するか、ナレッジ ベース定義を更新して参照を削除する必要があります。 インデックスとインデクサー パイプラインを生成するナレッジ ソースの場合、 生成されたすべてのオブジェクト も削除されます。 ただし、既存のインデックスを使用してナレッジ ソースを作成した場合、インデックスは削除されません。
使用中のナレッジ ソースを削除しようとすると、アクションは失敗し、影響を受けるナレッジ ベースの一覧が返されます。
ナレッジ ソースを削除するには:
検索サービスのすべてのナレッジ ベースの一覧を取得します。
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}"); }応答の例は次のようになります。
Knowledge Bases: - earth-knowledge-base - hotels-sample-knowledge-base - my-demo-knowledge-base個々のナレッジベース定義を取得して、ナレッジソースの参照を確認します。
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);応答の例は次のようになります。
{ "Name": "earth-knowledge-base", "KnowledgeSources": [ { "Name": "earth-knowledge-source" } ], "Models": [ {} ], "RetrievalReasoningEffort": {}, "OutputMode": {}, "ETag": "\u00220x8DE278629D782B3\u0022", "EncryptionKey": null, "Description": null, "RetrievalInstructions": null, "AnswerInstructions": null }ナレッジ ベースを削除するか、ナレッジ ベースを更新 して、複数のソースがある場合はナレッジ ソースを削除します。 この例では、削除を示します。
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.");ナレッジ ソースを削除します。
await indexClient.DeleteKnowledgeSourceAsync(knowledgeSourceName); System.Console.WriteLine($"Knowledge source '{knowledgeSourceName}' deleted successfully.");
注
現在、この機能はパブリック プレビュー段階にあります。 このプレビュー版はサービス レベル アグリーメントなしで提供されています。運用環境のワークロードに使用することはお勧めできません。 特定の機能はサポート対象ではなく、機能が制限されることがあります。 詳細については、「 Microsoft Azure プレビューの追加使用条件」を参照してください。
BLOB ナレッジ ソースを使用して、エージェント検索パイプラインで Azure BLOB コンテンツのインデックス作成とクエリを実行します。 ナレッジ ソース は個別に作成され、 ナレッジ ベースで参照され、エージェントまたはチャットボットがクエリ時に 取得アクション を呼び出すときに、グラウンド データとして使用されます。
既存のインデックスと修飾インデックスを指定する 検索インデックスナレッジ ソースとは異なり、BLOB ナレッジ ソースでは、外部データ ソース、モデル、およびプロパティを指定して、次の Azure AI Search オブジェクトを自動的に生成します。
- BLOB コンテナーを表すデータ ソース。
- コンテナーからマルチモーダル コンテンツをチャンクし、必要に応じてベクター化するスキルセット。
- エンリッチされたコンテンツを格納し、エージェント検索の条件を満たすインデックス。
- 前のオブジェクトを使用してインデックス作成およびエンリッチメント パイプラインを駆動するインデクサー。
注
Azure Storage のドキュメント (BLOB) レベルでユーザー アクセスが指定されている場合、ナレッジ ソースはアクセス許可メタデータを Azure AI Search のインデックス付きコンテンツに転送できます。 詳細については、 ADLS Gen2 アクセス許可メタデータ または BLOB RBAC スコープに関するページを参照してください。
[前提条件]
Azure AI Search はエージェント型情報検索を提供する任意のリージョンで利用可能です。 セマンティック ランカーを有効にする必要があります。
Azure Blob Storage または Azure Data Lake Storage (ADLS) Gen2 アカウント。
テキスト コンテンツでサポートされているコンテンツ タイプ を含む BLOB コンテナー。 オプションの画像言語化の場合、サポートされるコンテンツ タイプは、チャット完了モデルで画像ファイルを分析および記述できるかどうかによって異なります。
Python 用
azure-search-documentsクライアント ライブラリ の最新のプレビュー バージョン。Azure AI Search でオブジェクトを作成して使用するためのアクセス許可。 ロールベースのアクセスをお勧めしますが、ロールの割り当てが不可能な場合は API キーを使用できます。 詳細については、「 検索サービスへの接続」を参照してください。
既存のナレッジ ソースを確認する
ナレッジ ソースは、最上位の再利用可能なオブジェクトです。 既存のナレッジ ソースについて知ることは、新しいオブジェクトを再利用または名前付けする場合に役立ちます。
次のコードを実行して、名前と種類でナレッジ ソースを一覧表示します。
# List knowledge sources by name and type
import requests
import json
endpoint = "{search_url}/knowledgesources"
params = {"api-version": "2025-11-01-preview", "$select": "name, kind"}
headers = {"api-key": "{api_key}"}
response = requests.get(endpoint, params = params, headers = headers)
print(json.dumps(response.json(), indent = 2))
名前で 1 つのナレッジ ソースを取得し、その JSON 定義を確認することもできます。
# Get a knowledge source definition
import requests
import json
endpoint = "{search_url}/knowledgesources/{knowledge_source_name}"
params = {"api-version": "2025-11-01-preview"}
headers = {"api-key": "{api_key}"}
response = requests.get(endpoint, params = params, headers = headers)
print(json.dumps(response.json(), indent = 2))
次の JSON は、BLOB ナレッジ ソースに対する応答の例です。
{
"name": "my-blob-ks",
"kind": "azureBlob",
"description": "A sample blob knowledge source.",
"encryptionKey": null,
"azureBlobParameters": {
"connectionString": "<REDACTED>",
"containerName": "blobcontainer",
"folderPath": null,
"isADLSGen2": false,
"ingestionParameters": {
"disableImageVerbalization": false,
"ingestionPermissionOptions": [],
"contentExtractionMode": "standard",
"identity": null,
"embeddingModel": {
"kind": "azureOpenAI",
"azureOpenAIParameters": {
"resourceUri": "<REDACTED>",
"deploymentId": "text-embedding-3-large",
"apiKey": "<REDACTED>",
"modelName": "text-embedding-3-large",
"authIdentity": null
}
},
"chatCompletionModel": {
"kind": "azureOpenAI",
"azureOpenAIParameters": {
"resourceUri": "<REDACTED>",
"deploymentId": "gpt-5-mini",
"apiKey": "<REDACTED>",
"modelName": "gpt-5-mini",
"authIdentity": null
}
},
"ingestionSchedule": null,
"assetStore": null,
"aiServices": {
"uri": "<REDACTED>",
"apiKey": "<REDACTED>"
}
},
"createdResources": {
"datasource": "my-blob-ks-datasource",
"indexer": "my-blob-ks-indexer",
"skillset": "my-blob-ks-skillset",
"index": "my-blob-ks-index"
}
}
}
注
機密情報はリダクトされます。 生成されたリソースは、応答の最後で示されます。
ナレッジ ソースを作成する
次のコードを実行して、BLOB ナレッジ ソースを作成します。
# Create a blob knowledge source
from azure.core.credentials import AzureKeyCredential
from azure.search.documents.indexes import SearchIndexClient
from azure.search.documents.indexes.models import AzureBlobKnowledgeSource, AzureBlobKnowledgeSourceParameters, KnowledgeBaseAzureOpenAIModel, AzureOpenAIVectorizerParameters, KnowledgeSourceAzureOpenAIVectorizer, KnowledgeSourceContentExtractionMode, KnowledgeSourceIngestionParameters
index_client = SearchIndexClient(endpoint = "search_url", credential = AzureKeyCredential("api_key"))
knowledge_source = AzureBlobKnowledgeSource(
name = "my-blob-ks",
description = "This knowledge source pulls from a blob storage container.",
encryption_key = None,
azure_blob_parameters = AzureBlobKnowledgeSourceParameters(
connection_string = "blob_connection_string",
container_name = "blob_container_name",
folder_path = None,
is_adls_gen2 = False,
ingestion_parameters = KnowledgeSourceIngestionParameters(
identity = None,
disable_image_verbalization = False,
chat_completion_model = KnowledgeBaseAzureOpenAIModel(
azure_open_ai_parameters = AzureOpenAIVectorizerParameters(
# TRIMMED FOR BREVITY
)
),
embedding_model = KnowledgeSourceAzureOpenAIVectorizer(
azure_open_ai_parameters=AzureOpenAIVectorizerParameters(
# TRIMMED FOR BREVITY
)
),
content_extraction_mode = KnowledgeSourceContentExtractionMode.MINIMAL,
ingestion_schedule = None,
ingestion_permission_options = None
)
)
)
index_client.create_or_update_knowledge_source(knowledge_source)
print(f"Knowledge source '{knowledge_source.name}' created or updated successfully.")
ソース固有のプロパティ
次のプロパティを渡して、BLOB ナレッジ ソースを作成できます。
| 名前 | Description | タイプ | 編集可能 | 必須 |
|---|---|---|---|---|
name |
ナレッジ ソースの名前。ナレッジ ソース コレクション内で一意である必要があり、Azure AI Search のオブジェクトの 名前付けガイドライン に従う必要があります。 | 糸 | いいえ | イエス |
description |
ナレッジ ソースの説明。 | 糸 | イエス | いいえ |
encryption_key |
ナレッジ ソースと生成されたオブジェクトの両方の機密情報を暗号化するための カスタマー マネージド キー 。 | Object | イエス | いいえ |
azure_blob_parameters |
ブロブ ナレッジ ソースに固有のパラメーター: connection_string, container_name, folder_path, is_adls_gen2。 |
Object | いいえ | |
connection_string |
キーベースの 接続文字列 、またはマネージド ID を使用している場合はリソース ID。 | 糸 | いいえ | イエス |
container_name |
BLOB ストレージ コンテナーの名前。 | 糸 | いいえ | イエス |
folder_path |
コンテナー内のフォルダー。 | 糸 | いいえ | いいえ |
is_adls_gen2 |
既定値は Falseです。 ADLS Gen2 ストレージ アカウントを使用している場合は、 True に設定します。 |
ブール値 | いいえ | いいえ |
ingestionParameters のプロパティ
インデックス付きナレッジ ソースの場合のみ、次の ingestionParameters プロパティを渡して、コンテンツの取り込みと処理方法を制御できます。
| 名前 | Description | タイプ | 編集可能 | 必須 |
|---|---|---|---|---|
identity |
生成されたインデクサーで使用する マネージド ID 。 | Object | イエス | いいえ |
disable_image_verbalization |
画像の言語化の使用を有効または無効にします。 既定値は False で、画像の言語化を 有効にします 。 画像の言語化をTrueにするには、に設定します。 |
ブール値 | いいえ | いいえ |
chat_completion_model |
画像を言語化したり、コンテンツを抽出したりするチャット完了モデル。 サポートされているモデルは、 gpt-4o、 gpt-4o-mini、 gpt-4.1、 gpt-4.1-mini、 gpt-4.1-nano、 gpt-5、 gpt-5-mini、および gpt-5-nanoです。
GenAI プロンプト スキルは、生成されたスキルセットに含まれます。 このパラメーターを設定するには、 disable_image_verbalization が False に設定されている必要もあります。 |
Object | 編集可能な api_key と deployment_name のみ |
いいえ |
embedding_model |
インデックス作成中およびクエリ時にテキストと画像の内容をベクター化するテキスト埋め込みモデル。 サポートされているモデルは、 text-embedding-ada-002、 text-embedding-3-small、および text-embedding-3-largeです。
Azure OpenAI Embedding スキルは生成されたスキルセットに含まれます。また、生成されたインデックスには Azure OpenAI ベクター化が含まれます。 |
Object | 編集可能な api_key と deployment_name のみ |
いいえ |
content_extraction_mode |
ファイルからコンテンツを抽出する方法を制御します。 既定値は minimal で、テキストと画像に標準のコンテンツ抽出を使用します。
standard スキルを使用した高度なドキュメント解析とチャンク処理を行うには に設定します。これは、生成されるスキルセットに含められます。
standardの場合のみ、ai_servicesおよびasset_storeパラメーターは指定できます。 |
糸 | いいえ | いいえ |
ai_services |
Foundry Tools で Azure Content Understanding にアクセスするための Microsoft Foundry リソース。 このパラメーターを設定するには、 content_extraction_mode が standard に設定されている必要があります。 |
Object | 編集可能な api_key のみ |
イエス |
asset_store |
抽出されたイメージを格納する BLOB コンテナー。 このパラメーターを設定するには、 content_extraction_mode が standard に設定されている必要があります。 |
Object | いいえ | いいえ |
ingestion_schedule |
生成されたインデクサーにスケジュール情報を追加します。 後で スケジュールを追加 して、データ更新を自動化することもできます。 | Object | イエス | いいえ |
ingestion_permission_options |
選択したナレッジ ソース ( ADLS Gen2 または インデックス付き SharePoint) から取り込むドキュメント レベルのアクセス許可。
user_ids、group_ids、またはrbac_scopeを指定すると、生成された ADLS Gen2 インデクサーまたは SharePoint インデクサーに取り込まれたアクセス許可が含まれます。 |
Array | いいえ | いいえ |
インジェストの状態を確認する
インデクサー パイプラインを生成し、検索インデックスを設定するナレッジ ソースのインデクサーの状態など、インジェストの進行状況と正常性を監視するには、次のコードを実行します。
# Check knowledge source ingestion status
import requests
import json
endpoint = "{search_url}/knowledgesources/{knowledge_source_name}/status"
params = {"api-version": "2025-11-01-preview"}
headers = {"api-key": "{api_key}"}
response = requests.get(endpoint, params = params, headers = headers)
print(json.dumps(response.json(), indent = 2))
インジェスト パラメーターを含み、コンテンツをアクティブに取り込む要求の応答は、次の例のようになります。
{
"synchronizationStatus": "active", // creating, active, deleting
"synchronizationInterval" : "1d", // null if no schedule
"currentSynchronizationState" : { // spans multiple indexer "runs"
"startTime": "2025-10-27T19:30:00Z",
"itemUpdatesProcessed": 1100,
"itemsUpdatesFailed": 100,
"itemsSkipped": 1100,
},
"lastSynchronizationState" : { // null on first sync
"startTime": "2025-10-27T19:30:00Z",
"endTime": "2025-10-27T19:40:01Z", // this value appears on the activity record on each /retrieve
"itemUpdatesProcessed": 1100,
"itemsUpdatesFailed": 100,
"itemsSkipped": 1100,
},
"statistics": { // null on first sync
"totalSynchronization": 25,
"averageSynchronizationDuration": "00:15:20",
"averageItemsProcessedPerSynchronization" : 500
}
}
作成されたオブジェクトを確認する
BLOB ナレッジ ソースを作成すると、検索サービスによってインデクサー、インデックス、スキルセット、データ ソースも作成されます。 エラーや非互換性が発生するとパイプラインが壊れる可能性があるので、これらのオブジェクトを編集することはお勧めしません。
ナレッジ ソースを作成すると、作成されたオブジェクトが応答に一覧表示されます。 これらのオブジェクトは固定テンプレートに従って作成され、その名前はナレッジ ソースの名前に基づいています。 オブジェクト名は変更できません。
Azure portal を使って出力の作成を検証することをお勧めします。 ワークフローは次のとおりです。
- インデクサーで成功または失敗のメッセージを確認します。 接続またはクォータのエラーがここに表示されます。
- 検索可能なコンテンツのインデックスを調べます。 検索エクスプローラーを使用してクエリを実行します。
- スキルセットを確認して、コンテンツがどのようにチャンクされ、必要に応じてベクター化されるかを確認します。
- 接続の詳細については、データ ソースを確認します。 この例では、わかりやすくするために API キーを使用していますが、認証には Microsoft Entra ID を使用し、承認にはロールベースのアクセス制御を使用できます。
ナレッジ ベースに割り当てる
ナレッジ ソースに問題がない場合は、次の手順に進 みます。ナレッジ ベースでナレッジ ソースを指定します。
ナレッジ ベースを構成したら、 取得アクション を使用してナレッジ ソースにクエリを実行します。
ナレッジ ソースを削除する
ナレッジ ソースを削除する前に、ナレッジ ソースを参照するすべてのナレッジ ベースを削除するか、ナレッジ ベース定義を更新して参照を削除する必要があります。 インデックスとインデクサー パイプラインを生成するナレッジ ソースの場合、 生成されたすべてのオブジェクト も削除されます。 ただし、既存のインデックスを使用してナレッジ ソースを作成した場合、インデックスは削除されません。
使用中のナレッジ ソースを削除しようとすると、アクションは失敗し、影響を受けるナレッジ ベースの一覧が返されます。
ナレッジ ソースを削除するには:
検索サービスのすべてのナレッジ ベースの一覧を取得します。
# Get knowledge bases import requests import json endpoint = "{search_url}/knowledgebases" params = {"api-version": "2025-11-01-preview", "$select": "name"} headers = {"api-key": "{api_key}"} response = requests.get(endpoint, params = params, headers = headers) print(json.dumps(response.json(), indent = 2))応答の例は次のようになります。
{ "@odata.context": "https://my-search-service.search.windows.net/$metadata#knowledgebases(name)", "value": [ { "name": "my-kb" }, { "name": "my-kb-2" } ] }個々のナレッジベース定義を取得して、ナレッジソースの参照を確認します。
# Get a knowledge base definition import requests import json endpoint = "{search_url}/knowledgebases/{knowledge_base_name}" params = {"api-version": "2025-11-01-preview"} headers = {"api-key": "{api_key}"} response = requests.get(endpoint, params = params, headers = headers) print(json.dumps(response.json(), indent = 2))応答の例は次のようになります。
{ "name": "my-kb", "description": null, "retrievalInstructions": null, "answerInstructions": null, "outputMode": null, "knowledgeSources": [ { "name": "my-blob-ks", } ], "models": [], "encryptionKey": null, "retrievalReasoningEffort": { "kind": "low" } }ナレッジ ベースを削除するか、ナレッジ ベースを更新 して、複数のソースがある場合はナレッジ ソースを削除します。 この例では、削除を示します。
# 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.")ナレッジ ソースを削除します。
# Delete a knowledge source 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_source("knowledge_source_name") print(f"Knowledge source deleted successfully.")
注
現在、この機能はパブリック プレビュー段階にあります。 このプレビュー版はサービス レベル アグリーメントなしで提供されています。運用環境のワークロードに使用することはお勧めできません。 特定の機能はサポート対象ではなく、機能が制限されることがあります。 詳細については、「 Microsoft Azure プレビューの追加使用条件」を参照してください。
BLOB ナレッジ ソースを使用して、エージェント検索パイプラインで Azure BLOB コンテンツのインデックス作成とクエリを実行します。 ナレッジ ソース は個別に作成され、 ナレッジ ベースで参照され、エージェントまたはチャットボットがクエリ時に 取得アクション を呼び出すときに、グラウンド データとして使用されます。
既存のインデックスと修飾インデックスを指定する 検索インデックスナレッジ ソースとは異なり、BLOB ナレッジ ソースでは、外部データ ソース、モデル、およびプロパティを指定して、次の Azure AI Search オブジェクトを自動的に生成します。
- BLOB コンテナーを表すデータ ソース。
- コンテナーからマルチモーダル コンテンツをチャンクし、必要に応じてベクター化するスキルセット。
- エンリッチされたコンテンツを格納し、エージェント検索の条件を満たすインデックス。
- 前のオブジェクトを使用してインデックス作成およびエンリッチメント パイプラインを駆動するインデクサー。
注
Azure Storage のドキュメント (BLOB) レベルでユーザー アクセスが指定されている場合、ナレッジ ソースはアクセス許可メタデータを Azure AI Search のインデックス付きコンテンツに転送できます。 詳細については、 ADLS Gen2 アクセス許可メタデータ または BLOB RBAC スコープに関するページを参照してください。
[前提条件]
Azure AI Search はエージェント型情報検索を提供する任意のリージョンで利用可能です。 セマンティック ランカーを有効にする必要があります。
Azure Blob Storage または Azure Data Lake Storage (ADLS) Gen2 アカウント。
テキスト コンテンツでサポートされているコンテンツ タイプ を含む BLOB コンテナー。 オプションの画像言語化の場合、サポートされるコンテンツ タイプは、チャット完了モデルで画像ファイルを分析および記述できるかどうかによって異なります。
Search Service REST API の 2025-11-01-preview バージョン。
Azure AI Search でオブジェクトを作成して使用するためのアクセス許可。 ロールベースのアクセスをお勧めしますが、ロールの割り当てが不可能な場合は API キーを使用できます。 詳細については、「 検索サービスへの接続」を参照してください。
既存のナレッジ ソースを確認する
ナレッジ ソースは、最上位の再利用可能なオブジェクトです。 既存のナレッジ ソースについて知ることは、新しいオブジェクトを再利用または名前付けする場合に役立ちます。
ナレッジ ソース - Get (REST API) を使用して、名前と種類でナレッジ ソースを一覧表示します。
### List knowledge sources by name and type
GET {{search-url}}/knowledgesources?api-version=2025-11-01-preview&$select=name,kind
api-key: {{api-key}}
名前で 1 つのナレッジ ソースを取得し、その JSON 定義を確認することもできます。
### Get a knowledge source definition
GET {{search-url}}/knowledgesources/{{knowledge-source-name}}?api-version=2025-11-01-preview
api-key: {{api-key}}
次の JSON は、BLOB ナレッジ ソースに対する応答の例です。
{
"name": "my-blob-ks",
"kind": "azureBlob",
"description": "A sample blob knowledge source.",
"encryptionKey": null,
"azureBlobParameters": {
"connectionString": "<REDACTED>",
"containerName": "blobcontainer",
"folderPath": null,
"isADLSGen2": false,
"ingestionParameters": {
"disableImageVerbalization": false,
"ingestionPermissionOptions": [],
"contentExtractionMode": "standard",
"identity": null,
"embeddingModel": {
"kind": "azureOpenAI",
"azureOpenAIParameters": {
"resourceUri": "<REDACTED>",
"deploymentId": "text-embedding-3-large",
"apiKey": "<REDACTED>",
"modelName": "text-embedding-3-large",
"authIdentity": null
}
},
"chatCompletionModel": {
"kind": "azureOpenAI",
"azureOpenAIParameters": {
"resourceUri": "<REDACTED>",
"deploymentId": "gpt-5-mini",
"apiKey": "<REDACTED>",
"modelName": "gpt-5-mini",
"authIdentity": null
}
},
"ingestionSchedule": null,
"assetStore": null,
"aiServices": {
"uri": "<REDACTED>",
"apiKey": "<REDACTED>"
}
},
"createdResources": {
"datasource": "my-blob-ks-datasource",
"indexer": "my-blob-ks-indexer",
"skillset": "my-blob-ks-skillset",
"index": "my-blob-ks-index"
}
}
}
注
機密情報はリダクトされます。 生成されたリソースは、応答の最後で示されます。
ナレッジ ソースを作成する
ナレッジ ソース - 作成または更新 (REST API) を使用して BLOB ナレッジ ソースを作成します。
PUT {{search-url}}/knowledgesources/my-blob-ks?api-version=2025-11-01-preview
api-key: {{api-key}}
Content-Type: application/json
{
"name": "my-blob-ks",
"kind": "azureBlob",
"description": "This knowledge source pulls from a blob storage container.",
"encryptionKey": null,
"azureBlobParameters": {
"connectionString": "<YOUR AZURE STORAGE CONNECTION STRING>",
"containerName": "<YOUR BLOB CONTAINER NAME>",
"folderPath": null,
"isADLSGen2": false,
"ingestionParameters": {
"identity": null,
"disableImageVerbalization": null,
"chatCompletionModel": { TRIMMED FOR BREVITY },
"embeddingModel": { TRIMMED FOR BREVITY },
"contentExtractionMode": "minimal",
"ingestionSchedule": null,
"ingestionPermissionOptions": []
}
}
}
ソース固有のプロパティ
次のプロパティを渡して、BLOB ナレッジ ソースを作成できます。
| 名前 | Description | タイプ | 編集可能 | 必須 |
|---|---|---|---|---|
name |
ナレッジ ソースの名前。ナレッジ ソース コレクション内で一意である必要があり、Azure AI Search のオブジェクトの 名前付けガイドライン に従う必要があります。 | 糸 | いいえ | イエス |
kind |
ナレッジ ソースの種類 (この場合は azureBlob)。 |
糸 | いいえ | イエス |
description |
ナレッジ ソースの説明。 | 糸 | イエス | いいえ |
encryptionKey |
ナレッジ ソースと生成されたオブジェクトの両方の機密情報を暗号化するための カスタマー マネージド キー 。 | Object | イエス | いいえ |
azureBlobParameters |
ブロブ ナレッジ ソースに固有のパラメーター: connectionString, containerName, folderPath, isADLSGen2。 |
Object | いいえ | |
connectionString |
キーベースの 接続文字列 、またはマネージド ID を使用している場合はリソース ID。 | 糸 | いいえ | イエス |
containerName |
BLOB ストレージ コンテナーの名前。 | 糸 | いいえ | イエス |
folderPath |
コンテナー内のフォルダー。 | 糸 | いいえ | いいえ |
isADLSGen2 |
既定値は falseです。 ADLS Gen2 ストレージ アカウントを使用している場合は、 true に設定します。 |
ブール値 | いいえ | いいえ |
ingestionParameters のプロパティ
インデックス付きナレッジ ソースの場合のみ、次の ingestionParameters プロパティを渡して、コンテンツの取り込みと処理方法を制御できます。
| 名前 | Description | タイプ | 編集可能 | 必須 |
|---|---|---|---|---|
identity |
生成されたインデクサーで使用する マネージド ID 。 | Object | イエス | いいえ |
disableImageVerbalization |
画像の言語化の使用を有効または無効にします。 既定値は false で、画像の言語化を 有効にします 。 画像の言語化をtrueにするには、に設定します。 |
ブール値 | いいえ | いいえ |
chatCompletionModel |
画像を言語化したり、コンテンツを抽出したりするチャット完了モデル。 サポートされているモデルは、 gpt-4o、 gpt-4o-mini、 gpt-4.1、 gpt-4.1-mini、 gpt-4.1-nano、 gpt-5、 gpt-5-mini、および gpt-5-nanoです。
GenAI プロンプト スキルは、生成されたスキルセットに含まれます。 このパラメーターを設定するには、 disableImageVerbalization が false に設定されている必要もあります。 |
Object | 編集可能な apiKey と deploymentId のみ |
いいえ |
embeddingModel |
インデックス作成中およびクエリ時にテキストと画像の内容をベクター化するテキスト埋め込みモデル。 サポートされているモデルは、 text-embedding-ada-002、 text-embedding-3-small、および text-embedding-3-largeです。
Azure OpenAI Embedding スキルは生成されたスキルセットに含まれます。また、生成されたインデックスには Azure OpenAI ベクター化が含まれます。 |
Object | 編集可能な apiKey と deploymentId のみ |
いいえ |
contentExtractionMode |
ファイルからコンテンツを抽出する方法を制御します。 既定値は minimal で、テキストと画像に標準のコンテンツ抽出を使用します。
standard スキルを使用した高度なドキュメント解析とチャンク処理を行うには に設定します。これは、生成されるスキルセットに含められます。
standardの場合のみ、aiServicesおよびassetStoreパラメーターは指定できます。 |
糸 | いいえ | いいえ |
aiServices |
Foundry Tools で Azure Content Understanding にアクセスするための Microsoft Foundry リソース。 このパラメーターを設定するには、 contentExtractionMode が standard に設定されている必要があります。 |
Object | 編集可能な apiKey のみ |
イエス |
assetStore |
抽出されたイメージを格納する BLOB コンテナー。 このパラメーターを設定するには、 contentExtractionMode が standard に設定されている必要があります。 |
Object | いいえ | いいえ |
ingestionSchedule |
生成されたインデクサーにスケジュール情報を追加します。 後で スケジュールを追加 して、データ更新を自動化することもできます。 | Object | イエス | いいえ |
ingestionPermissionOptions |
選択したナレッジ ソース ( ADLS Gen2 または インデックス付き SharePoint) から取り込むドキュメント レベルのアクセス許可。
userIds、groupIds、またはrbacScopeを指定すると、生成された ADLS Gen2 インデクサーまたは SharePoint インデクサーに取り込まれたアクセス許可が含まれます。 |
Array | いいえ | いいえ |
インジェストの状態を確認する
インデクサー パイプラインを生成し、検索インデックスを設定するナレッジ ソースのインデクサーの状態など、インジェストの進行状況と正常性を監視するには、 ナレッジ ソース - 状態 (REST API) を使用します。
### Check knowledge source ingestion status
GET {{search-url}}/knowledgesources/{{knowledge-source-name}}/status?api-version=2025-11-01-preview
api-key: {{api-key}}
Content-Type: application/json
インジェスト パラメーターを含み、コンテンツをアクティブに取り込む要求の応答は、次の例のようになります。
{
"synchronizationStatus": "active", // creating, active, deleting
"synchronizationInterval" : "1d", // null if no schedule
"currentSynchronizationState" : { // spans multiple indexer "runs"
"startTime": "2025-10-27T19:30:00Z",
"itemUpdatesProcessed": 1100,
"itemsUpdatesFailed": 100,
"itemsSkipped": 1100,
},
"lastSynchronizationState" : { // null on first sync
"startTime": "2025-10-27T19:30:00Z",
"endTime": "2025-10-27T19:40:01Z", // this value appears on the activity record on each /retrieve
"itemUpdatesProcessed": 1100,
"itemsUpdatesFailed": 100,
"itemsSkipped": 1100,
},
"statistics": { // null on first sync
"totalSynchronization": 25,
"averageSynchronizationDuration": "00:15:20",
"averageItemsProcessedPerSynchronization" : 500
}
}
作成されたオブジェクトを確認する
BLOB ナレッジ ソースを作成すると、検索サービスによってインデクサー、インデックス、スキルセット、データ ソースも作成されます。 エラーや非互換性が発生するとパイプラインが壊れる可能性があるので、これらのオブジェクトを編集することはお勧めしません。
ナレッジ ソースを作成すると、作成されたオブジェクトが応答に一覧表示されます。 これらのオブジェクトは固定テンプレートに従って作成され、その名前はナレッジ ソースの名前に基づいています。 オブジェクト名は変更できません。
Azure portal を使って出力の作成を検証することをお勧めします。 ワークフローは次のとおりです。
- インデクサーで成功または失敗のメッセージを確認します。 接続またはクォータのエラーがここに表示されます。
- 検索可能なコンテンツのインデックスを調べます。 検索エクスプローラーを使用してクエリを実行します。
- スキルセットを確認して、コンテンツがどのようにチャンクされ、必要に応じてベクター化されるかを確認します。
- 接続の詳細については、データ ソースを確認します。 この例では、わかりやすくするために API キーを使用していますが、認証には Microsoft Entra ID を使用し、承認にはロールベースのアクセス制御を使用できます。
ナレッジ ベースに割り当てる
ナレッジ ソースに問題がない場合は、次の手順に進 みます。ナレッジ ベースでナレッジ ソースを指定します。
ナレッジ ベースを構成したら、 取得アクション を使用してナレッジ ソースにクエリを実行します。
ナレッジ ソースを削除する
ナレッジ ソースを削除する前に、ナレッジ ソースを参照するすべてのナレッジ ベースを削除するか、ナレッジ ベース定義を更新して参照を削除する必要があります。 インデックスとインデクサー パイプラインを生成するナレッジ ソースの場合、 生成されたすべてのオブジェクト も削除されます。 ただし、既存のインデックスを使用してナレッジ ソースを作成した場合、インデックスは削除されません。
使用中のナレッジ ソースを削除しようとすると、アクションは失敗し、影響を受けるナレッジ ベースの一覧が返されます。
ナレッジ ソースを削除するには:
検索サービスのすべてのナレッジ ベースの一覧を取得します。
### Get knowledge bases GET {{search-endpoint}}/knowledgebases?api-version=2025-11-01-preview&$select=name api-key: {{api-key}}応答の例は次のようになります。
{ "@odata.context": "https://my-search-service.search.windows.net/$metadata#knowledgebases(name)", "value": [ { "name": "my-kb" }, { "name": "my-kb-2" } ] }個々のナレッジベース定義を取得して、ナレッジソースの参照を確認します。
### Get a knowledge base definition GET {{search-endpoint}}/knowledgebases/{{knowledge-base-name}}?api-version=2025-11-01-preview api-key: {{api-key}}応答の例は次のようになります。
{ "name": "my-kb", "description": null, "retrievalInstructions": null, "answerInstructions": null, "outputMode": null, "knowledgeSources": [ { "name": "my-blob-ks", } ], "models": [], "encryptionKey": null, "retrievalReasoningEffort": { "kind": "low" } }ナレッジ ベースを削除するか、複数のソースがある場合はナレッジ ソースを削除してナレッジ ベースを更新 します。 この例では、削除を示します。
### Delete a knowledge base DELETE {{search-endpoint}}/knowledgebases/{{knowledge-base-name}}?api-version=2025-11-01-preview api-key: {{api-key}}ナレッジ ソースを削除します。
### Delete a knowledge source DELETE {{search-endpoint}}/knowledgesources/{{knowledge-source-name}}?api-version=2025-11-01-preview api-key: {{api-key}}