モデルサービスを使用
ベータ版
この機能はベータ版です。アカウント管理者は、アカウント コンソールの [プレビュー] ページからこの機能へのアクセスを制御できます。 Databricksのプレビューを管理するを参照してください。
この記事では、基盤モデルのクエリリクエストを作成し、Unity AI Gatewayのモデルサービスに送信するためのオプションについて説明します。
Unity AI Gateway は、統一された OpenAI 互換 API を介してモデルサービスを公開しているため、プロバイダー間で Databricks ホストの基盤モデルをエクスペリメントおよびカスタマイズできます。モデルスラッグとして完全修飾名でモデルサービスを識別し (例: system.ai.claude-opus-4-6)、ワークスペースの Unity AI Gateway ベース URL (https://<workspace-url>/ai-gateway/mlflow/v1) にリクエストを送信します。
この記事の例は、モデルサービスにクエリを実行します。下位互換性のため、Databricksは、databricks-claude-opus-4-6のような完全修飾名のないDatabricksホスト型モデル名を、システム提供のモデルサービスsystem.ai.claude-opus-4-6として解釈します。この動作により、既存のワークロードはコード変更なしで引き続き実行できます。
クエリ オプション
Unity AI Gatewayは、基盤モデルを提供するモデルサービスにクエリリクエストを送信するための以下のオプションを提供します。
手法 | 詳細 |
|---|---|
OpenAIクライアント | OpenAI クライアントを使用してモデルサービスをクエリします。モデルサービスの完全修飾名(例: |
REST API | REST API を使用してモデルサービスを呼び出し、クエリを実行します。ワークスペースの Unity AI Gateway ベース URL である |
Databricks Python SDK | Databricks Python SDK は REST API の上のレイヤーです。認証などの低レベルの詳細を処理するため、モデルとの対話が容易になります。 |
ベータ期間中、ai_query SQL 関数を使用してモデルサービスをクエリすることはできません。OpenAIクライアントまたはREST APIを使用して、モデルサービスをクエリします。
要件
EXECUTEモデルサービスで、そしてそのカタログとスキーマでUSE CATALOGおよびUSE SCHEMAを。system.aiのシステム提供のモデルサービスは、デフォルトですべてのアカウントユーザーにEXECUTEを付与します。サービスが参照するモデルへのアクセスは必要ありません。Databricks は、モデルサービス オーナー がそれらに対してEXECUTEを持っていることを確認します。- クエリするモデルサービス。カスタムモデルサービスを作成するには、カスタムモデルサービスを作成するを参照してください。
- Unity AI Gateway がサポートされているリージョンにあるDatabricksワークスペース。
- OpenAIクライアントまたはREST APIを介してスコアリングリクエストを送信するには、Databricks APIトークンが必要です。
パッケージのインストール
クエリ方法を選択したら、まず適切なパッケージをクラスターにインストールする必要があります。
- OpenAI client
- REST API
- Databricks Python SDK
OpenAI クライアントを使用するには、databricks-openaiパッケージをクラスターにインストールする必要があります。このパッケージは、生成AI モデルをクエリするために認証が自動的に構成された OpenAI クライアントを提供します。ノートブックまたはローカルターミナルで以下を実行します:
pip install -U databricks-openai
以下は、Databricks ノートブックにパッケージをインストールする場合にのみ必要です。
dbutils.library.restartPython()
Serving REST API へのアクセスは、Databricks機械学習ランタイムで使用できます。
Databricks Runtime 13.3 LTS以降を使用するすべての Databricksクラスターには、Databricks SDK for Python が既にインストールされています。Databricks Runtime12.2 LTS 以前を使用するDatabricksクラスターの場合は、最初にDatabricks SDK for Python をインストールする必要があります。Databricks SDK for Pythonを参照してください。
構造化された出力
構造化出力は OpenAI と互換性があり、Unity AI Gateway の一部として、モデルサービング中にのみ使用できます。詳細については、「Databricks の構造化出力」を参照してください。
プロンプトのキャッシュ
プロンプトキャッシングは、Unity AI Gateway の一部として、Databricks ホスト型 Claude モデルでサポートされています。
クエリリクエストでcache_controlパラメーターを指定して、以下をキャッシュできます:
messages.content配列内のテキストコンテンツメッセージ。messages.content配列内のメッセージコンテンツを検討する。messages.content配列内の画像コンテンツブロック。tools配列内のツール使用、結果、定義。
- TextContent
- ReasonContent
- ImageContent
- ToolCallContent
{
"messages": [
{
"role": "user",
"content": [
{
"type": "text",
"text": "What's the date today?",
"cache_control": { "type": "ephemeral" }
}
]
}
]
}
{
"messages": [
{
"role": "assistant",
"content": [
{
"type": "reasoning",
"summary": [
{
"type": "summary_text",
"text": "Thinking...",
"signature": "[optional]"
},
{
"type": "summary_encrypted_text",
"data": "[encrypted text]"
}
]
}
]
}
]
}
画像メッセージの内容は、エンコードされたデータをソースとして使用する必要があります。URLはサポートされていません。
{
"messages": [
{
"role": "user",
"content": [
{
"type": "text",
"text": "What’s in this image?"
},
{
"type": "image_url",
"image_url": {
"url": "data:image/jpeg;base64,[content]"
},
"cache_control": { "type": "ephemeral" }
}
]
}
]
}
{
"messages": [
{
"role": "assistant",
"content": "Ok, let’s get the weather in New York.",
"tool_calls": [
{
"type": "function",
"id": "123",
"function": {
"name": "get_weather",
"arguments": "{\"location\":\"New York, NY\"}"
},
"cache_control": { "type": "ephemeral" }
}
]
}
]
}
Databricks REST API は OpenAI と互換性があり、Anthropic API とは異なります。これらの違いは、次のような応答オブジェクトにも影響します:
- 出力は
choicesフィールドに返されます。 - ストリーミングチャンク形式。すべてのチャンクは、
choicesに応答deltaが含まれ、使用状況がすべてのチャンクで返される同じ形式に準拠しています。 - 停止理由は
finish_reasonフィールドで返されます。- Anthropic で使用されるもの:
end_turn、stop_sequence、max_tokens、およびtool_use - それぞれ、Databricks は以下を使用します:
stop、stop、length、およびtool_calls
- Anthropic で使用されるもの:
AI Playground を使用して、サポートされている LLM とチャットする
AI Playgroundを使用して、サポートされている大規模言語モデルと対話できます。AI Playgroundは、DatabricksワークスペースからLLMをテスト、プロンプト、比較できるチャットのような環境です。
