データ ソース - Azure AI 検索
Azure OpenAI On Your Data を使用する場合の Azure AI Search の構成可能なオプション。 このデータ ソースは API バージョン 2024-02-01
でサポートされています。
名前 | タイプ | Required | 説明 |
---|---|---|---|
parameters |
パラメーター | True | Azure Search を構成するときに使用するパラメーター。 |
type |
string | True | azure_search である必要があります。 |
パラメーター
件名 | タイプ | Required | Description |
---|---|---|---|
endpoint |
string | True | 使用する Azure Search リソースの絶対エンドポイント パス。 |
index_name |
string | True | 参照先の Azure Search リソースで使用するインデックスの名前。 |
authentication |
ApiKeyAuthenticationOptions、SystemAssignedManagedIdentityAuthenticationOptions、UserAssignedManagedIdentityAuthenticationOptions、onYourDataAccessTokenAuthenticationOptions のいずれか | True | 定義されたデータ ソースにアクセスするときに使用する認証方法。 |
embedding_dependency |
DeploymentNameVectorizationSource、EndpointVectorizationSource のいずれか | False | ベクトル検索の埋め込み依存関係。 query_type が vector 、vector_simple_hybrid 、vector_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_type が semantic 、vector_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 | 出力コンテキストに含まれるプロパティ。 指定しない場合、既定値の citations と intent が使用されます。 可能な値は citations 、intent 、all_retrieved_documents です。 |
API キー認証オプション
API キーを使用する場合の Azure OpenAI On Your Data の認証オプション。
名前 | タイプ | Required | Description |
---|---|---|---|
key |
string | True | 認証に使用する API キー。 |
type |
string | True | api_key である必要があります。 |
システム割り当てマネージド ID 認証オプション
システム割り当てマネージド ID を使用する場合の Azure OpenAI On Your Data の認証オプション。
名前 | タイプ | Required | Description |
---|---|---|---|
type |
string | True | system_assigned_managed_identity である必要があります。 |
ユーザー割り当てマネージド ID 認証オプション
ユーザー割り当てマネージド ID を使用する場合の Azure OpenAI On Your Data の認証オプション。
名前 | タイプ | Required | Description |
---|---|---|---|
managed_identity_resource_id |
string | True | 認証に使用するユーザー割り当てマネージド ID のリソース ID。 |
type |
string | True | user_assigned_managed_identity である必要があります。 |
アクセス トークン認証オプション
アクセス トークンを使用する場合の Azure OpenAI On Your Data の認証オプション。
名前 | タイプ | Required | Description |
---|---|---|---|
access_token |
string | True | 認証に使用するアクセス トークン。 |
type |
string | True | access_token である必要があります。 |
デプロイ名のベクター化ソース
ベクトル検索を適用するときに 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 である必要があります。 |
dimensions |
integer | False | 埋め込みに必要なディメンションの数。 text-embedding-3 以降のモデルでのみサポートされます。 |
エンドポイント ベクター化ソース
ベクトル検索を適用するときに 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 である必要があります。 |
dimensions |
integer | False | 埋め込みに必要なディメンションの数。 text-embedding-3 以降のモデルでのみサポートされます。 |
フィールド マッピング オプション
構成済みの Azure Search リソースを使用する場合のフィールドの処理方法を制御する省略可能な設定。
名前 | タイプ | 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 として使用するときに実行する必要がある Azure Search 取得クエリの種類。
列挙値 | 説明 |
---|---|
simple |
既定の単純なクエリ パーサーを表します。 |
semantic |
高度なセマンティック モデリングのセマンティック クエリ パーサーを表します。 |
vector |
計算されたデータに対するベクトル検索を表します。 |
vector_simple_hybrid |
単純なクエリ戦略とベクター データの組み合わせを表します。 |
vector_semantic_hybrid |
セマンティック検索とベクター データ クエリの組み合わせを表します。 |
例
前提条件:
- Azure OpenAI システム割り当てマネージド ID から Azure Search サービスへのロールの割り当てを構成します。 必要なロール:
Search Index Data Reader
、Search Service Contributor
。 - ユーザーから Azure OpenAI リソースへのロールの割り当てを構成します。 必要なロール:
Cognitive Services OpenAI User
。 - Az CLI をインストールし、
az login
を実行します。 - 環境変数
AzureOpenAIEndpoint
、ChatCompletionsDeploymentName
、SearchEndpoint
、SearchIndex
を定義します。
export AzureOpenAIEndpoint=https://example.openai.azure.com/
export ChatCompletionsDeploymentName=turbo
export SearchEndpoint=https://example.search.windows.net
export SearchIndex=example-index
最新の 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")
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))