データ ソース - Elasticsearch (プレビュー)
Azure OpenAI On Your Data 使用時の Elasticsearch の構成可能オプション。 このデータ ソースは API バージョン 2024-02-15-preview
でサポートされています。
名前 | タイプ | Required | 説明 |
---|---|---|---|
parameters |
パラメーター | True | Elasticsearch の構成時に使用するパラメーター。 |
type |
string | True | elasticsearch である必要があります。 |
パラメーター
件名 | タイプ | Required | Description |
---|---|---|---|
endpoint |
string | True | 使用する Elasticsearch リソースの絶対エンドポイント パス。 |
index_name |
string | True | 参照される Elasticsearch で使用するインデックスの名前。 |
authentication |
KeyAndKeyIdAuthenticationOptions または EncodedApiKeyAuthenticationOptions | True | 定義されたデータ ソースにアクセスするときに使用する認証方法。 |
embedding_dependency |
DeploymentNameVectorizationSource、EndpointVectorizationSource、ModelIdVectorizationSource のいずれか | False | ベクトル検索の埋め込み依存関係。 query_type が vector の場合に必要です。 |
fields_mapping |
FieldsMappingOptions | False | 検索インデックスを操作するときに使用するカスタマイズされたフィールド マッピング動作。 |
in_scope |
boolean | False | クエリをインデックス付きデータの使用に制限するかどうか。 既定値は True です。 |
query_type |
QueryType | False | Elasticsearch で使用するクエリの種類。 既定値は simple です |
role_information |
string | False | ふるまいに関する指示と、応答の生成時に参照する必要があるコンテキストをモデルに与えます。 アシスタントのパーソナリティを説明し、応答の書式設定方法を伝えることができます。 |
strictness |
integer | False | 検索の関連性フィルター処理の構成された厳密度。 厳密度が高いほど、精度は高くなりますが、回答の再現率は低くなります。 既定値は 3 です。 |
top_n_documents |
integer | False | 構成されたクエリの特徴量に対して構成されている上位のドキュメントの数。 既定値は 5 です。 |
キーとキー ID の認証オプション
API キーを使用する場合の Azure OpenAI On Your Data の認証オプション。
名前 | タイプ | Required | Description |
---|---|---|---|
key |
string | True | 認証に使用する Elasticsearch キー。 |
key_id |
string | True | 認証に使用する Elasticsearch キー ID。 |
type |
string | True | key_and_key_id である必要があります。 |
エンコードされた API キー認証オプション
Elasticsearch でエンコードされた API キーを使用する場合の Azure OpenAI On Your Data の認証オプション。
名前 | タイプ | Required | Description |
---|---|---|---|
encoded_api_key |
string | True | 認証に使用する Elasticsearch でエンコードされた API キー。 |
type |
string | True | encoded_api_key である必要があります。 |
デプロイ名のベクター化ソース
ベクトル検索を適用するときに Azure OpenAI On Your Data で使用されるベクター化ソースの詳細。 このベクター化ソースは、同じ Azure OpenAI リソース内の内部埋め込みモデル デプロイ名に基づきます。 このベクター化ソースにより、Azure OpenAI API キーを使用せずに、Azure OpenAI パブリック ネットワーク アクセスなしでベクトル検索を使用できます。
名前 | タイプ | Required | Description |
---|---|---|---|
deployment_name |
string | True | 同じ Azure OpenAI リソース内の埋め込みモデル デプロイ名。 |
type |
string | True | deployment_name である必要があります。 |
エンドポイント ベクター化ソース
ベクトル検索を適用するときに Azure OpenAI On Your Data で使用されるベクター化ソースの詳細。 このベクター化ソースは、Azure OpenAI 埋め込み API エンドポイントに基づきます。
名前 | タイプ | Required | 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 である必要があります。 |
モデル ID ベクター化ソース
ベクトル検索を適用するときに Azure OpenAI On Your Data で使用されるベクター化ソースの詳細。 このベクター化ソースは、Elasticsearch モデル ID に基づいています。
名前 | タイプ | Required | Description |
---|---|---|---|
model_id |
string | True | ベクター化に使用するモデル ID を指定します。 このモデル ID は Elasticsearch に定義する必要があります。 |
type |
string | True | model_id である必要があります。 |
API キー認証オプション
API キーを使用する場合の Azure OpenAI On Your Data の認証オプション。
名前 | タイプ | Required | Description |
---|---|---|---|
key |
string | True | 認証に使用する API キー。 |
type |
string | True | api_key である必要があります。 |
フィールド マッピング オプション
構成済みの Elasticsearch リソースを使用する場合のフィールドの処理方法を制御する省略可能な設定。
名前 | タイプ | Required | 説明 |
---|---|---|---|
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 と共に使用するときに実行する必要がある Elasticsearch 取得クエリの種類。
列挙値 | 説明 |
---|---|
simple |
既定の単純なクエリ パーサーを表します。 |
vector |
計算されたデータに対するベクトル検索を表します。 |
例
前提条件:
- ユーザーから Azure OpenAI リソースへのロールの割り当てを構成します。 必要なロール:
Cognitive Services OpenAI User
。 - Az CLI をインストールし、
az login
を実行します。 - 環境変数
AzureOpenAIEndpoint
、ChatCompletionsDeploymentName
、SearchEndpoint
、IndexName
、Key
、KeyId
を定義します。
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 パッケージ openai
、azure-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))