メインコンテンツまでスキップ

モデルプロバイダーサービスのクエリ

備考

ベータ版

この機能はベータ版です。アカウント管理者は、アカウントコンソールの プレビュー ページからこの機能へのアクセスを管理できます。Databricksのプレビューを管理するを参照してください。

このページでは、Unity AI Gatewayを介してモデルプロバイダーサービスをクエリする方法について説明します。Unity AI Gatewayは保存された認証情報を供給し、外部プロバイダーにリクエストをルーティングするため、呼び出し元はプロバイダーシークレットを処理しません。

要件

モデルプロバイダーサービスを特定する。

リクエストには、Databricks-Model-Provider-Serviceヘッダーをサービスの3部構成の名前に設定したモデルプロバイダーサービスを選択します。

Text
Databricks-Model-Provider-Service: main.default.openai_prod

プロバイダーの資格情報ではなく、Databricksトークンで認証してください。ベースURLはワークスペースのURLの後に/ai-gatewayが続きます。

サポートされているAPIsをクエリする

マネージドパスにより、各プロバイダーのAPIが安定したUnity AIゲートウェイパスで利用可能になります。Unity AIゲートウェイは、リクエストとプロバイダー間で翻訳を行い、ガードレールやレート制限などのガバナンスを適用し、使用状況を記録します。これは、モデルプロバイダーサービスにクエリを実行するための推奨される方法です。

以下の例では、マネージドOpenAIパスを使用して、OpenAIモデルプロバイダーサービスを介してチャット完了を送信します。リクエストはOpenAI Chat Completions APIを使用するため、OpenAIクライアントをUnity AI GatewayベースURLにポイントできます。

Python
from openai import OpenAI

client = OpenAI(
api_key="<databricks-token>",
base_url="https://<workspace-url>/ai-gateway/openai/v1",
default_headers={&quot;Databricks-Model-Provider-Service&quot;: &quot;main.default.openai_prod&quot;},
)

response = client.chat.completions.create(
model="gpt-4o-mini",
messages=[{"role": "user", "content": "Say hello in exactly 3 words."}],
)
print(response.choices[0].message.content)

呼び出す管理パスは、プロバイダーのAPIによって異なります:

Provider API

マネージドパス

OpenAI(Chat Completions)

/ai-gateway/openai/v1/chat/completions

OpenAI(レスポンス)

/ai-gateway/openai/v1/responses

OpenAI(エンべディング)

/ai-gateway/openai/v1/embeddings

Anthropic(Messages)

/ai-gateway/anthropic/v1/messages

Gemini(コンテンツ生成)

/ai-gateway/gemini/v1beta/models/<model>:generateContent

リクエスト本文 (またはGeminiパスセグメント) 内のモデルは、モデルプロバイダーサービスが許可するモデルである必要があります。allow_all_targetstargetsについては、モデルプロバイダーサービスを作成および管理するをご覧ください。

他のAPIsをクエリ(パススルー)

マネージドパスがプロバイダーのエンドポイントをカバーしていない場合、たとえば、OpenAIのファイルまたはバッチエンドポイントのように、リクエストを変更せずにプロバイダーに渡すことができます。Unity AI Gatewayは、/ai-gatewayプレフィックスを削除し、保存された認証情報をアタッチして、残りのパスをプロバイダーに転送します。

アンマネージドパススルーはデフォルトでオフになっています。サービス構成でforward_unmanaged_pathstrueに設定して、モデルプロバイダーサービスで有効にします:

Bash
curl https://<workspace-url>/api/2.1/unity-catalog/model-provider-services/main.default.openai_prod \
-X PATCH \
-H "Authorization: Bearer $DATABRICKS_TOKEN" \
-H "Content-Type: application/json" \
-G \
--data-urlencode "update_mask=config.forward_unmanaged_paths" \
--data '{ "config": { "forward_unmanaged_paths": true } }'

パススルーを有効にした後、プロバイダーのネイティブパスを/ai-gatewayで呼び出します:

Bash
curl https://<workspace-url>/ai-gateway/v1/files \
-H "Authorization: Bearer $DATABRICKS_TOKEN" \
-H "Databricks-Model-Provider-Service: main.default.openai_prod"

ヘッダーとクエリパラメーターの転送

デフォルトでは、Unity AI Gatewayはクライアントのリクエストヘッダーまたはクエリパラメーターをアップストリームプロバイダーに渡しません。2つのサービス構成フラグがこれを変更し、それらはマネージドパスとアンマネージドパスの両方に適用されます。

  • forward_headers trueの場合、Unity AI Gatewayはクライアントのリクエストヘッダーをプロバイダーに転送します。Unity AI Gatewayがお客様に代わって設定しないヘッダーがプロバイダーによって要求される場合に、これを有効にします(例: OpenAI-Organization)。
  • forward_query_parameters trueの場合、Unity AIゲートウェイはクライアントのクエリパラメーターをプロバイダーに転送します。

それらを他の構成フィールドと同様にモデルプロバイダーサービスで設定します:

Bash
curl https://<workspace-url>/api/2.1/unity-catalog/model-provider-services/main.default.openai_prod \
-X PATCH \
-H "Authorization: Bearer $DATABRICKS_TOKEN" \
-H "Content-Type: application/json" \
-G \
--data-urlencode "update_mask=config.forward_headers,config.forward_query_parameters" \
--data '{ "config": { "forward_headers": true, "forward_query_parameters": true } }'

使用状況の追跡のためにリクエストにタグを付ける

カスタムのキーと値のタグを Databricks-Ai-Gateway-Request-Tags HTTPヘッダーを使用して個々のリクエストにアタッチできます。Unity AI Gateway は、リクエストタグを使用状況追跡システムテーブルと推論テーブルの両方のrequest_tagsカラムに記録します。その後、コストを追跡し、使用状況をアトリビュートし、アナリティクスをプロジェクト、チーム、環境、または別のディメンションでフィルタリングできます。

ヘッダー値は、文字列のキーを文字列の値にマッピングするJSONオブジェクトである必要があります。例えば:

JSON
{ "project": "chatbot", "team": "ml-platform", "environment": "production" }

Databricks-Model-Provider-Serviceヘッダーと共にタグヘッダーを送信します。extra_headersパラメーター(Python)を使用するか、ヘッダーを直接渡します(REST API)。

Python
from openai import OpenAI
import json

client = OpenAI(
api_key="<databricks-token>",
base_url="https://<workspace-url>/ai-gateway/openai/v1",
default_headers={&quot;Databricks-Model-Provider-Service&quot;: &quot;main.default.openai_prod&quot;},
)

request_tags = {"project": "chatbot", "team": "ml-platform"}

response = client.chat.completions.create(
model="gpt-5.5",
messages=[{"role": "user", "content": "What is Databricks?"}],
extra_headers={&quot;Databricks-Ai-Gateway-Request-Tags&quot;: json.dumps(request_tags)},
)

次のステップ