インデックス付きAzure SQLナレッジ ソースを作成する (プレビュー)

Note

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

Important

これらの機能は、2026-05-01-preview REST API の一部です。 2026-05-01-preview は、お客様の Azure サブスクリプションの一部としてお客様にライセンス供与されるものであり、Microsoft Product Terms における「Previews」に適用される条件、Microsoft Products and Services Data Protection Addendum(「DPA」)、および Supplemental Terms of Use for Microsoft Azure Previews に従うものとします。

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

データが組織のコンプライアンスと地理的境界の外部に流れるかどうか、および関連する影響、および適切なアクセス許可、境界、承認がプロビジョニングされるかどうかを管理するのは、お客様の責任です。

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

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

Azure Blob Storageや OneLake などのファイル ベースのナレッジ ソースとは異なり、各 SQL 行は 1 つの論理ドキュメントとして扱われます。 インデックス スキーマは、固定ドキュメント スキーマではなく、明示的な列マッピングを通じて顧客主導です。

インデックス付きAzure SQLナレッジ ソースを作成する場合は、SQL データ ソース、オプションの列マッピング、および省略可能なモデルを指定して、次のAzure AI 検索 オブジェクトを自動的に生成します。

  • SQL テーブルまたはビューを表すデータ ソース。
  • 列マッピングから派生したフィールドを持つインデックス。
  • 埋め込みを生成するスキルセット。 サービスは、 embeddingColumnsを指定した場合にのみスキルセットを作成します。
  • インジェスト パイプラインを駆動するために前のオブジェクトを使用するインデクサー。

生成されたインデクサーは、Azure SQL インデクサーに準拠しており、その前提条件、変更検出ポリシー、制限事項は、インデックス付きAzure SQLナレッジ ソースにも適用されます。 詳細については、Azure SQL インデクサーのドキュメントを参照してください。

使用サポート

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

制限事項と考慮事項

  • ナレッジ ソースは、1 つのテーブルまたは 1 つのビューから取り込むことができます。
  • ソース テーブルまたはビューには、単一値の主キーが必要です。 複合キーはサポートされていません。
  • 主キーは自動検出され、オーバーライドできません。
  • contentExtractionMode では、 "minimal"のみがサポートされます。
  • 画像の抽出と画像の言語化はサポートされていません。
  • リアルタイム同期はサポートされていません。 生成されたインデクサーはスケジュールベースです。
  • リアルタイム SQL の取得はサポートされていません。 ナレッジ ソースはリモートではなく、インデックス化されています。

生成されたインデクサーを準備する

インジェストを促進するインデクサーは、インデックス付きAzure SQLナレッジ ソースによって自動的に作成されます。 ナレッジ ソースを作成する前に、次の詳細を確認してください。

変更検出

生成されたインデクサーは、標準Azure SQLインデクサーの変更検出を使用します。

認証

生成されたインデクサーでは、次の 2 つの認証オプションがサポートされます。

  • SQL authentication: 接続文字列にユーザー名とパスワードを指定します。

  • マネージド ID 認証: SQL リソース上で Azure RBAC とデータベース レベルのロールが付与されている、システム割り当てマネージド ID またはユーザー割り当てマネージド ID を使用します。

接続文字列の形式、ロールの要件、および設定手順については、Azure SQL インデクサーの前提条件およびマネージド 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
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 は、インデックス付きAzure SQLナレッジ ソースに対する応答の例です。

{
  "name": "indexedsqlks",
  "kind": "indexedSql",
  "description": "Sample indexed Azure SQL knowledge source.",
  "encryptionKey": null,
  "indexedSqlParameters": {
    "connectionString": "<SQL database connection string>",
    "tableOrView": "dbo.tbl_hotels",
    "contentColumns": [
      { "name": "hotelName", "sourceField": "HotelName", "searchFieldType": "Edm.String" },
      { "name": "description", "sourceField": "Description", "searchFieldType": "Edm.String" }
    ],
    "embeddingColumns": [
      { "name": "descriptionVector", "sourceField": "Description" }
    ],
    "ingestionParameters": {
      "contentExtractionMode": "minimal",
      "embeddingModel": {
        "kind": "azureOpenAI",
        "azureOpenAIParameters": {
          "resourceUri": "<Foundry resource endpoint URI>",
          "deploymentId": "text-embedding-3-large",
          "modelName": "text-embedding-3-large"
        }
      },
      "createdResources": {
        "datasource": "indexedsqlks-datasource",
        "indexer": "indexedsqlks-indexer",
        "skillset": "indexedsqlks-skillset",
        "index": "indexedsqlks-index"
      }
    }
  }
}

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

