Work IQ ナレッジ ソースを作成する (プレビュー)

Note

Azure AI 検索は、Azure ポータルREST APIおよびAzure SDKから使用できます。 また、Foundry IQ は、エンタープライズ コンテンツを、Microsoft Foundry ポータルのエージェントの再利用可能なアクセス許可に対応したナレッジ ベースに変換するマネージド ナレッジ レイヤーです。

Important

これらの機能は、2026-08-01-preview REST API の一部です。 2026-08-01-preview は、Azure サブスクリプションの一部としてユーザーにライセンス付与され、Microsoft製品使用条件Microsoft製品およびサービス データ保護補遺 ("DPA")、および Microsoft Azure プレビューの追加使用条件に適用される条件に従います。

2026-08-01-preview では、他のMicrosoft サービスやサード パーティのサービスへの接続がサポートされています。 これらのサービスの利用は各サービスの利用規約に従うものとし、データが Azure コンプライアンス境界の外部で処理または保存されたり、Azure コンプライアンス境界内に流入したりする場合があります。

Work IQ に接続すると、コストが発生する可能性があり、データはAzureコンプライアンス境界外に送信され、該当するサービス条件とデータ処理ポリシーに従って処理される可能性があります。 データが組織のコンプライアンスと地理的境界の外部に流れるかどうか、および関連する影響があるかどうか、および適切なアクセス許可、境界、承認がプロビジョニングされるかどうかを管理するのは、お客様の責任です。

特定のユース ケースのコンテキストで構築したアプリケーションを慎重に確認およびテストし、すべての適切な決定とカスタマイズを行う責任があります。 この責任には、メタプロンプト、コンテンツ フィルター、その他の安全システムなどの独自の責任ある AI 軽減策を実装し、アプリケーションが適切な品質、信頼性、セキュリティ、信頼性の標準を満たしていることを確認する必要があります。 詳細については、「Azure AI 検索透過性に関するメモを参照してください。

Work IQ ナレッジ ソース (プレビュー) は、Work IQ をAzure AI 検索のエージェント検索パイプラインに接続します。 ナレッジ ソース は個別に作成され、 ナレッジ ベースで参照され、実行時にナレッジ ベースの クエリが実行されるときに、グラウンド データとして使用されます。

Work IQ は、ドキュメント、電子メール、会議、Microsoft 365 アプリ全体のアクティビティなど、Microsoft 365 コンテンツから組織のインテリジェンスを表示します。

インデックス付きナレッジ ソースとは異なり、Work IQ ナレッジ ソースは、取得時にライブ データに直接クエリを実行します。 インジェスト パイプラインは必要ありません。 クエリには、Microsoft Entra アプリの登録に対して発行されたユーザー アクセス トークンが必要です。 Azure AI 検索、そのトークンを委任された Work IQ トークンと交換し、ユーザーの代わりに Work IQ を呼び出します。

Warning

このプレビューでは、Work IQ ナレッジ ソースは、情報を取得するだけでなく、アクションを実行する Work IQ 機能を使用する可能性があります。 これを有効にする前に、慎重に使用し、信頼できるアプリケーションとユーザーへのアクセスを制限し、シナリオのアクセス許可とガバナンス制御を確認します。

使用サポート

Azure Portal Microsoft Foundry ポータル .NET SDK Python SDK Java SDK JavaScript SDK REST API
✔️ ✔️ ✔️

Prerequisites

  • 最新の 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 トークンを含めます。

データ ガバナンスとコンプライアンス

Work IQ の取得を有効にする前に、Microsoft 365 Copilotのデータ、プライバシー、セキュリティを確認してください。

データの使用とプライバシー

Microsoft Graphを介してアクセスされるプロンプト、応答、およびデータは、基本言語モデルのトレーニングには使用されません。

アクセス制御

Work IQ は、リクエストごとに Microsoft 365 のアクセス許可を適用します。 取得では、サインインしているユーザーがアクセス許可を持っている組織データのみが返されます。

データの保存場所とコンプライアンス

