メモ
Azure AI 検索は、Azure ポータル、REST API、およびAzure SDKから使用できます。 また、Foundry IQ は、エンタープライズ コンテンツを、Microsoft Foundry ポータルのエージェントの再利用可能なアクセス許可に対応したナレッジ ベースに変換するマネージド ナレッジ レイヤーです。
メモ
このエージェント検索機能は、プログラムによるアクセスを介して 2026-04-01 REST API で一般提供されています。 Azure ポータルと foundry ポータルMicrosoftは、引き続きすべてのエージェント検索機能へのプレビュー専用アクセスを提供します。 移行のガイダンスについては、「 エージェントの取得コードを最新バージョンに移行する」を参照してください。
プレビュー REST API を使用する場合は、この機能ではまだ一般公開されていない機能にアクセスできます。 プレビュー機能は、サービス レベル アグリーメントなしで提供され、運用環境のワークロードには推奨されません。 詳細については、「 Microsoft Azure プレビューの追加使用条件」を参照してください。
Important
これらの機能は、2026-08-01-preview REST API の一部です。 2026-08-01-preview は、Azure サブスクリプションの一部としてユーザーにライセンス付与され、Microsoft製品使用条件、Microsoft製品およびサービス データ保護補遺 ("DPA")、および Microsoft Azure プレビューの追加使用条件に適用される条件に従います。
2026-08-01-preview では、他のMicrosoft サービスやサード パーティのサービスへの接続がサポートされています。 これらのサービスの利用は各サービスの利用規約に従うものとし、データが Azure コンプライアンス境界の外部で処理または保存されたり、Azure コンプライアンス境界内に流入したりする場合があります。
2026-08-01-preview では、2026-08-01-preview 以外で設定されたアクセス許可を変更することはできません。 アクセスが制限されたコンテンツまたはアクセス許可が制限されたコンテンツで 2026-08-01-preview を使用する場合、2026-08-01-preview がそれらのアクセスまたはアクセス許可の制限の変更を認識する前にタイミング ラグが発生します。
データが組織のコンプライアンスと地理的境界の外部に流れるかどうか、および関連する影響、および適切なアクセス許可、境界、承認がプロビジョニングされるかどうかを管理するのは、お客様の責任です。
特定のユース ケースのコンテキストで構築したアプリケーションを慎重に確認およびテストし、すべての適切な決定とカスタマイズを行う責任があります。 これには、メタプロンプト、コンテンツ フィルター、その他の安全システムなどの独自の責任ある AI 軽減策の実装や、アプリケーションが適切な品質、信頼性、セキュリティ、信頼性の標準を満たしていることを確認する機能が含まれます。 詳細については、「Azure AI 検索透過性に関するメモを参照してください。
blob ナレッジ ソースは、Azure Blob Storageまたは ADLS Gen2 コンテンツをAzure AI 検索のエージェント検索パイプラインに取り込みます。 ナレッジ ソース は個別に作成され、 ナレッジ ベースで参照され、実行時にナレッジ ベースの クエリが実行されるときに、グラウンド データとして使用されます。
BLOB ナレッジ ソースを作成するときは、外部データ ソース、モデル、およびプロパティを指定して、次のAzure AI 検索 オブジェクトを自動的に生成します。
- BLOB コンテナーを表すデータ ソース。
- コンテナーからマルチモーダル コンテンツをチャンクし、必要に応じてベクター化するスキルセット。
- エンリッチされたコンテンツを格納し、エージェント検索の条件を満たすインデックス。
- 前のオブジェクトを使用してインデックス作成およびエンリッチメント パイプラインを駆動するインデクサー。
生成されたインデクサーは BLOB インデクサーに準拠しており、その前提条件、サポートされているドキュメント形式、および制限事項は BLOB ナレッジ ソースにも適用されます。 詳細については、 BLOB インデクサーのドキュメント と インデクサーの制限を参照してください。 生成されたスキルセットが外部サービスを呼び出す場合、そのスキルの入力とサービスの制限も適用されます。
メモ
Azure Storageのドキュメント (BLOB) レベルでユーザー アクセスが指定されている場合、ナレッジ ソースはアクセス許可メタデータをAzure AI 検索のインデックス付きコンテンツに転送できます。 詳細については、 ADLS Gen2 アクセス許可メタデータ または BLOB RBAC スコープに関するページを参照してください。
利用サポート
| Azure Portal | Microsoft Foundry ポータル | .NET SDK | Python SDK | Java SDK | JavaScript SDK | REST API |
|---|---|---|---|---|---|---|
| ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
前提 条件
エージェント検索を提供する任意のリージョンの Azure AI 検索 サービス。
Azure Blob Storage または Azure Data Lake Storage (ADLS) Gen2 アカウント。
テキスト コンテンツでサポートされているコンテンツ タイプ を含む BLOB コンテナー。 オプションの画像言語化の場合、サポートされるコンテンツ タイプは、チャット完了モデルで画像ファイルを分析および記述できるかどうかによって異なります。
contentExtractionModeがstandardの場合は、Foundry Tools の Content Understanding でサポートされているリージョン内の Microsoft Foundry リソースを、https://<resource-name>.services.ai.azure.comエンドポイントを使用して使用します。 リソースには埋め込みモデルのデプロイが必要です。また、イメージの言語化を有効にした場合は、マルチモーダル チャット モデルのデプロイが必要です。ナレッジソースを作成する権限。 ユーザー アカウントに割り当てられた Search Service 共同作成者ロールと検索インデックス データ共同作成者ロール (推奨) を使用してキーレス認証を構成するか、管理者 API キーを使用します。
ソース ストレージ アカウントのスコープでストレージ BLOB データ閲覧者ロールが付与され、Microsoft Foundry リソースで Cognitive Services ユーザー ロールが付与された、検索サービス用のマネージド ID。 別のストレージ アカウントで資産ストアを構成する場合は、そのストレージ アカウント スコープで ストレージ BLOB データ共同作成者 も割り当てます。 ソース コンテナーと資産コンテナーがアカウントを共有している場合、 ストレージ BLOB データ共同作成者 は、ソース読み取りアクセスと資産ストアの読み取り/書き込みアクセスの両方を提供します。
networkAccessModeをprivateに設定した場合は、次の要件を満たします。S2、S3、L1、または L2 検索サービスを使用します。
検索サービスでシステム割り当てマネージド ID またはユーザー割り当てマネージド ID を有効にし、ストレージ アカウントでストレージ BLOB データ閲覧者ロールを付与し、
ResourceId=/subscriptions/<subscription-id>/resourceGroups/<resource-group>/providers/Microsoft.Storage/storageAccounts/<storage-account>接続文字列を使用します。 ユーザー割り当て ID の場合は、ingestionParameters.identityも設定します。blobグループ ID を使用して、ストレージ アカウントへの共有プライベート リンクを作成して承認します。 ADLS Gen2 の場合は、blobとdfsの両方の共有プライベート リンクを作成して承認します。保護された各モデル エンドポイントの共有プライベート リンクを作成して承認します。 Azure OpenAI エンドポイントには
openai_accountグループ ID を使用し、Foundry リソース エンドポイントにはfoundry_accountを使用します。
必須
Azure.Search.Documentsパッケージ:2026-08-01-preview機能の場合、最新のプレビュー パッケージ:dotnet add package Azure.Search.Documents --prerelease2026-04-01機能の場合、最新の安定したパッケージ:dotnet add package Azure.Search.Documents
キーレス認証の場合、
Azure.Identityパッケージは次のようになります。dotnet add package Azure.Identity
必須
azure-search-documentsパッケージ:2026-08-01-preview機能の場合、最新のプレビュー パッケージ:pip install --pre azure-search-documents2026-04-01機能の場合、最新の安定したパッケージ:pip install azure-search-documents
キーレス認証の場合、
azure-identityパッケージは次のようになります。pip install azure-identity
必要な Search Service REST API のバージョン:
プレビュー機能の場合: 2026-08-01-preview
一般公開されている機能の場合: 2026-04-01
キーレス認証の場合は、各 HTTP 要求の
AuthorizationヘッダーにMicrosoft Entra ID トークンを含めます。
既存のナレッジ ソースを確認する
ナレッジ ソースは、最上位の再利用可能なオブジェクトです。 既存のナレッジ ソースについて知ることは、新しいオブジェクトを再利用または名前付けする場合に役立ちます。
次のコードを実行して、名前と種類でナレッジ ソースを一覧表示します。
// 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}");
}
Reference:SearchIndexClient
# List knowledge sources by name and type
from azure.core.credentials import AzureKeyCredential
from azure.search.documents.indexes import SearchIndexClient
index_client = SearchIndexClient(endpoint = "search_url", credential = AzureKeyCredential("api_key"))
for ks in index_client.list_knowledge_sources():
print(f" - {ks.name} ({ks.kind})")
Reference:SearchIndexClient
### List knowledge sources by name and type
GET {{search-url}}/knowledgesources?api-version={{api-version}}&$select=name,kind
Authorization: Bearer {{token}}
リファレンス:ナレッジ ソース - リスト
名前で 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));
Reference:SearchIndexClient
# Get a knowledge source 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"))
ks = index_client.get_knowledge_source("knowledge_source_name")
print(json.dumps(ks.as_dict(), indent = 2))
Reference:SearchIndexClient
### Get a knowledge source definition
GET {{search-url}}/knowledgesources/{{knowledge-source-name}}?api-version={{api-version}}
Authorization: Bearer {{token}}
リファレンス:ナレッジ ソース - 取得
次の 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",
"modelName": "text-embedding-3-large",
"authIdentity": null
}
},
"chatCompletionModel": {
"kind": "azureOpenAI",
"azureOpenAIParameters": {
"resourceUri": "<aoai-endpoint>",
"deploymentId": "gpt-5-mini",
"modelName": "gpt-5-mini",
"authIdentity": null
}
},
"ingestionSchedule": null,
"assetStore": null,
"aiServices": {
"uri": "<aoai-endpoint>",
}
},
"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.Search.Documents.Models;
using Azure.Identity;
var indexClient = new SearchIndexClient(new Uri(searchEndpoint), new DefaultAzureCredential());
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
{
NetworkAccessMode = KnowledgeSourceNetworkAccessMode.Public,
DisableImageVerbalization = false,
ChatCompletionModel = new KnowledgeBaseAzureOpenAIModel(azureOpenAIParameters: chatCompletionParams),
EmbeddingModel = new KnowledgeSourceAzureOpenAIVectorizer
{
AzureOpenAIParameters = embeddingParams
},
IngestionPermissionOptions = new List<KnowledgeSourceIngestionPermissionOption>
{
KnowledgeSourceIngestionPermissionOption.UserIds,
KnowledgeSourceIngestionPermissionOption.GroupIds
}
};
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.");
# Create a blob knowledge source
from azure.identity import DefaultAzureCredential
from azure.search.documents.indexes import SearchIndexClient
from azure.search.documents.indexes.models import AzureBlobKnowledgeSource, AzureBlobKnowledgeSourceParameters, KnowledgeBaseAzureOpenAIModel, AzureOpenAIVectorizerParameters, KnowledgeSourceAzureOpenAIVectorizer, KnowledgeSourceContentExtractionMode, KnowledgeSourceIngestionParameters
from azure.search.documents.knowledgebases.models import KnowledgeSourceNetworkAccessMode
index_client = SearchIndexClient(endpoint = "<search-endpoint>", credential = DefaultAzureCredential())
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(
network_access_mode = KnowledgeSourceNetworkAccessMode.PUBLIC,
identity = None,
disable_image_verbalization = False,
chat_completion_model = KnowledgeBaseAzureOpenAIModel(
azure_open_ai_parameters = AzureOpenAIVectorizerParameters(
resource_url = "<aoai-endpoint>",
deployment_name = "<aoai-gpt-deployment>",
model_name = "<aoai-gpt-model>",
)
),
embedding_model = KnowledgeSourceAzureOpenAIVectorizer(
azure_open_ai_parameters=AzureOpenAIVectorizerParameters(
resource_url = "<aoai-endpoint>",
deployment_name = "<aoai-embedding-deployment>",
model_name = "<aoai-embedding-model>",
)
),
content_extraction_mode = KnowledgeSourceContentExtractionMode.MINIMAL,
ingestion_schedule = None,
ingestion_permission_options = ["user_ids", "group_ids"]
)
)
)
index_client.create_or_update_knowledge_source(knowledge_source)
print(f"Knowledge source '{knowledge_source.name}' created or updated successfully.")
Reference:SearchIndexClient
### Create a blob knowledge source
PUT {{search-endpoint}}/knowledgesources/my-blob-ks?api-version=2026-08-01-preview
Authorization: Bearer {{search-access-token}}
Content-Type: application/json
{
"name": "my-blob-ks",
"kind": "azureBlob",
"description": "This knowledge source pulls from a blob storage container.",
"encryptionKey": null,
"azureBlobParameters": {
"connectionString": "ResourceId=<storage-resource-id>",
"containerName": "<blob-container-name>",
"folderPath": null,
"isADLSGen2": false,
"ingestionParameters": {
"networkAccessMode": "public",
"identity": null,
"disableImageVerbalization": null,
"chatCompletionModel": {
"kind": "azureOpenAI",
"azureOpenAIParameters": {
"resourceUri": "{{aoai-endpoint}}",
"deploymentId": "{{aoai-gpt-deployment}}",
"modelName": "{{aoai-gpt-model}}"
}
},
"embeddingModel": {
"kind": "azureOpenAI",
"azureOpenAIParameters": {
"resourceUri": "{{aoai-endpoint}}",
"deploymentId": "{{aoai-embedding-deployment}}",
"modelName": "{{aoai-embedding-model}}"
}
},
"contentExtractionMode": "minimal",
"ingestionSchedule": null,
"ingestionPermissionOptions": ["userIds", "groupIds"]
}
}
}
リファレンス:ナレッジ ソース - 作成または更新
メモ
ingestionPermissionOptionsでドキュメント レベルのアクセス許可を適用するには、2026-08-01-preview API バージョンを使用します。 2026-04-01 API バージョンでは、この機能はサポートされていません。
インジェストをプライベート ネットワークに制限する (プレビュー)
2026-08-01-preview API バージョン以降、networkAccessModeは、BLOB ナレッジ ソース用に生成されたインデクサーが実行されるネットワーク環境を制御します。 この設定はインジェストにのみ影響し、ナレッジ ベースの取得要求または応答は変更されません。
networkAccessMode は既定で public に設定され、既存のパブリック ネットワーク動作が保持されます。
networkAccessModeがprivateされると、生成されたインデクサーはプライベート実行環境で実行されます。 承認された共有プライベート リンクを使用して、Azure Blob Storageまたは ADLS Gen2 ソース接続にアクセスし、サポートされているAzure依存関係 (Azure OpenAI モデルや foundry リソースMicrosoftなど) にアクセスします。
プライベート ネットワーク アクセスを構成して確認するには:
ナレッジ ソースの作成要求で
privateにnetworkAccessModeを設定します。 このプロパティは、作成時にのみ設定できます。 後で変更するには、ナレッジ ソースを削除して再作成します。サービス レベルまたはランタイムがプライベート実行をサポートしていない場合、または必要な共有プライベート リンクが存在しない場合、作成が失敗する可能性があります。
生成されたインデクサーの
executionEnvironmentがprivateされていることを確認します。必要な各共有プライベート リンクが承認され、適切な依存関係をターゲットにしていることを確認します。 作成が成功しても、リンクの承認やターゲット設定は確認されません。
lastSynchronizationState.endTimeに値が設定されるまで、ナレッジ ソースの状態をポーリングします。itemsUpdatesFailedが0されていることを確認し、コネクタ固有のソース コンテンツを確認します。 依存関係に到達できない場合、同期は失敗します。
インジェストの状態を確認する
インデクサー パイプラインを生成して検索インデックスを作成するナレッジ ソースにおいて、ナレッジ ソースの種類や詳細なインデックス作成エラーを含む、インジェストの進捗と健全性を監視するために、次のコードを実行します。
using Azure.Search.Documents.Indexes;
using System.Text.Json;
var indexClient = new SearchIndexClient(new Uri(searchEndpoint), new AzureKeyCredential(apiKey));
// Get knowledge source ingestion 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);
Reference:SearchIndexClient
# Check knowledge source ingestion status
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"))
status = index_client.get_knowledge_source_status("knowledge_source_name")
print(json.dumps(status.as_dict(), indent=2))
Reference:SearchIndexClient
### Check knowledge source ingestion status
GET {{search-url}}/knowledgesources/{{knowledge-source-name}}/status?api-version={{api-version}}
Authorization: Bearer {{token}}
Content-Type: application/json
リファレンス:ナレッジ ソース - 状態の取得
インジェスト パラメーターを含み、コンテンツをアクティブに取り込む要求の応答は、次の例のようになります。
{
"kind": "azureBlob",
"synchronizationStatus": "active",
"synchronizationInterval": "1d",
"currentSynchronizationState": {
"startTime": "2026-04-10T19:30:00Z",
"itemUpdatesProcessed": 1100,
"itemsUpdatesFailed": 100,
"itemsSkipped": 1100,
"errors": [
{
"key": "Item id 1",
"docURL": "https://contoso.blob.core.windows.net/contracts/2024/Q4/doc-00023.csv",
"statusCode": 400,
"componentName": "DocumentExtraction.AzureBlob.MyDataSource",
"errorMessage": "Could not read the value of column 'foo' at index '0'.",
"details": "The file could not be parsed.",
"documentationLink": "https://go.microsoft.com/fwlink/?linkid=2049388"
}
]
},
"lastSynchronizationState": {
"status": "partialSuccess",
"startTime": "2026-04-09T19:30:00Z",
"endTime": "2026-04-09T19:40:01Z",
"itemUpdatesProcessed": 1100,
"itemsUpdatesFailed": 100,
"itemsSkipped": 1100,
"errors": null
},
"statistics": {
"totalSynchronizations": 25,
"averageSynchronizationDuration": "00:15:20",
"averageItemsProcessedPerSynchronization": 500
}
}
メモ
ドキュメント レベルのエラーの詳細を含む kind プロパティと currentSynchronizationState.errors[] 配列は、2026-04-01 API バージョン以降で使用できます。 以前のバージョンの API では、これらのフィールドは返されません。
lastSynchronizationState.status フィールドは、2026-04-01 でも新しく追加されています。
生成されたオブジェクトを確認する
このナレッジ ソースを作成すると、Azure AI 検索はデータ ソース、スキルセット、インデクサー、およびインデックスを自動的に生成します。 作成応答では、 createdResourcesの下の各オブジェクトが一覧表示されます。
これらのオブジェクトは固定テンプレートに従って生成され、その名前はナレッジ ソースの名前に基づいています。 オブジェクト名は変更できません。 変更によってインデクサー パイプラインを中断するエラーや非互換性が発生する可能性があるので、これらのオブジェクトを直接編集することは避けてください。
Azure ポータルを使用して、オブジェクトの作成を検証できます。 ワークフローは次のとおりです。
インデクサーで成功または失敗のメッセージを確認します。 接続エラーまたはクォータ エラーがここに表示されます。
データ ソースを調べて、データ ストアへの接続を確認します。 接続では、ナレッジ ソースの構成方法に応じて、接続文字列またはマネージド ID が使用されます。
スキルセットを調べて、コンテンツがどのようにチャンクされ、必要に応じてベクター化されているかを確認します。
検索可能なフィールドやフィルター可能なフィールド、類似性検索用のベクターを格納するフィールドなど、コンテンツのインデックス付けと取得用の公開方法を確認するには、インデックスを確認します。 Search Explorer を使用して、生成されたインデックスに対してクエリを実行します。
ナレッジ ベースに割り当てる
ナレッジ ソースに満足している場合は、 ナレッジ ベースに追加します。
ナレッジ ベースのクエリを実行する
ナレッジ ベースを構成したら、 取得アクションまたは MCP エンドポイントを呼び出 してナレッジ ソースにクエリを実行します。 シナリオに一致する構成を選択します。
ドキュメント レベルのアクセス許可を適用する (プレビュー)
ドキュメント レベルのアクセス許可を適用するには、このナレッジ ソースを作成するときに ingestionPermissionOptions を設定し、取得要求にユーザーのアクセス トークンを含めます。 詳細については、「 クエリ時にアクセス許可を適用する (プレビュー)」を参照してください。
ドキュメントに埋め込まれた画像を表示する (プレビュー)
回答合成応答でドキュメント埋め込み画像 (図やスキャンなど) を表示するには、このナレッジ ソースで assetStore を構成し、ナレッジ ベースで画像の提供を有効にします。
ingestionPermissionOptionsが構成されている場合、イメージ サービスはサポートされません。 詳細については、「エージェント型検索でドキュメントに埋め込まれた画像を表示する (プレビュー)」を参照してください。
ナレッジ ソースを削除する
ナレッジ ソースを削除する前に、ナレッジ ソースを参照するすべてのナレッジ ベースを削除するか、ナレッジ ベース定義を更新して参照を削除する必要があります。 インデックスとインデクサー パイプラインを生成するナレッジ ソースの場合、 生成されたすべてのオブジェクト も削除されます。 ただし、既存のインデックスを使用してナレッジ ソースを作成した場合、インデックスは削除されません。
使用中のナレッジ ソースを削除しようとすると、アクションは失敗し、影響を受けるナレッジ ベースの一覧が返されます。
ナレッジ ソースを削除するには:
検索サービスのすべてのナレッジ ベースの一覧を取得します。
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
応答の例は次のようになります。
{ "@odata.context": "https://my-search-service.search.windows.net/$metadata#knowledgebases(name)", "value": [ { "name": "my-kb" }, { "name": "my-kb-2" } ] }個別のナレッジベース定義を取得して、ナレッジソースの参照を確認する。
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
応答の例は次のようになります。
{ "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.");Reference:SearchIndexClient
ナレッジ ソースを削除します。
await indexClient.DeleteKnowledgeSourceAsync(knowledgeSourceName); System.Console.WriteLine($"Knowledge source '{knowledgeSourceName}' deleted successfully.");Reference:SearchIndexClient
検索サービスのすべてのナレッジ ベースの一覧を取得します。
# Get knowledge bases from azure.core.credentials import AzureKeyCredential from azure.search.documents.indexes import SearchIndexClient index_client = SearchIndexClient(endpoint = "search_url", credential = AzureKeyCredential("api_key")) print("Knowledge Bases:") for kb in index_client.list_knowledge_bases(): print(f" - {kb.name}")Reference:SearchIndexClient
応答の例は次のようになります。
{ "@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 from azure.core.credentials import AzureKeyCredential from azure.search.documents.indexes import SearchIndexClient index_client = SearchIndexClient(endpoint = "search_url", credential = AzureKeyCredential("api_key")) kb = index_client.get_knowledge_base("knowledge_base_name") print(kb)Reference:SearchIndexClient
応答の例は次のようになります。
{ "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.")Reference:SearchIndexClient
ナレッジ ソースを削除します。
# 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.")Reference:SearchIndexClient
検索サービスのすべてのナレッジ ベースの一覧を取得します。
### Get knowledge bases GET {{search-url}}/knowledgebases?api-version={{api-version}}&$select=name Authorization: Bearer {{token}}リファレンス:ナレッジ ベース - リスト
応答の例は次のようになります。
{ "@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-url}}/knowledgebases/{{knowledge-base-name}}?api-version={{api-version}} Authorization: Bearer {{token}}リファレンス:ナレッジ ベース - 取得
応答の例は次のようになります。
{ "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-url}}/knowledgebases/{{knowledge-base-name}}?api-version={{api-version}} Authorization: Bearer {{token}}リファレンス:ナレッジ ベース - 削除
ナレッジ ソースを削除します。
### Delete a knowledge source DELETE {{search-url}}/knowledgesources/{{knowledge-source-name}}?api-version={{api-version}} Authorization: Bearer {{token}}リファレンス:ナレッジ ソース - 削除