次の方法で共有


データ ソース - Azure AI 検索

このドキュメントでは、 Microsoft Foundry (クラシック) ポータルを参照します。

🔍 新しいポータルの詳細については、Microsoft Foundry (新しい) ドキュメント を参照してください。

Important

Azure OpenAI On Your Data は非推奨となり、廃止に近づいています。

Microsoft は、Azure OpenAI On Your Data への新しいモデルのオンボードを停止しました。 この機能では、次の GPT-4o モデル バージョンのみがサポートされます。

  • GPT-4o (2024-05-13)
  • GPT-4o (2024-08-06)
  • GPT-4o (2024-11-20)

GPT-4o (2024-11-20) モデルが非推奨になると、すべての Azure OpenAI On Your Data API エンドポイントとサポートされているデータ ソース コネクタが機能しなくなります。

Azure OpenAI On Your Data ワークロードを Foundry IQ を使用して Foundry Agent Service に移行して、コンテンツを取得し、データから根拠のある回答を生成することをお勧めします。 開始するには、 Foundry IQ ナレッジ ベースの接続に関する記事を参照してください。

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

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

パラメーター

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

API キー認証オプション

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

名前 タイプ 必須 説明
key 文字列 正しい 認証に使用する API キー。
type 文字列 正しい api_keyである必要があります。

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

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

名前 タイプ 必須 説明
type 文字列 正しい system_assigned_managed_identityである必要があります。

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

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

名前 タイプ 必須 説明
managed_identity_resource_id 文字列 正しい 認証に使用するユーザー割り当てマネージド ID のリソース ID。
type 文字列 正しい user_assigned_managed_identityである必要があります。

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

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

名前 タイプ 必須 説明
access_token 文字列 正しい 認証に使用するアクセス トークン。
type 文字列 正しい access_tokenである必要があります。

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

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

名前 タイプ 必須 説明
deployment_name 文字列 正しい 同じ Azure OpenAI リソース内の埋め込みモデル デプロイ名。
type 文字列 正しい deployment_nameである必要があります。
dimensions 整数 いいえ 埋め込みに必要なディメンションの数。 text-embedding-3 以降のモデルでのみサポートされます。

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

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

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

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

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

名前 タイプ 必須 説明
content_fields 文字列[] いいえ コンテンツとして扱う必要があるインデックス フィールドの名前。
vector_fields 文字列[] いいえ ベクトル データを表すフィールドの名前。
content_fields_separator 文字列 いいえ コンテンツ フィールドで使用する区切り記号パターン。 既定値は \n です。
filepath_field 文字列 いいえ ファイルパスとして使用するインデックス フィールドの名前。
title_field 文字列 いいえ タイトルとして使用するインデックス フィールドの名前。
url_field 文字列 いいえ 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))