組織とシナリオに適用されるデータ所在地、プライバシー、セキュリティ、コンプライアンスのコミットメントに関するMicrosoft 365ドキュメントを確認します。

Microsoft Entra 認証を設定する

2026-08-01-preview API バージョン以降、各 Work IQ ナレッジ ソースは、認証に顧客所有のMicrosoft Entra アプリ登録を使用します。 クエリ時に、認証は次のように機能します。

  1. クライアント アプリはユーザーをサインインさせ、ユーザー アサーションをAzure AI 検索に送信します。
  2. 検索サービスのマネージド ID は、フェデレーション資格情報を使用して、顧客が所有するアプリとして認証されます。
  3. Azure AI 検索、委任された Work IQ トークンのユーザー アサーションを交換し、サインインしているユーザーの代わりに Work IQ を呼び出します。

Work IQ ナレッジ ソースにはクライアント シークレットは格納されません。 アプリとそのアクセス許可を 1 回構成し、アプリを使用する各検索サービス ID のフェデレーション資格情報を作成します。

Work IQ アプリの登録を構成する

Azure AI 検索 が Work IQ を呼び出すために使用する顧客所有のアプリを構成するには:

  1. Work IQ 同意を管理するMicrosoft Entra テナントにアプリケーションを登録します。 [サポートされているアカウントの種類] で、 [この組織のディレクトリ内のアカウントのみ] を選択します。

  2. アプリ登録の [概要 ] ページで、 アプリケーション (クライアント) IDディレクトリ (テナント) ID をコピーします。 Work IQ 認証を構成するためのアプリケーション ID と、アプリの登録を含むテナントにサインインするテナント ID が必要です。

  3. アプリ登録の API の公開 ページで、access_as_userします。 この小文字の名前を使用します。別のスコープ名に置き換えないでください。 完全なスコープは api://<application-client-id>/access_as_user

  4. アプリ登録の API アクセス許可ページで、[アクセス許可の追加] を選択します>組織が使用する API

  5. Work IQ (アプリケーション ID fdcc1f02-fc51-4226-8753-f668596af7f7) を検索し、[委任されたアクセス許可>WorkIQAgent.Ask] を選択し、[アクセス許可の追加] を選択します。

  6. 前提条件に記載された同意ロールを持つ管理者に、同じページで [your tenant] に管理者の同意を付与 を選択してもらいます。 この同意により、アプリはユーザー アサーションを委任された Work IQ トークンと交換できます。

検索サービス ID を構成する

Work IQ アプリとして認証するために使用Azure AI 検索 ID を構成するには:

  1. 検索サービスでシステム割り当てマネージド ID を有効にします。 システム割り当て ID を使用できない場合は、ユーザー割り当て ID を 1 つだけ構成します。 複数のユーザー割り当て ID を持ち、システム割り当て ID を持たない検索サービスはサポートされていません。

  2. 検索サービスの [ID] ページでオブジェクト (プリンシパル) ID をコピーします。 フェデレーション資格情報は、この値を subjectとして使用します。

  3. Microsoft Entra ID>Overview に移動し、テナント ID をコピーします。 フェデレーション資格情報は、 issuer URL でこの値を使用します。

フェデレーション資格情報を作成する

検索サービス ID のフェデレーション資格情報を作成するには:

  1. credential.jsonという名前のファイルを作成します。 <search-service-name><search-service-tenant-id>、および<search-service-principal-id>を検索サービスの値に置き換えます。

    {
      "name": "<search-service-name>-identity",
      "issuer": "https://login.microsoftonline.com/<search-service-tenant-id>/v2.0",
      "subject": "<search-service-principal-id>",
      "audiences": ["api://AzureADTokenExchange"]
    }
    

    資格情報名は、アプリの登録時に一意である必要があります。 subject値は、マネージド ID プリンシパル ID と正確に一致する必要があります。 ナレッジ ソースを作成するときではなく、クエリを実行すると不一致が発生します。

  2. アプリの登録を含むテナントでAzure CLIにサインインします。

    az login --tenant <app-tenant-id> --allow-no-subscriptions
    
  3. フェデレーション認証情報を作成します。

    az ad app federated-credential create --id <application-client-id> --parameters credential.json --query id --output tsv
    
  4. コマンド出力をコピーします。 この値は、Work IQ ナレッジ ソースを作成するときに federatedCredentialId に使用します。