次のコードを実行して、インデックス付きAzure SQLナレッジ ソースを作成します。

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

var indexClient = new SearchIndexClient(new Uri(searchEndpoint), new AzureKeyCredential(apiKey));

var embeddingParams = new AzureOpenAIVectorizerParameters
{
    ResourceUri = new Uri(aoaiEndpoint),
    DeploymentName = aoaiEmbeddingDeployment,
    ModelName = aoaiEmbeddingModel,
    ApiKey = aoaiKey
};

var ingestionParams = new KnowledgeSourceIngestionParameters
{
    ContentExtractionMode = "minimal",
    EmbeddingModel = new KnowledgeSourceAzureOpenAIVectorizer
    {
        AzureOpenAIParameters = embeddingParams
    }
};

var sqlParams = new IndexedSqlKnowledgeSourceParameters(
    connectionString: sqlConnectionString,
    tableOrView: "dbo.tbl_hotels")
{
    ContentColumns =
    {
        new ContentColumnMapping("hotelName", "HotelName", "Edm.String"),
        new ContentColumnMapping("description", "Description", "Edm.String")
    },
    EmbeddingColumns =
    {
        new EmbeddingColumnMapping("descriptionVector", "Description")
    },
    IngestionParameters = ingestionParams
};

var knowledgeSource = new IndexedSqlKnowledgeSource(
    name: "indexedsqlks",
    indexedSqlParameters: sqlParams)
{
    Description = "Indexed Azure SQL knowledge source."
};

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

Reference:SearchIndexClientIndexedSqlKnowledgeSource

from azure.core.credentials import AzureKeyCredential
from azure.search.documents.indexes import SearchIndexClient
from azure.search.documents.indexes.models import (
    AzureOpenAIVectorizerParameters,
    ContentColumnMapping,
    EmbeddingColumnMapping,
    IndexedSqlKnowledgeSource,
    IndexedSqlKnowledgeSourceParameters,
)
from azure.search.documents.knowledgebases.models import (
    KnowledgeSourceAzureOpenAIVectorizer,
    KnowledgeSourceIngestionParameters,
)

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

embedding_params = AzureOpenAIVectorizerParameters(
    resource_url="aoai_endpoint",
    deployment_name="aoai_embedding_deployment",
    model_name="aoai_embedding_model",
    api_key="aoai_key",
)

ingestion_params = KnowledgeSourceIngestionParameters(
    content_extraction_mode="minimal",
    embedding_model=KnowledgeSourceAzureOpenAIVectorizer(
        azure_open_ai_parameters=embedding_params
    ),
)

knowledge_source = IndexedSqlKnowledgeSource(
    name="indexedsqlks",
    description="Indexed Azure SQL knowledge source.",
    indexed_sql_parameters=IndexedSqlKnowledgeSourceParameters(
        connection_string="Server=tcp:{server}.database.windows.net,1433;Database={db};...;",
        table_or_view="dbo.tbl_hotels",
        content_columns=[
            ContentColumnMapping(
                name="hotelName",
                source_field="HotelName",
                search_field_type="Edm.String",
            ),
            ContentColumnMapping(
                name="description",
                source_field="Description",
                search_field_type="Edm.String",
            ),
        ],
        embedding_columns=[
            EmbeddingColumnMapping(
                name="descriptionVector",
                source_field="Description",
            )
        ],
        ingestion_parameters=ingestion_params,
    ),
)

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

Reference:SearchIndexClient

### Create an indexed Azure SQL knowledge source
PUT {{search-url}}/knowledgesources/indexedsqlks?api-version=2026-05-01-preview
api-key: {{api-key}}
Content-Type: application/json

{
  "name": "indexedsqlks",
  "kind": "indexedSql",
  "description": "Indexed Azure SQL knowledge source.",
  "indexedSqlParameters": {
    "connectionString": "Server=tcp:{server}.database.windows.net,1433;Database={db};...;",
    "tableOrView": "dbo.tbl_hotels",
    "contentColumns": [
      { "name": "hotelName", "sourceField": "HotelName", "searchFieldType": "Edm.String" },
      { "name": "description", "sourceField": "Description", "searchFieldType": "Edm.String" }
    ],
    "embeddingColumns": [
      { "name": "descriptionVector", "sourceField": "Description" }
    ],
    "ingestionParameters": {
      "contentExtractionMode": "minimal",
      "embeddingModel": {
        "kind": "azureOpenAI",
        "azureOpenAIParameters": {
          "resourceUri": "{{aoai-endpoint}}",
          "deploymentId": "{{aoai-embedding-deployment}}",
          "modelName": "{{aoai-embedding-model}}",
          "apiKey": "{{aoai-key}}"
        }
      }
    }
  }
}

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

