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

外部モデルプロバイダー(モデルプロバイダーサービス)に対してクエリーを実行

Unity Gateway 内のモデルプロバイダーサービスを介してモデルにクエリーを実行します。これにより、保存された資格情報が提供され、リクエストが外部プロバイダーにルーティングされるため、呼び出し元がプロバイダーのシークレットを処理する必要がなくなります。

要件​

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

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

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

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

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

マネージドパスにより、各プロバイダーのAPIを安定したUnity Gatewayパスの下で利用できるようになります。Unity Gatewayはリクエストとプロバイダーの間で変換を行い、ガードレールやレート制限などのガバナンスを適用し、使用状況を記録します。これは、モデルプロバイダーサービスに対してクエリーを実行する推奨される方法です。

次の例では、マネージドOpenAIパスを使用して、OpenAIモデルプロバイダーサービス経由でチャット補完を送信します。このリクエストは OpenAI Chat Completions API を使用するため、OpenAI クライアントの接続先を Unity 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(ストリーミング応答でコンテンツを生成)

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

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(ストリーミング応答でコンテンツを生成)

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

リクエストボディ内のモデル(またはGeminiパスセグメント)は、モデルプロバイダーサービスが許可するモデルである必要があります。

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

OpenAIファイルやバッチEndpointなど、マネージドパスがプロバイダーのEndpointをカバーしていない場合は、リクエストをそのままプロバイダーに渡すことができます。Unity Gatewayは/ai-gatewayプレフィックスを削除し、保存された認証情報を付与して、残りのパスをプロバイダーに転送します。

アンマネージドパススルーを有効にするには、UIでモデルプロバイダーサービスを作成または更新するときに、**詳細オプション**の下で**すべてのURLパスを転送**を選択します。

注記

使用トークンとコストの追跡、トークンベースのレート制限、モデルアクセス制御、およびサービスポリシーは、パススルーリクエストには適用されません。

パススルーを有効にした後、/ai-gatewayの下でプロバイダーのネイティブパスを呼び出します。たとえば、OpenAIファイルEndpoint上のファイルを一覧表示します。

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

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

By default, Unity Gatewayはクライアントのリクエストヘッダーやクエリーパラメーターをアップストリームプロバイダーに転送しません。2つのサービス構成フラグによってこれが変更され、それらはマネージド型と非マネージド型の両方のパスに適用されます:

  • forward_headers:true の場合、Unity Gateway はクライアントのリクエストヘッダーをプロバイダーに転送します。Unity Gatewayが自動的に設定しないヘッダー(OpenAI-Organizationなど)をプロバイダーが要求する場合は、これを有効にします。
  • forward_query_parameters: trueの場合、Unity Gatewayはクライアントのクエリーパラメーターをプロバイダーに転送します。

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

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 } }'

次のステップ​