次の方法で共有


データ ソース - Elasticsearch (プレビュー)

Azure OpenAI On Your Data 使用時の Elasticsearch の構成可能オプション。 このデータ ソースは、API バージョンの 2024-02-15-preview以降でサポートされています。

名前 タイプ 必須 説明
parameters パラメーター 正しい Elasticsearch の構成時に使用するパラメーター。
type ひも 正しい elasticsearchである必要があります。

パラメーター

名前 タイプ 必須 説明
endpoint ひも 正しい 使用する Elasticsearch リソースの絶対エンドポイント パス。
index_name ひも 正しい 参照される Elasticsearch で使用するインデックスの名前。
authentication KeyAndKeyIdAuthenticationOptions または EncodedApiKeyAuthenticationOptions 正しい 定義されたデータ ソースにアクセスするときに使用する認証方法。
embedding_dependency DeploymentNameVectorizationSourceEndpointVectorizationSourceModelIdVectorizationSource のいずれか いいえ ベクトル検索の埋め込み依存関係。 query_typevector の場合に必要です。
fields_mapping FieldsMappingOptions いいえ 検索インデックスを操作するときに使用するカスタマイズされたフィールド マッピング動作。
in_scope ブーリアン いいえ クエリをインデックス付きデータの使用に制限するかどうか。 既定値は True です。
query_type QueryType いいえ Elasticsearch で使用するクエリの種類。 既定値は simple です
role_information ひも いいえ ふるまいに関する指示と、応答の生成時に参照する必要があるコンテキストをモデルに与えます。 アシスタントのパーソナリティを説明し、応答の書式設定方法を伝えることができます。
strictness 整数 (integer) いいえ 検索の関連性フィルター処理の構成された厳密度。 厳密度が高いほど、精度は高くなりますが、回答の再現率は低くなります。 既定値は 3 です。
top_n_documents 整数 (integer) いいえ 構成されたクエリの特徴量に対して構成されている上位のドキュメントの数。 既定値は 5 です。

認証オプション

Azure OpenAI On Your Data では、複数の認証の種類がサポートされています。

キーとキー ID の認証オプション

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

名前 タイプ 必須 説明
key ひも 正しい 認証に使用する Elasticsearch キー。
key_id ひも 正しい 認証に使用する Elasticsearch キー ID。
type ひも 正しい key_and_key_idである必要があります。

エンコードされた API キー認証オプション

Elasticsearch でエンコードされた API キーを使用する場合の Azure OpenAI On Your Data の認証オプション。

名前 タイプ 必須 説明
encoded_api_key ひも 正しい 認証に使用する Elasticsearch でエンコードされた API キー。
type ひも 正しい encoded_api_keyである必要があります。

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

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

名前 タイプ 必須 説明
deployment_name ひも 正しい 同じ Azure OpenAI リソース内の埋め込みモデル デプロイ名。
type ひも 正しい deployment_nameである必要があります。

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

ベクトル検索を適用するときに 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である必要があります。

API キー認証オプション

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

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

モデル ID ベクター化ソース

ベクトル検索を適用するときに Azure OpenAI On Your Data で使用されるベクター化ソースの詳細。 このベクター化ソースは、Elasticsearch モデル ID に基づいています。

名前 タイプ 必須 説明
model_id ひも 正しい ベクター化に使用するモデル ID を指定します。 このモデル ID は Elasticsearch に定義する必要があります。
type ひも 正しい model_idである必要があります。

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

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

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

クエリの種類

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

列挙値 説明
simple 既定の単純なクエリ パーサーを表します。
vector 計算されたデータに対するベクトル検索を表します。

前提条件:

  • ユーザーから Azure OpenAI リソースへのロールの割り当てを構成します。 必要なロール: Cognitive Services OpenAI User
  • Az CLI をインストールし、az login を実行します。
  • 環境変数 AzureOpenAIEndpointChatCompletionsDeploymentNameSearchEndpointIndexNameKeyKeyId を定義します。
export AzureOpenAIEndpoint=https://example.openai.azure.com/
export ChatCompletionsDeploymentName=turbo
export SearchEndpoint='https://example.eastus.azurecontainer.io'
export IndexName=testindex
export Key='***'
export KeyId='***'

最新の 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")
index_name = os.environ.get("IndexName")
search_endpoint = os.environ.get("SearchEndpoint")
key = os.environ.get("Key")
key_id = os.environ.get("KeyId")

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-15-preview",
)

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

print(completion.model_dump_json(indent=2))