各フェデレーション資格情報は、1 つの管理対象 ID のプリンシパル ID を信頼対象とします。 別の検索サービス ID がアプリ登録を使用する場合は、一意の資格情報名とその ID のテナント ID とプリンシパル ID でこの手順を繰り返します。 各 Work IQ ナレッジ ソースで対応する資格情報 ID を使用します。

クライアント アプリを構成する

ユーザーをサインインさせ、取得要求を送信するアプリを構成するには:

  1. クライアント アプリの [API のアクセス許可 ] ページで、[ アクセス許可の追加>組織で使用する API を選択します。

  2. 先ほどコピーした アプリケーション (クライアント) ID を 検索ボックスに貼り付け、Work IQ アプリの登録を選択します。

  3. [ 委任されたアクセス許可>access_as_userを選択し、[ アクセス許可の追加] を選択します。

  4. テナントのユーザー同意ポリシーに必要な同意を完了します。 管理者の同意が必要な場合は、管理者が [お使いのテナント] に管理者の同意を付与する を選択します。

クライアント アプリは、Work IQ アプリ登録のユーザー アサーションを要求できるようになりました。 access_as_userアクセス許可は、クライアント アプリに Work IQ への直接アクセスを許可しません。

認証値

Work IQ ナレッジ ソースを作成するときは、Microsoft Entra アプリのセットアップから次のentraAppAuthentication値を使用します。 指定する各値は GUID である必要があります。

財産 必須 Value
applicationId はい Work IQ アプリ登録のアプリケーション (クライアント) ID。
federatedCredentialId はい アプリで作成したフェデレーション資格情報のオブジェクト ID。 これは資格情報名ではなく、検索サービス プリンシパル ID ではありません。
tenantId いいえ アプリ登録のディレクトリ (テナント) 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 は、Work IQ ナレッジ ソースの応答の例です。

{
  "name": "my-workiq-ks",
  "kind": "workIQ",
  "description": "A sample Work IQ knowledge source.",
  "workIQParameters": {
    "entraAppAuthentication": {
      "applicationId": "11111111-1111-1111-1111-111111111111",
      "federatedCredentialId": "22222222-2222-2222-2222-222222222222",
      "tenantId": null
    }
  },
  "encryptionKey": null
}

ナレッジ ソースを作成する

次のコードを実行して、Work IQ ナレッジ ソースを作成します。

using Azure.Identity;
using Azure.Search.Documents.Indexes;
using Azure.Search.Documents.Indexes.Models;
using Azure.Search.Documents.Models;

Uri searchEndpoint =
    new("https://<search-service-name>.search.windows.net");
var credential = new DefaultAzureCredential();
var indexClient = new SearchIndexClient(searchEndpoint, credential);

var entraAuthentication = new EntraAppAuthentication(
    Guid.Parse("<application-client-id>"),
    Guid.Parse("<federated-credential-id>"));
var knowledgeSource = new WorkIQKnowledgeSource(
    "my-workiq-ks",
    new WorkIQKnowledgeSourceParameters(entraAuthentication))
{
    Description = "A sample Work IQ knowledge source."
};

KnowledgeSource createdSource =
    await indexClient.CreateOrUpdateKnowledgeSourceAsync(knowledgeSource);
Console.WriteLine($"Created knowledge source '{createdSource.Name}'.");

Reference:SearchIndexClientWorkIQKnowledgeSource

from azure.identity import DefaultAzureCredential
from azure.search.documents.indexes import SearchIndexClient
from azure.search.documents.indexes.models import (
    EntraAppAuthentication,
    WorkIQKnowledgeSource,
    WorkIQKnowledgeSourceParameters,
)

endpoint = "https://<search-service-name>.search.windows.net"
credential = DefaultAzureCredential()

knowledge_source = WorkIQKnowledgeSource(
    name="my-workiq-ks",
    description="A sample Work IQ knowledge source.",
    work_iq_parameters=WorkIQKnowledgeSourceParameters(
        entra_app_authentication=EntraAppAuthentication(
            application_id="<application-client-id>",
            federated_credential_id="<federated-credential-id>",
        )
    ),
)

with SearchIndexClient(endpoint, credential) as index_client:
    created_source = index_client.create_or_update_knowledge_source(
        knowledge_source
    )
print(f"Created knowledge source '{created_source.name}'.")

Reference:SearchIndexClientWorkIQKnowledgeSource

@search-endpoint = <search-endpoint> // Example: https://my-service.search.windows.net
@search-access-token = <search-access-token> // Run: az account get-access-token --scope https://search.azure.com/.default --query accessToken -o tsv

### Create a Work IQ knowledge source
PUT {{search-endpoint}}/knowledgesources/my-workiq-ks?api-version=2026-08-01-preview
Authorization: Bearer {{search-access-token}}
Content-Type: application/json
Prefer: return=representation

{
  "name": "my-workiq-ks",
  "kind": "workIQ",
  "description": "A sample Work IQ knowledge source.",
  "workIQParameters": {
    "entraAppAuthentication": {
      "applicationId": "<application-client-id>",
      "federatedCredentialId": "<federated-credential-id>"
    }
  }
}

リファレンス:ナレッジ ソース - 作成または更新

ナレッジ ベースに割り当てる

ナレッジ ソースに満足している場合は、 ナレッジ ベースに追加します

ナレッジ ベースのクエリを実行する

ナレッジ ベースが構成されたら、 取得アクションまたは MCP エンドポイントを呼び出 して、Work IQ コンテンツのクエリを実行します。 このナレッジ ソースには、クエリ時のアクセス許可の適用と応答の特性が固有です。

Important

作業 IQ の応答には 40 ~ 60 秒以上かかることがあります。 タイムアウト エラーを回避するには、取得要求の maxRuntimeInSeconds120 以上に設定します。

クエリ時にアクセス許可を適用する

2026-08-01-preview API バージョン以降、Work IQ ナレッジ ソースは、顧客所有のMicrosoft Entra アプリ登録を通じて、代理 (OBO) トークン フローを使用します。 クライアントは、Azure AI 検索に対する取得要求を認証するだけでなく、サインインしているユーザーのアプリ対象ユーザー アサーションを提供する必要があります。

クライアント アプリは、ユーザーをサインインさせ、ユーザー アサーションを取得する必要があります。 アサーションを取得する方法は、アプリのプラットフォームと言語によって異なります。 Microsoft Authentication Library (MSAL) と認証コード フローと Proof Key for Code Exchange (PKCE) を使用して、正確なスコープapi://<application-client-id>/access_as_userを要求します。

ユーザー アサーションを送信する前に、次の点を確認します。

  • aud は、Work IQ アプリの登録を識別します。
  • scp には、access_as_user が含まれます。
  • oidtid は、サインインしているユーザーとアプリのテナントを識別します。

次の例に示すように、同じ取得要求で両方の資格情報を送信します。 サービス認証には、Azure AI 検索 トークンまたは API キーを使用します。 x-ms-query-source-authorizationではなく、x-ms-query-work-iq-source-authorization ヘッダーに生のユーザー アサーションを渡します。

using Azure.Identity;
using Azure.Search.Documents;
using Azure.Search.Documents.KnowledgeBases;
using Azure.Search.Documents.KnowledgeBases.Models;

Uri searchEndpoint =
    new("https://<search-service-name>.search.windows.net");
string userAssertion = "<user-assertion>";
var credential = new DefaultAzureCredential();
var options = new SearchClientOptions();
options.Retry.NetworkTimeout = TimeSpan.FromSeconds(130);
var retrievalClient = new KnowledgeBaseRetrievalClient(
    searchEndpoint,
    "my-kb",
    credential,
    options);

var request = new KnowledgeBaseRetrievalRequest
{
    IncludeActivity = true,
    MaxRuntimeInSeconds = 120
};
request.Intents.Add(
    new KnowledgeRetrievalSemanticIntent("Find my project status."));
request.KnowledgeSourceParams.Add(
    new WorkIQKnowledgeSourceParams("my-workiq-ks")
    {
        IncludeReferences = true,
        IncludeReferenceSourceData = true
    });

var response = await retrievalClient.RetrieveAsync(
    request,
    querySourceAuthorization: null,
    queryWorkIQSourceAuthorization: userAssertion);
Console.WriteLine(response.Value);

Reference:KnowledgeBaseRetrievalClientKnowledgeBaseRetrievalRequest

from azure.identity import DefaultAzureCredential
from azure.search.documents.knowledgebases import (
    KnowledgeBaseRetrievalClient,
)
from azure.search.documents.knowledgebases.models import (
    KnowledgeBaseRetrievalRequest,
    KnowledgeRetrievalSemanticIntent,
    WorkIQKnowledgeSourceParams,
)

endpoint = "https://<search-service-name>.search.windows.net"
user_assertion = "<user-assertion>"
credential = DefaultAzureCredential()

request = KnowledgeBaseRetrievalRequest(
    intents=[
        KnowledgeRetrievalSemanticIntent(
            search="Find my project status."
        )
    ],
    knowledge_source_params=[
        WorkIQKnowledgeSourceParams(
            knowledge_source_name="my-workiq-ks",
            include_references=True,
            include_reference_source_data=True,
        )
    ],
    include_activity=True,
    max_runtime_in_seconds=120,
)

with KnowledgeBaseRetrievalClient(
    endpoint,
    credential,
    knowledge_base_name="my-kb",
) as retrieval_client:
    response = retrieval_client.retrieve(
        request,
        query_work_iq_source_authorization=user_assertion,
        timeout=130,
    )

print(response)

Reference:KnowledgeBaseRetrievalClientKnowledgeBaseRetrievalRequest

@search-endpoint = <search-endpoint>
@search-access-token = <search-access-token>
@user-assertion = <user-assertion>

### Query a knowledge base with a Work IQ knowledge source
POST {{search-endpoint}}/knowledgebases/my-kb/retrieve?api-version=2026-08-01-preview
Authorization: Bearer {{search-access-token}}
x-ms-query-work-iq-source-authorization: {{user-assertion}}
Content-Type: application/json

{
  "messages": [{
    "role": "user",
    "content": [{
      "type": "text",
      "text": "Find my project status."
    }]
  }],
  "knowledgeSourceParams": [{
    "knowledgeSourceName": "my-workiq-ks",
    "kind": "workIQ",
    "includeReferences": true,
    "includeReferenceSourceData": true
  }],
  "includeActivity": true,
  "maxRuntimeInSeconds": 120
}

リファレンス:ナレッジの取得 - 取得

要求が成功すると、 200 OKが返されます。 typeに、workIQknowledgeSourceNameであり、activityが Work IQ ナレッジ ソースと一致するエントリが含まれていることを確認します。 また、 referencesworkIQ エントリが含まれていることも確認します。

次の表に、一般的な構成エラーの一覧を示します。

地位 原因
400 Work IQ 承認ヘッダーが見つからないか、形式が正しくないか、必要なユーザー要求が存在しないか、検索サービスにサポートされているマネージド ID 構成がありません。
206 または 502 トークン交換、同意、委任されたアクセス許可、フェデレーション資格情報、ダウンストリーム承認、または Work IQ 要求が失敗またはタイムアウトしたため、Work IQ ソースが失敗しました。ソース アクティビティ エラーを調べます。 206応答は、別のソースが成功したことを意味します。 502応答は、選択したすべてのソースが失敗したか、必要なソースが失敗したことを意味します。

作業 IQ 固有の応答フィールド

作業 IQ ナレッジ ソースは、 references 配列に結果を返し、 activity 配列の診断をクエリします。 各参照エントリには、次のものが含まれます。

  • sourceData.parts[].text: Work IQ に基づく根拠のあるテキスト抜粋。
  • sourceData.parts[].data: Work IQ の引用データ。 引用文献パーツには、メディアタイプの application/vnd.ms-workiq-referenceがあります。

次の例は、Work IQ ナレッジ ソース参照とそれに対応するアクティビティ レコードを含む取得応答を示しています。 応答の取得の解釈に関するより広範なガイダンスについては、 応答の確認を参照してください。

Tip

参照のsourceDataを受信するには、includeReferenceSourceDataを取得要求のtrue内のナレッジ ソース エントリのknowledgeSourceParamsに設定します。

{
  "response": [],
  "activity": [
    {
      "type": "workIQ",
      "id": 0,
      "knowledgeSourceName": "my-workiq-ks",
      "queryTime": "2026-08-01T19:25:23.683Z",
      "count": 1,
      "elapsedMs": 1137,
      "workIQArguments": {
        "search": "my query"
      }
    }
  ],
  "references": [
    {
      "type": "workIQ",
      "id": "83dd7d40",
      "activitySource": 0,
      "rerankerScore": 3.5,
      "sourceData": {
        "parts": [
          {
            "text": "Have your VPN username and password ready."
          },
          {
            "data": {
              "1-abc123": {
                "targetLink": "https://contoso.sharepoint.com/doc.docx",
                "isCitedInResponse": true,
                "isSourceFiltered": false
              }
            },
            "mediaType": "application/vnd.ms-workiq-reference"
          }
        ]
      }
    }
  ]
}

ナレッジ ソースを削除する

ナレッジ ソースを削除する前に、ナレッジ ソースを参照するすべてのナレッジ ベースを削除するか、ナレッジ ベース定義を更新して参照を削除する必要があります。 インデックスとインデクサー パイプラインを生成するナレッジ ソースの場合、 生成されたすべてのオブジェクト も削除されます。 ただし、既存のインデックスを使用してナレッジ ソースを作成した場合、インデックスは削除されません。

使用中のナレッジ ソースを削除しようとすると、アクションは失敗し、影響を受けるナレッジ ベースの一覧が返されます。

ナレッジ ソースを削除するには:

  1. 検索サービスのすべてのナレッジ ベースの一覧を取得します。

    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"
         }
         ]
     }
    
  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
     }
    
  3. ナレッジ ベースを削除するか、複数のナレッジ ソースがある場合は、ナレッジ ベースを更新してソースを削除します。 この例では、削除を示します。

    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

  4. ナレッジ ソースを削除します。

    await indexClient.DeleteKnowledgeSourceAsync(knowledgeSourceName);
    System.Console.WriteLine($"Knowledge source '{knowledgeSourceName}' deleted successfully.");
    

    Reference:SearchIndexClient

  1. 検索サービスのすべてのナレッジ ベースの一覧を取得します。

    # 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"
         }
         ]
     }
    
  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"
       }
     }
    
  3. ナレッジ ベースを削除するか、複数のナレッジ ソースがある場合は、ナレッジ ベースを更新してソースを削除します。 この例では、削除を示します。

    # 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

  4. ナレッジ ソースを削除します。

    # 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

  1. 検索サービスのすべてのナレッジ ベースの一覧を取得します。

    ### 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"
         }
         ]
     }
    
  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"
       }
     }
    
  3. ナレッジ ベースを削除するか、複数のナレッジ ソースがある場合は、ナレッジ ベースを更新してソースを削除します。 この例では、削除を示します。

    ### Delete a knowledge base
    DELETE {{search-url}}/knowledgebases/{{knowledge-base-name}}?api-version={{api-version}}
    Authorization: Bearer {{token}}
    

    リファレンス:ナレッジ ベース - 削除

  4. ナレッジ ソースを削除します。

    ### Delete a knowledge source
    DELETE {{search-url}}/knowledgesources/{{knowledge-source-name}}?api-version={{api-version}}
    Authorization: Bearer {{token}}
    

    リファレンス:ナレッジ ソース - 削除