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