データ ソース - Azure AI 検索

Azure OpenAI On Your Data を使用する場合の Azure AI Search の構成可能なオプション。 このデータ ソースは API バージョン 2024-02-01 でサポートされています。

名前 タイプ 必須 説明
parameters パラメーター True Azure Search を構成するときに使用するパラメーター。
type string True azure_searchである必要があります。

パラメーター

件名 タイプ 必須 Description
endpoint string True 使用する Azure Search リソースの絶対エンドポイント パス。
index_name string True 参照先の Azure Search リソースで使用するインデックスの名前。
authentication ApiKeyAuthenticationOptionsSystemAssignedManagedIdentityAuthenticationOptionsUserAssignedManagedIdentityAuthenticationOptionsonYourDataAccessTokenAuthenticationOptions のいずれか True 定義されたデータ ソースにアクセスするときに使用する認証方法。
embedding_dependency DeploymentNameVectorizationSourceEndpointVectorizationSource のいずれか False ベクトル検索の埋め込み依存関係。 query_typevectorvector_simple_hybridvector_semantic_hybrid のいずれかの場合に必要です。
fields_mapping FieldsMappingOptions False 検索インデックスを操作するときに使用するカスタマイズされたフィールド マッピング動作。
filter string False 検索フィルター。
in_scope boolean False クエリをインデックス付きデータの使用に制限するかどうか。 既定値は True です。
query_type QueryType False Azure Search で使用するクエリの種類。 既定値は simple です
role_information string False ふるまいに関する指示と、応答の生成時に参照する必要があるコンテキストをモデルに与えます。 アシスタントのパーソナリティを説明し、応答の書式設定方法を伝えることができます。
semantic_configuration string False クエリのセマンティック構成。 query_typesemanticvector_semantic_hybrid のいずれかの場合に必要です。
strictness integer False 検索の関連性フィルター処理の構成された厳密度。 厳密度が高いほど、精度は高くなりますが、回答の再現率は低くなります。 既定値は 3 です。
top_n_documents integer False 構成されたクエリの特徴量に対して構成されている上位のドキュメントの数。 既定値は 5 です。
max_search_queries integer False 書き換えられたクエリの最大数は、1 つのユーザー メッセージに対する検索プロバイダーに送信する必要があります。 指定しないと、送信するクエリの数は自動的に決定されます。
allow_partial_result integer False true を指定した場合、部分的な検索結果の使用が許可され、すべてのクエリが失敗した場合、要求は失敗します。 指定しない場合、または false として指定した場合、検索クエリが失敗すると要求は失敗します。
include_contexts 配列 False 出力コンテキストに含まれるプロパティ。 指定しない場合、既定値の citationsintent が使用されます。 可能な値は citationsintentall_retrieved_documents です。

API キー認証オプション

API キーを使用する場合の Azure OpenAI On Your Data の認証オプション。

名前 タイプ 必須 Description
key string True 認証に使用する API キー。
type string True api_keyである必要があります。

システム割り当てマネージド ID 認証オプション

システム割り当てマネージド ID を使用する場合の Azure OpenAI On Your Data の認証オプション。

名前 タイプ 必須 Description
type string True system_assigned_managed_identityである必要があります。

ユーザー割り当てマネージド ID 認証オプション

ユーザー割り当てマネージド ID を使用する場合の Azure OpenAI On Your Data の認証オプション。

名前 タイプ 必須 Description
managed_identity_resource_id string True 認証に使用するユーザー割り当てマネージド ID のリソース ID。
type string True user_assigned_managed_identityである必要があります。

アクセス トークン認証オプション

アクセス トークンを使用する場合の Azure OpenAI On Your Data の認証オプション。

名前 タイプ 必須 Description
access_token string True 認証に使用するアクセス トークン。
type string True access_tokenである必要があります。

デプロイ名のベクター化ソース

ベクトル検索を適用するときに Azure OpenAI On Your Data で使用されるベクター化ソースの詳細。 このベクター化ソースは、同じ Azure OpenAI リソース内の内部埋め込みモデル デプロイ名に基づきます。 このベクター化ソースにより、Azure OpenAI API キーを使用せずに、Azure OpenAI パブリック ネットワーク アクセスなしでベクトル検索を使用できます。

