Databricksは基礎モデルにクエリを送る複数の方法を提供しています。 プロバイダーに依存しないAPIが必要か、プロバイダー固有の機能、またはバッチ推論が必要かに基づいてインターフェースを選択してください。
モデルをクエリする方法
| Approach | いつ使用するか |
|---|---|
| 統一API | OpenResponsesやOpenAIチャットコンプリートに対応したインターフェースを使用してください。 Databricksは各リクエストをダウンストリームモデルのネイティブ形式に変換するため、クライアントコードを変えずにプロバイダー間でモデルを切り替えることができます。 |
| プロバイダーネイティブAPI | プロバイダー固有の機能や既存のOpenAI、Anthropic、Google SDKコードを使用してください。 |
ai_query |
SQLやPythonからバッチ推論を実行してください。 |
クイック スタート
モデルサービスを2段階でクエリします:
ステップ1:モデルを選ぶ
Azure Databricksはclaude-sonnet-4-5やgpt-5-6-solなどの標準モデルを提供しています。 Azure Databricks提供されたモデルはUnity Catalogのsystem.aiに登録されています。
ステップ2:統一されたOpenAI互換APIを使ってリクエストを送信する
OpenAI Python SDKと共にMLflowチャット完了APIを活用してください:
from openai import OpenAI
import os
DATABRICKS_TOKEN = os.environ.get('DATABRICKS_TOKEN')
client = OpenAI(
api_key=DATABRICKS_TOKEN, # your personal access token
base_url="https://<workspace-url>/ai-gateway/mlflow/v1" # your Databricks workspace instance
)
chat_completion = client.chat.completions.create(
messages=[
{"role": "user", "content": "What is Databricks?"},
],
model="system.ai.claude-sonnet-4-5",
max_tokens=256
)
print(chat_completion.choices[0].message.content)
Requirements
- Unity Gateway対応リージョン内のAzure Databricksワークスペース。
- ワークスペースに対して有効になっている Unity カタログ。 「Unity Catalog のワークスペースを有効にする」を参照してください。
- ワークスペースのアクセス権に関するクエリ: ワークスペースアクセスまたはコンシューマーアクセス。 「エンタイトルメントを管理する」を参照してください。
統合 API を使用してモデル サービスにクエリを実行する
統合 API は、Azure Databricks 上のモデルに対してクエリを実行するための OpenAI 互換インターフェイスを提供します。 統合 API を使用すると、コードを変更することなく、異なるプロバイダーのモデルをシームレスに切り替えることができます。
統一応答API
統合レスポンスAPI
Unified Responses API(/mlflow/v1/responses)は、Azure Databricks上のモデルをクエリするための、OpenResponses互換かつプロバイダーに依存しないAPIです。 DatabricksはMLflow Chat Completions APIよりもこれを推奨しています。 コードを変えずに、プロバイダーをまたいで用途に最適なモデルを選びましょう。
Python
from openai import OpenAI
import os
DATABRICKS_TOKEN = os.environ.get('DATABRICKS_TOKEN')
client = OpenAI(
api_key=DATABRICKS_TOKEN,
base_url="https://<workspace-url>/ai-gateway/mlflow/v1"
)
response = client.responses.create(
model="<model-service>",
input=[{"role": "user", "content": "What is Databricks?"}]
)
print(response.output_text)
REST API
curl \
-u token:$DATABRICKS_TOKEN \
-X POST \
-H "Content-Type: application/json" \
-d '{
"model": "<model-service>",
"input": [
{"role": "user", "content": "What is Databricks?"}
]
}' \
https://<workspace-url>/ai-gateway/mlflow/v1/responses
<workspace-url>をAzure Databricksワークスペースの URL に置き換え、<model-service>をモデル サービスの完全修飾名に置き換えます。
MLflowチャット補完API
MLflow チャット出力候補 API
Python
from openai import OpenAI
import os
DATABRICKS_TOKEN = os.environ.get('DATABRICKS_TOKEN')
client = OpenAI(
api_key=DATABRICKS_TOKEN,
base_url="https://<workspace-url>/ai-gateway/mlflow/v1"
)
chat_completion = client.chat.completions.create(
messages=[
{"role": "user", "content": "Hello!"},
{"role": "assistant", "content": "Hello! How can I assist you today?"},
{"role": "user", "content": "What is Databricks?"},
],
model="system.ai.gpt-5-6-sol",
max_tokens=256
)
print(chat_completion.choices[0].message.content)
REST API
curl \
-u token:$DATABRICKS_TOKEN \
-X POST \
-H "Content-Type: application/json" \
-d '{
"model": "system.ai.gpt-5-6-sol",
"max_tokens": 256,
"messages": [
{"role": "user", "content": "Hello!"},
{"role": "assistant", "content": "Hello! How can I assist you today?"},
{"role": "user", "content": "What is Databricks?"}
]
}' \
https://<workspace-url>/ai-gateway/mlflow/v1/chat/completions
<workspace-url>をAzure Databricksワークスペースの URL に置き換えます。
MLflow Embeddings API
MLflow Embeddings API
Python
from openai import OpenAI
import os
DATABRICKS_TOKEN = os.environ.get('DATABRICKS_TOKEN')
client = OpenAI(
api_key=DATABRICKS_TOKEN,
base_url="https://<workspace-url>/ai-gateway/mlflow/v1"
)
embeddings = client.embeddings.create(
input="What is Databricks?",
model="<model-service>"
)
print(embeddings.data[0].embedding)
REST API
curl \
-u token:$DATABRICKS_TOKEN \
-X POST \
-H "Content-Type: application/json" \
-d '{
"model": "<model-service>",
"input": "What is Databricks?"
}' \
https://<workspace-url>/ai-gateway/mlflow/v1/embeddings
<workspace-url>をAzure Databricksワークスペースの URL に置き換え、<model-service>をモデル サービスの完全修飾名に置き換えます。
を使用してモデル サービスにクエリを実行する ai_query
ai_query関数を使って、SQLやPythonから直接モデルサービスをクエリできます。 これにより、バッチ推論ワークロードの 使用状況追跡 情報をキャプチャできます。
ai_queryを持つモデルサービスにクエリするには、モデルサービスに対してai_queryを実行します。
SELECT ai_query(
'system.ai.claude-sonnet-4-5',
'Summarize the following text: ' || text_column
) AS summary
FROM my_table
LIMIT 10
使用追跡システムテーブル(system.ai_gateway.usage)は、サービスをモデル化するためにai_queryを通じて行われたリクエストをキャプチャします。 これらの要求は 、組み込みの使用状況ダッシュボードにも表示されます。
完全な ai_query 構文とパラメーターリファレンスについては、 ai_query 関数を参照してください。 ベスト プラクティスとサポートされているモデルについては、「ai_queryの使用」を参照してください。
Limitations
-
ai_queryUnity GatewayのサポートはAzure Databricksが提供するモデルのみで利用可能です。system.aiモデルサービス名(例:system.ai.claude-sonnet-4-5やsystem.ai.gpt-5-6-sol)を渡します。 Unity Gatewayで作成したモデルサービスはまだサポートされていません。 -
使用状況の追跡は、
ai_queryバッチ推論ワークロードにのみ適用されます。 レート制限、 サービスポリシーで実装されたガードレール、推論テーブル、フォールバックなどの他のUnity Gateway機能は適用されません。
ネイティブAPIを用いたクエリモデルサービス
ネイティブAPIは、Azure Databricks上のクエリモデルに対してプロバイダー固有のインターフェースを提供します。 ネイティブ API を使用して、プロバイダー固有の最新の機能にアクセスします。
各ネイティブ API は、基になるモデルが一致する API 形式を使用するモデル サービスでのみ機能します。
- OpenAI Responses API を使用して、OpenAI (GPT) モデルによってサポートされるモデル サービスにクエリを実行します。
- Anthropic Messages API を使用して、Claude モデルによってサポートされるモデル サービスにクエリを実行します。
- Google Gemini API を使用して、Gemini モデルに基づくモデル サービスにクエリを実行します。
基になるモデルに関係なくモデル サービスに対してクエリを実行するには、代わりに 統合 API を 使用します。