リモート SharePoint ナレッジ ソースを作成する (プレビュー)

メモ

一部のエージェント検索機能は、2026-04-01 REST API バージョンで一般公開されています。 ただし、この機能はプレビューのままであり、プレビュー REST API バージョンが必要です。 プレビュー機能は、サービス レベル アグリーメントなしで提供され、運用環境のワークロードには推奨されません。 詳細については、「Microsoft Azure プレビューの使用条件を参照してください。

リモートのSharePointナレッジソースは、Copilot取得APIを使用して、Microsoft 365内のSharePointから直接テキストコンテンツにクエリを行います。 検索インデックスや接続文字列は必要ありません。 テキスト コンテンツのみがクエリされ、使用量はMicrosoft 365とCopilot ライセンスを通じて課金されます。

サイトを制限したり、検索を制限したりするには、 フィルター式 を URL、日付範囲、ファイルの種類、およびその他のメタデータによってスコープに設定します。 呼び出し元のIDは、AzureテナントとMicrosoft 365テナントの両方で認識される必要があります。これは、取得エンジンがユーザーに代わってSharePointをクエリするためです。

他のナレッジ ソースと同様に、knowledge ベースでリモートSharePointナレッジ ソースを指定し、エージェントまたはチャットボットがクエリ時に retrieve アクション を呼び出すときに、その結果をグラウンド データとして使用します。

利用サポート

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

前提 条件

  • Azure AI 検索 を利用できる任意のエージェンティック検索を提供する領域

  • Azure と同じ Microsoft Entra ID テナントの下にある Microsoft 365 テナントに SharePoint が含まれています。

  • SharePoint コンテンツへのクエリ時間アクセスのためのMicrosoft 365 Copilot ライセンス。

  • Azure AI 検索でオブジェクトを作成および使用するためのアクセス許可。 ロールベースのアクセスをお勧めしますが、ロールの割り当てが不可能な場合は API キーを使用できます。 詳細については、「 検索サービスへの接続」を参照してください。

制限

Copilot 取得 API の次の制限は、リモート SharePointナレッジ ソースに適用されます。

  • Copilot コネクタやOneDrive コンテンツはサポートされません。 コンテンツはSharePointサイトからのみ取得されます。

  • 1 時間あたりユーザーあたり 200 要求の制限。

  • クエリ文字の制限は 1,500 文字です。

  • ハイブリッド クエリは、.doc、.docx、.pptx、.pdf、.aspx、.one というファイル拡張子でのみサポートされます。

  • マルチモーダル取得 (表、画像、グラフを含む非テキスト コンテンツ) はサポートされていません。

  • クエリからの結果は最大 25 個です。

  • 結果は、Copilot取得APIによって順序がない形で返されます。

  • 無効なキーワード クエリ言語 (KQL) フィルター式は無視され、クエリはフィルターなしで引き続き実行されます。

既存のナレッジ ソースを確認する

ナレッジ ソースは、最上位の再利用可能なオブジェクトです。 既存のナレッジ ソースについて知ることは、新しいオブジェクトを再利用または名前付けする場合に役立ちます。

次のコードを実行して、名前と種類でナレッジ ソースを一覧表示します。

// 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
api-key: {{api-key}}

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

名前で 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}}
api-key: {{api-key}}

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

次の JSON は、リモート SharePointナレッジ ソースに対する応答の例です。

{
  "name": "my-sharepoint-ks",
  "kind": "remoteSharePoint",
  "description": "A sample remote SharePoint knowledge source",
  "encryptionKey": null,
  "remoteSharePointParameters": {
    "filterExpression": "filetype:docx",
    "containerTypeId": null,
    "resourceMetadata": [
      "Author",
      "Title"
    ]
  }
}

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

次のコードを実行して、リモートSharePointナレッジ ソースを作成します。

// Create a remote SharePoint 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), credential);

var knowledgeSource = new RemoteSharePointKnowledgeSource(name: "my-remote-sharepoint-ks")
{
    Description = "This knowledge source queries .docx files in a trusted Microsoft 365 tenant.",
    RemoteSharePointParameters = new RemoteSharePointKnowledgeSourceParameters()
    {
        FilterExpression = "filetype:docx",
        ResourceMetadata = { "Author", "Title" }
    }
};

await indexClient.CreateOrUpdateKnowledgeSourceAsync(knowledgeSource);
Console.WriteLine($"Knowledge source '{knowledgeSource.Name}' created or updated successfully.");

Reference:SearchIndexClientRemoteSharePointKnowledgeSource