名前 タイプ 必須 Description
deployment_name string True 同じ Azure OpenAI リソース内の埋め込みモデル デプロイ名。
type string True deployment_nameである必要があります。
dimensions integer False 埋め込みに必要なディメンションの数。 text-embedding-3 以降のモデルでのみサポートされます。

エンドポイント ベクター化ソース

ベクトル検索を適用するときに Azure OpenAI On Your Data で使用されるベクター化ソースの詳細。 このベクター化ソースは、Azure OpenAI 埋め込み API エンドポイントに基づきます。

名前 タイプ 必須 Description
endpoint string True 埋め込みの取得元となるリソース エンドポイント URL を指定します。 https://{YOUR_RESOURCE_NAME}.openai.azure.com/openai/deployments/YOUR_DEPLOYMENT_NAME/embeddings という形式にする必要があります。 api-version クエリ パラメーターは許可されていません。
authentication ApiKeyAuthenticationOptions True 指定したエンドポイントから埋め込みを取得するときに使用する認証オプションを指定します。
type string True endpointである必要があります。
dimensions integer False 埋め込みに必要なディメンションの数。 text-embedding-3 以降のモデルでのみサポートされます。

フィールド マッピング オプション

構成済みの Azure Search リソースを使用する場合のフィールドの処理方法を制御する省略可能な設定。

名前 タイプ 必須 説明
content_fields string[] False コンテンツとして扱う必要があるインデックス フィールドの名前。
vector_fields string[] False ベクトル データを表すフィールドの名前。
content_fields_separator string False コンテンツ フィールドで使用する区切り記号パターン。 既定値は \n です。
filepath_field string False ファイルパスとして使用するインデックス フィールドの名前。
title_field string False タイトルとして使用するインデックス フィールドの名前。
url_field string False URL として使用するインデックス フィールドの名前。

クエリの種類

Azure OpenAI On Your Data として使用するときに実行する必要がある Azure Search 取得クエリの種類。

列挙値 説明
simple 既定の単純なクエリ パーサーを表します。
semantic 高度なセマンティック モデリングのセマンティック クエリ パーサーを表します。
vector 計算されたデータに対するベクトル検索を表します。
vector_simple_hybrid 単純なクエリ戦略とベクター データの組み合わせを表します。
vector_semantic_hybrid セマンティック検索とベクター データ クエリの組み合わせを表します。

前提条件:

  • Azure OpenAI システム割り当てマネージド ID から Azure Search サービスへのロールの割り当てを構成します。 必要なロール: Search Index Data ReaderSearch Service Contributor
  • ユーザーから Azure OpenAI リソースへのロールの割り当てを構成します。 必要なロール: Cognitive Services OpenAI User
  • Az CLI をインストールし、az login を実行します。
  • 環境変数 AzureOpenAIEndpointChatCompletionsDeploymentNameSearchEndpointSearchIndex を定義します。
export AzureOpenAIEndpoint=https://example.openai.azure.com/
export ChatCompletionsDeploymentName=turbo
export SearchEndpoint=https://example.search.windows.net
export SearchIndex=example-index

最新の pip パッケージ openaiazure-identity をインストールします。

import os
from openai import AzureOpenAI
from azure.identity import DefaultAzureCredential, get_bearer_token_provider

endpoint = os.environ.get("AzureOpenAIEndpoint")
deployment = os.environ.get("ChatCompletionsDeploymentName")
search_endpoint = os.environ.get("SearchEndpoint")
search_index = os.environ.get("SearchIndex")

token_provider = get_bearer_token_provider(DefaultAzureCredential(), "https://cognitiveservices.azure.com/.default")

client = AzureOpenAI(
    azure_endpoint=endpoint,
    azure_ad_token_provider=token_provider,
    api_version="2024-02-01",
)

completion = client.chat.completions.create(
    model=deployment,
    messages=[
        {
            "role": "user",
            "content": "Who is DRI?",
        },
    ],
    extra_body={
        "data_sources": [
            {
                "type": "azure_search",
                "parameters": {
                    "endpoint": search_endpoint,
                    "index_name": search_index,
                    "authentication": {
                        "type": "system_assigned_managed_identity"
                    }
                }
            }
        ]
    }
)

print(completion.model_dump_json(indent=2))