indexedSqlParametersを使用して、取り込む SQL テーブルまたはビューを識別し、生成されたインデックスのフィールドになる列マッピングを定義します。 ビューでは、変更検出に使用する高水位マーク列を指定します。

列マッピング

contentColumnsを使用して、生成された Azure AI 検索 インデックス内の検索可能なフィールドに SQL テキスト列をマップします。 各コンテンツ列マッピングには、ターゲット インデックス フィールド、ソース SQL 列、およびAzure AI 検索 フィールドの種類の名前が付けられます。 contentColumns では Edm.String を使用します。

埋め込みマッピング

embeddingColumnsを使用して、生成されたベクター フィールドに SQL テキスト列をマップします。 埋め込み列を使用する場合は、 ingestionParameters で埋め込みモデルを指定します。

インデックス付きAzure SQLナレッジ ソースの場合、SQL インジェストは行ベースであり、バイナリ ドキュメントからコンテンツを抽出しないため、contentExtractionMode"minimal"する必要があります。 画像の抽出と画像の言語化はサポートされていないため、 chatCompletionModelassetStoreaiServices、および画像関連の設定は無効です。

既定値設定ルールと検証ルール

インデックス付きAzure SQLナレッジ ソースを作成する場合、次の既定値が適用されます。

  • contentColumnsを省略すると、Edm.Stringname等しい 1 対 1 のマッピングを使用して、テキストとして安全に表すことができる SQL 列が、生成されたインデックス内のsourceFieldフィールドに自動的にマップされます。

  • embeddingColumnsを省略した場合、サービスはベクター フィールドを作成せず、埋め込みスキルを構成しません。

  • embeddingColumnscontentColumnsに依存しません。 ベクターを取得可能なテキストに対応させるために、両方の配列に同じ SQL 列を含めます。

  • ソース テーブルまたはビューの主キーが自動検出されます。 明示的なオーバーライドはサポートされておらず、ソースには単一値の主キーが必要です。

インジェストの状態を確認する

インデクサー パイプラインを生成して検索インデックスを作成するナレッジ ソースにおいて、ナレッジ ソースの種類や詳細なインデックス作成エラーを含む、インジェストの進捗と健全性を監視するために、次のコードを実行します。

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

Note

ドキュメント レベルのエラーの詳細を含む kind プロパティと currentSynchronizationState.errors[] 配列は、2026-04-01 API バージョン以降で使用できます。 以前のバージョンの API では、これらのフィールドは返されません。 lastSynchronizationState.status フィールドは、2026-04-01 でも新しく追加されています。

生成されたオブジェクトを確認する

このナレッジ ソースを作成すると、Azure AI 検索はデータ ソース、スキルセット、インデクサー、およびインデックスを自動的に生成します。 作成応答では、 createdResourcesの下の各オブジェクトが一覧表示されます。

これらのオブジェクトは固定テンプレートに従って生成され、その名前はナレッジ ソースの名前に基づいています。 オブジェクト名は変更できません。 変更によってインデクサー パイプラインを中断するエラーや非互換性が発生する可能性があるので、これらのオブジェクトを直接編集することは避けてください。

Azure ポータルを使用して、オブジェクトの作成を検証できます。 ワークフローは次のとおりです。

  1. インデクサーで成功または失敗のメッセージを確認します。 接続エラーまたはクォータ エラーがここに表示されます。

  2. データ ソースを調べて、データ ストアへの接続を確認します。 接続では、ナレッジ ソースの構成方法に応じて、接続文字列またはマネージド ID が使用されます。

  3. スキルセットを調べて、コンテンツがどのようにチャンクされ、必要に応じてベクター化されているかを確認します。

  4. 検索可能なフィールドやフィルター可能なフィールド、類似性検索用のベクターを格納するフィールドなど、コンテンツのインデックス付けと取得用の公開方法を確認するには、インデックスを確認します。 Search Explorer を使用して、生成されたインデックスに対してクエリを実行します。

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

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

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

ナレッジ ベースが構成されたら、 取得アクションまたは MCP エンドポイントを呼び出 してナレッジ ソースにクエリを実行します。

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

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

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

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

  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
    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}}
    

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