# Create a remote SharePoint knowledge source
from azure.core.credentials import AzureKeyCredential
from azure.search.documents.indexes import SearchIndexClient
from azure.search.documents.indexes.models import RemoteSharePointKnowledgeSource, RemoteSharePointKnowledgeSourceParameters

index_client = SearchIndexClient(endpoint = "search_url", credential = AzureKeyCredential("api_key"))

knowledge_source = RemoteSharePointKnowledgeSource(
    name = "my-remote-sharepoint-ks",
    description= "This knowledge source queries .docx files in a trusted Microsoft 365 tenant.",
    encryption_key = None,
    remote_share_point_parameters = RemoteSharePointKnowledgeSourceParameters(
        filter_expression = "filetype:docx",
        resource_metadata = ["Author", "Title"],
        container_type_id = None
    )
)

index_client.create_or_update_knowledge_source(knowledge_source)
print(f"Knowledge source '{knowledge_source.name}' created or updated successfully.")

Reference:SearchIndexClient

### Create a remote SharePoint knowledge source
PUT {{search-url}}/knowledgesources/my-remote-sharepoint-ks?api-version=2025-11-01-preview
api-key: {{api-key}}
Content-Type: application/json

{
    "name": "my-remote-sharepoint-ks",
    "kind": "remoteSharePoint",
    "description": "This knowledge source queries .docx files in a trusted Microsoft 365 tenant.",
    "encryptionKey": null,
    "remoteSharePointParameters": {
        "filterExpression": "filetype:docx",
        "resourceMetadata": [ "Author", "Title" ],
        "containerTypeId": null
    }
}

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

ソース固有のプロパティ

次のプロパティを渡して、リモート SharePointナレッジ ソースを作成できます。

名前 説明 タイプ 編集可能 必須
Name ナレッジ ソースの名前。ナレッジ ソース コレクション内で一意である必要があり、Azure AI 検索内のオブジェクトのに関するガイドラインに従う必要があります。 文字列 いいえ はい
Description ナレッジ ソースの説明。 文字列 はい いいえ
EncryptionKey ナレッジ ソース内の機密情報を暗号化するための カスタマー マネージド キー オブジェクト はい いいえ
RemoteSharePointParameters リモート SharePoint ナレッジ ソースに固有のパラメーター: FilterExpressionResourceMetadata、および ContainerTypeId オブジェクト いいえ いいえ
FilterExpression SharePoint KQL で記述された式。コンテンツへのサイトとパスを指定するために使用されます。 文字列 はい いいえ
ResourceMetadata 標準メタデータ フィールド (作成者、ファイル名、作成日、コンテンツ タイプ、ファイルの種類) の配列。 配列 はい いいえ
ContainerTypeId SharePoint Embedded 接続のコンテナー ID。 指定しない場合は、SharePoint Online が使用されます。 文字列 はい いいえ
名前 説明 タイプ 編集可能 必須
name ナレッジ ソースの名前。ナレッジ ソース コレクション内で一意である必要があり、Azure AI 検索内のオブジェクトのに関するガイドラインに従う必要があります。 文字列 いいえ はい
description ナレッジ ソースの説明。 文字列 はい いいえ
encryption_key ナレッジ ソース内の機密情報を暗号化するための カスタマー マネージド キー オブジェクト はい いいえ
remote_share_point_parameters リモート SharePoint ナレッジ ソースに固有のパラメーター: filter_expressionresource_metadata、および container_type_id オブジェクト いいえ いいえ
filter_expression SharePoint KQL で記述された式。コンテンツへのサイトとパスを指定するために使用されます。 文字列 はい いいえ
resource_metadata 標準メタデータ フィールド (作成者、ファイル名、作成日、コンテンツ タイプ、ファイルの種類) の配列。 配列 はい いいえ
container_type_id SharePoint Embedded 接続のコンテナー ID。 指定しない場合は、SharePoint Online が使用されます。 文字列 はい いいえ
名前 説明 タイプ 編集可能 必須
name ナレッジ ソースの名前。ナレッジ ソース コレクション内で一意である必要があり、Azure AI 検索内のオブジェクトのに関するガイドラインに従う必要があります。 文字列 いいえ はい
kind このケースでは、remoteSharePoint されるナレッジソースの種類。 文字列 いいえ はい
description ナレッジ ソースの説明。 文字列 はい いいえ
encryptionKey ナレッジ ソース内の機密情報を暗号化するための カスタマー マネージド キー オブジェクト はい いいえ
remoteSharePointParameters リモート SharePoint ナレッジ ソースに固有のパラメーター: filterExpressionresourceMetadata、および containerTypeId オブジェクト いいえ いいえ
filterExpression SharePoint KQL で記述された式。コンテンツへのサイトとパスを指定するために使用されます。 文字列 はい いいえ
resourceMetadata 標準メタデータ フィールド (作成者、ファイル名、作成日、コンテンツ タイプ、ファイルの種類) の配列。 配列 はい いいえ
containerTypeId SharePoint Embedded 接続のコンテナー ID。 指定しない場合は、SharePoint Online が使用されます。 文字列 はい いいえ

フィルター式の例

filterExpression では、すべてのSharePointプロパティがサポートされているわけではありません。 サポートされているプロパティの一覧については、 API リファレンスを参照してください。 クエリ可能なプロパティについては、「 クエリ可能」を参照してください。

KQL フィルターの詳細については、構文リファレンスを参照してください。

フィルター式
ID で単一のサイトに絞り込む "filterExpression": "SiteID:\"00aa00aa-bb11-cc22-dd33-44ee44ee44ee\""
ID で複数のサイトにフィルターをかける "filterExpression": "SiteID:\"00aa00aa-bb11-cc22-dd33-44ee44ee44ee\" OR SiteID:\"11bb11bb-cc22-dd33-ee44-55ff55ff55ff\""
特定のパスの下のファイルにフィルターを適用する "filterExpression": "Path:\"https://my-demo.sharepoint.com/sites/mysite/Shared Documents/en/mydocs\""
特定の日付範囲にフィルターを適用する "filterExpression": "LastModifiedTime >= 2024-07-22 AND LastModifiedTime <= 2025-01-08"
特定のファイルの種類のファイルにフィルターを適用する "filterExpression": "FileExtension:\"docx\" OR FileExtension:\"pdf\" OR FileExtension:\"pptx\""
特定の情報保護ラベルのファイルへのフィルター処理 "filterExpression": "InformationProtectionLabelId:\"f0ddcc93-d3c0-4993-b5cc-76b0a283e252\""

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

ナレッジ ソースに問題がない場合は、次の手順に進 みます。ナレッジ ベースでナレッジ ソースを指定します。

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

ナレッジ ベースを構成したら、retrieve アクションを使用してSharePointコンテンツに対してクエリを実行します。 リモート SharePointには、クエリ時間のフィルター処理、クエリの定式化、応答フィールド、アクセス許可の適用に対するソース固有の動作があります。

クエリ時に KQL フィルターを適用する

取得要求のFilterExpressionAddOnKnowledgeSourceParamsを渡して、クエリ時に KQL フィルターを適用できます。 取得要求に FilterExpressionAddOn を指定し、ナレッジ ソース定義に FilterExpression を指定すると、フィルターは AND になります。

var retrievalRequest = new KnowledgeBaseRetrievalRequest();
retrievalRequest.Messages.Add(
    new KnowledgeBaseMessage(
        content: new[] {
            new KnowledgeBaseMessageTextContent("contoso product planning")
        }
    ) { Role = "user" }
);
retrievalRequest.KnowledgeSourceParams.Add(
    new RemoteSharePointKnowledgeSourceParams("my-remote-sharepoint-ks")
    {
        FilterExpressionAddOn = "filetype:docx"
    }
);

var result = await kbClient.RetrieveAsync(
    retrievalRequest, xMsQuerySourceAuthorization: token
);

Reference:KnowledgeBaseRetrievalClientKnowledgeBaseRetrievalRequest

取得要求のfilter_expression_add_onknowledge_source_paramsを渡して、クエリ時に KQL フィルターを適用できます。 取得要求に filter_expression_add_on を指定し、ナレッジ ソース定義に filter_expression を指定すると、フィルターは AND になります。

from azure.search.documents.knowledgebases.models import (
    KnowledgeBaseMessage,
    KnowledgeBaseMessageTextContent,
    KnowledgeBaseRetrievalRequest,
    RemoteSharePointKnowledgeSourceParams,
)

request = KnowledgeBaseRetrievalRequest(
    messages=[
        KnowledgeBaseMessage(
            role="user",
            content=[
                KnowledgeBaseMessageTextContent(
                    text="contoso product planning"
                )
            ],
        )
    ],
    knowledge_source_params=[
        RemoteSharePointKnowledgeSourceParams(
            knowledge_source_name="my-remote-sharepoint-ks",
            filter_expression_add_on="filetype:docx",
        )
    ],
)

result = kb_client.retrieve(
    retrieval_request=request,
    x_ms_query_source_authorization=token,
)

Reference:KnowledgeBaseRetrievalClientKnowledgeBaseRetrievalRequest

取得要求のfilterExpressionAddOnknowledgeSourceParamsを渡して、クエリ時に KQL フィルターを適用できます。 取得要求に filterExpressionAddOn を指定し、ナレッジ ソース定義に filterExpression を指定すると、フィルターは AND になります。

### Retrieve knowledge base content
POST {{search-url}}/knowledgebases/{{knowledge-base-name}}/retrieve?api-version=2025-11-01-preview
Authorization: Bearer {{accessToken}}
Content-Type: application/json
x-ms-query-source-authorization: {{user-access-token}}

{
    "messages": [
        {
            "role": "user",
            "content": [
                { "type": "text", "text": "contoso product planning" }
            ]
        }
    ],
    "knowledgeSourceParams": [
        {
            "knowledgeSourceName": "my-remote-sharepoint-ks",
            "kind": "remoteSharePoint",
            "filterExpressionAddOn": "filetype:docx"
        }
    ]
}

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

有効なクエリを記述する

コンテンツ自体について質問するクエリは、ファイルが配置されている場所や最後に更新された日時に関する質問よりも効果的です。 たとえば、「Ignite 2024 のキーノートドキュメントはどこにあるか」では、コンテンツ自体がその場所を開示していないため、結果が返されない場合があります。 メタデータの FilterExpression は、ファイルの場所または日付固有のクエリに適したアプローチです。

コンテンツ自体について質問するクエリは、ファイルが配置されている場所や最後に更新された日時に関する質問よりも効果的です。 たとえば、「Ignite 2024 のキーノートドキュメントはどこにあるか」では、コンテンツ自体がその場所を開示していないため、結果が返されない場合があります。 メタデータの filter_expression は、ファイルの場所または日付固有のクエリに適したアプローチです。

コンテンツ自体について質問するクエリは、ファイルが配置されている場所や最後に更新された日時に関する質問よりも効果的です。 たとえば、「Ignite 2024 のキーノートドキュメントはどこにあるか」では、コンテンツ自体がその場所を開示していないため、結果が返されない場合があります。 メタデータの filterExpression は、ファイルの場所または日付固有のクエリに適したアプローチです。

より効果的な質問は、「Ignite 2024のキーノートドキュメントとは」です。 応答には、合成された回答、クエリ アクティビティとトークンの数、および URL とその他のメタデータが含まれます。

SharePoint固有の応答フィールド

リモート SharePointの結果には、resourceMetadatawebUrlsearchSensitivityLabelInfo など、他のナレッジ ソースの種類には表示されないフィールドが含まれます。

{
    "resourceMetadata": {
        "Author": "Nuwan Amarathunga;Nurul Izzati",
        "Title": "Ignite 2024 Keynote Address"
    },
    "rerankerScore": 2.489522,
    "webUrl": "https://contoso-my.sharepoint.com/keynotes/Documents/Keynote-Ignite-2024.docx",
    "searchSensitivityLabelInfo": {
        "displayName": "Confidential\\Contoso Extended",
        "sensitivityLabelId": "aaaaaaaa-0b0b-1c1c-2d2d-333333333333",
        "tooltip": "Data is classified and protected.",
        "priority": 5,
        "color": "#FF8C00",
        "isEncrypted": true
    }
}

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

リモートSharePointナレッジ ソースでは、クエリ時にSharePointアクセス許可を適用できます。 このフィルター処理を有効にするには、取得要求にエンド ユーザーのアクセス トークンを含めます。 取得エンジンはトークンを Copilot 取得 API に渡します。この API は、SharePointクエリを実行し、ユーザーがアクセスできるコンテンツのみを返します。 SharePoint権限とMicrosoft Purview秘密度ラベルが尊重されます。

リモート SharePointでは検索インデックスが使用されないため、インジェスト時のアクセス許可の構成は必要ありません。 アクセス トークンが唯一の要件です。

トークンを渡す手順については、「 クエリ時にアクセス許可を適用する」を参照してください。

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

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

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

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

  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

    応答の例は次のようになります。

     Knowledge Bases:
       - earth-knowledge-base
       - hotels-sample-knowledge-base
       - my-demo-knowledge-base
    
  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
    api-key: {{api-key}}
    

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

    応答の例は次のようになります。

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

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

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

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

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

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