タイプ別に基盤モデルをクエリ
ベータ版
この機能はベータ版です。アカウント管理者は、アカウント コンソールの [プレビュー] ページからこの機能へのアクセスを制御できます。 Databricksのプレビューを管理するを参照してください。
この記事では、Unity AI Gateway の モデルサービス によって提供されるDatabricksホスト型基盤モデル(チャット、ビジョン、音声と動画、推論などのモデルタイプ別に分類)のクエリリクエストの書き方について説明します。
要件
- 要件を参照してください。
- 選択したクエリ クライアント オプションに基づいて、適切なパッケージをクラスターにインストールします。
次の例は、Unity AIゲートウェイとモデルサービスに基づいています。モデルサービスではなくモデルサービングエンドポイントを使用する場合、モデルサービス名をエンドポイント名に置き換えてください。利用可能な基盤モデルのリスト、およびそれらのモデルサービスとエンドポイント名については、基盤モデルを見つけるを参照してください。
チャット
チャットおよび汎用タスク向けに最適化された基盤モデル。
このセクションの例では、さまざまなクライアントオプションを使用して、モデルサービスをクエリする方法を示します。
バッチ推論の例については、 AI関数を使用したデータの拡充を参照してください。
- OpenAI Chat Completions
- OpenAI Responses
- REST API
- Databricks Python SDK
- LangChain
OpenAI クライアントを使用するには、モデルサービス名を model入力として指定します。
from databricks_openai import DatabricksOpenAI
client = DatabricksOpenAI()
response = client.chat.completions.create(
model="system.ai.claude-sonnet-4-5",
messages=[
{
"role": "system",
"content": "You are a helpful assistant."
},
{
"role": "user",
"content": "What is a mixture of experts model?",
}
],
max_tokens=256
)
ワークスペースの外部で基盤モデルをクエリするには、OpenAIクライアントを直接使用する必要があります。OpenAI クライアントを Databricks に接続するには、Databricks ワークスペースインスタンスも必要です。次の例では、Databricks API トークンと、コンピュートに openai がインストールされていることを前提としています。
import os
import openai
from openai import OpenAI
client = OpenAI(
api_key=os.environ.get('DATABRICKS_TOKEN'),
base_url="https://<workspace-url>/ai-gateway/mlflow/v1"
)
response = client.chat.completions.create(
model="system.ai.claude-sonnet-4-5",
messages=[
{
"role": "system",
"content": "You are a helpful assistant."
},
{
"role": "user",
"content": "What is a mixture of experts model?",
}
],
max_tokens=256
)
例として、REST API を使用する場合のチャットモデルの予期されるリクエスト形式は次のとおりです。
{
"messages": [
{
"role": "user",
"content": "What is a mixture of experts model?"
}
],
"max_tokens": 100,
"temperature": 0.1
}
REST API を使用して行われたリクエストの予想される応答形式は次のとおりです:
{
"model": "databricks-claude-sonnet-4-5",
"choices": [
{
"message": {},
"index": 0,
"finish_reason": null
}
],
"usage": {
"prompt_tokens": 7,
"completion_tokens": 74,
"total_tokens": 81
},
"object": "chat.completion",
"id": null,
"created": 1698824353
}
Responses API は OpenAI モデルとのみ互換性があります。
OpenAI Responses API を使用するには、モデルサービス名を model 入力として指定します。
from databricks_openai import DatabricksOpenAI
client = DatabricksOpenAI()
response = client.responses.create(
model="system.ai.gpt-5",
input=[
{
"role": "system",
"content": "You are a helpful assistant."
},
{
"role": "user",
"content": "What is a mixture of experts model?",
}
],
max_output_tokens=256
)
ワークスペースの外部で基盤モデルをクエリするには、OpenAIクライアントを直接使用する必要があります。OpenAI クライアントを Databricks に接続するには、Databricks ワークスペースインスタンスも必要です。次の例では、Databricks API トークンと、コンピュートに openai がインストールされていることを前提としています。
import os
import openai
from openai import OpenAI
client = OpenAI(
api_key=os.environ.get('DATABRICKS_TOKEN'),
base_url="https://<workspace-url>/ai-gateway/mlflow/v1"
)
response = client.responses.create(
model="system.ai.gpt-5",
input=[
{
"role": "system",
"content": "You are a helpful assistant."
},
{
"role": "user",
"content": "What is a mixture of experts model?",
}
],
max_output_tokens=256
)
例として、OpenAI Responses APIを使用する際の想定されるリクエスト形式を以下に示します。このAPIのURLパスは/serving-endpoints/responsesです。
{
"model": "databricks-gpt-5",
"input": [
{
"role": "user",
"content": "What is a mixture of experts model?"
}
],
"max_output_tokens": 100,
"temperature": 0.1
}
以下は、Responses APIを使用して行われたリクエストに対する予期される応答形式です。
{
"id": "resp_abc123",
"object": "response",
"created_at": 1698824353,
"model": "databricks-gpt-5",
"output": [
{
"type": "message",
"role": "assistant",
"content": []
}
],
"usage": {
"input_tokens": 7,
"output_tokens": 74,
"total_tokens": 81
}
}
curl \
-u token:$DATABRICKS_TOKEN \
-X POST \
-H "Content-Type: application/json" \
-d '{
"model": "system.ai.claude-sonnet-4-5",
"messages": [
{
"role": "system",
"content": "You are a helpful assistant."
},
{
"role": "user",
"content": " What is a mixture of experts model?"
}
]
}' \
https://<workspace-url>/ai-gateway/mlflow/v1/chat/completions
例として、REST API を使用する場合のチャットモデルの予期されるリクエスト形式は次のとおりです。
{
"messages": [
{
"role": "user",
"content": "What is a mixture of experts model?"
}
],
"max_tokens": 100,
"temperature": 0.1
}
REST API を使用して行われたリクエストの予想される応答形式は次のとおりです:
{
"model": "databricks-claude-sonnet-4-5",
"choices": [
{
"message": {},
"index": 0,
"finish_reason": null
}
],
"usage": {
"prompt_tokens": 7,
"completion_tokens": 74,
"total_tokens": 81
},
"object": "chat.completion",
"id": null,
"created": 1698824353
}
このコードは、ワークスペース内のノートブックで実行する必要があります。Databricks ノートブックから Databricks SDK for Python を使用するを参照してください。
from databricks.sdk import WorkspaceClient
from databricks.sdk.service.serving import ChatMessage, ChatMessageRole
w = WorkspaceClient()
response = w.serving_endpoints.query(
name="system.ai.claude-sonnet-4-5",
messages=[
ChatMessage(
role=ChatMessageRole.SYSTEM, content="You are a helpful assistant."
),
ChatMessage(
role=ChatMessageRole.USER, content="What is a mixture of experts model?"
),
],
max_tokens=128,
)
print(f"RESPONSE:\n{response.choices[0].message.content}")
例として、REST API を使用する場合のチャットモデルの予期されるリクエスト形式は次のとおりです。
{
"messages": [
{
"role": "user",
"content": "What is a mixture of experts model?"
}
],
"max_tokens": 100,
"temperature": 0.1
}
REST API を使用して行われたリクエストの予想される応答形式は次のとおりです:
{
"model": "databricks-claude-sonnet-4-5",
"choices": [
{
"message": {},
"index": 0,
"finish_reason": null
}
],
"usage": {
"prompt_tokens": 7,
"completion_tokens": 74,
"total_tokens": 81
},
"object": "chat.completion",
"id": null,
"created": 1698824353
}
LangChainを使用してモデルサービスをクエリするには、ChatDatabricks ChatModelクラスを使用し、modelを指定します。
%pip install databricks-langchain
from langchain_core.messages import HumanMessage, SystemMessage
from databricks_langchain import ChatDatabricks
messages = [
SystemMessage(content="You're a helpful assistant"),
HumanMessage(content="What is a mixture of experts model?"),
]
llm = ChatDatabricks(model="system.ai.claude-sonnet-4-5")
llm.invoke(messages)
例として、REST API を使用する場合のチャットモデルの予期されるリクエスト形式は次のとおりです。
{
"messages": [
{
"role": "user",
"content": "What is a mixture of experts model?"
}
],
"max_tokens": 100,
"temperature": 0.1
}
REST API を使用して行われたリクエストの予想される応答形式は次のとおりです:
{
"model": "databricks-claude-sonnet-4-5",
"choices": [
{
"message": {},
"index": 0,
"finish_reason": null
}
],
"usage": {
"prompt_tokens": 7,
"completion_tokens": 74,
"total_tokens": 81
},
"object": "chat.completion",
"id": null,
"created": 1698824353
}
ビジョン
DatabricksがホストするビジョンモデルをUnity AI Gatewayのモデルサービスを通じてクエリし、統合されたAPIで画像を理解および分析します。
- OpenAI client
OpenAI クライアントを使用するには、モデルサービス名を model入力として指定します。
from openai import OpenAI
import base64
import requests
# Get the workspace API URL and token from the notebook context
API_ROOT = dbutils.notebook.entry_point.getDbutils().notebook().getContext().apiUrl().get()
API_TOKEN = dbutils.notebook.entry_point.getDbutils().notebook().getContext().apiToken().get()
client = OpenAI(
api_key=API_TOKEN,
base_url=f"{API_ROOT}/ai-gateway/mlflow/v1",
)
# Download and encode image
image_url = "https://upload.wikimedia.org/wikipedia/commons/a/a7/Camponotus_flavomarginatus_ant.jpg"
resp = requests.get(image_url)
resp.raise_for_status()
image_data = base64.b64encode(resp.content).decode("utf-8")
# OpenAI request
completion = client.chat.completions.create(
model="system.ai.claude-sonnet-4-5",
messages=[
{
"role": "user",
"content": [
{"type": "text", "text": "what's in this image?"},
{
"type": "image_url",
"image_url": {"url": f"data:image/jpeg;base64,{image_data}"},
},
],
}
],
)
print(completion.choices[0].message.content)
Chat Completions API は複数の画像入力をサポートしており、モデルは各画像を分析し、すべての入力から情報を統合してプロンプトへの応答を生成できます。
from openai import OpenAI
import base64
import requests
# Get the workspace API URL and token from the notebook context
API_ROOT = dbutils.notebook.entry_point.getDbutils().notebook().getContext().apiUrl().get()
API_TOKEN = dbutils.notebook.entry_point.getDbutils().notebook().getContext().apiToken().get()
client = OpenAI(
api_key=API_TOKEN,
base_url=f"{API_ROOT}/ai-gateway/mlflow/v1",
)
# Download and encode multiple images
image1_url = "https://upload.wikimedia.org/wikipedia/commons/thumb/d/dd/Gfp-wisconsin-madison-the-nature-boardwalk.jpg/2560px-Gfp-wisconsin-madison-the-nature-boardwalk.jpg"
resp1 = requests.get(image1_url)
resp1.raise_for_status()
image1_data = base64.b64encode(resp1.content).decode("utf-8")
image2_url = "https://upload.wikimedia.org/wikipedia/commons/thumb/d/dd/Gfp-wisconsin-madison-the-nature-boardwalk.jpg/2560px-Gfp-wisconsin-madison-the-nature-boardwalk.jpg"
resp2 = requests.get(image2_url)
resp2.raise_for_status()
image2_data = base64.b64encode(resp2.content).decode("utf-8")
# OpenAI request
completion = client.chat.completions.create(
model="system.ai.claude-sonnet-4-5",
messages=[
{
"role": "user",
"content": [
{"type": "text", "text": "What are in these images? Is there any difference between them?"},
{
"type": "image_url",
"image_url": {"url": f"data:image/jpeg;base64,{image1_data}"},
},
{
"type": "image_url",
"image_url": {"url": f"data:image/jpeg;base64,{image2_data}"},
},
],
}
],
)
print(completion.choices[0].message.content)
入力画像の要件
モデル | サポートされている形式 | 複数のリクエストあたりの画像 | 画像サイズ制限 | 画像サイズ変更の推奨事項 | 画質に関する考慮事項 |
|---|---|---|---|---|---|
|
| リクエストあたり最大500個の個別画像入力 | ファイルサイズ制限:リクエストあたりのペイロードの合計サイズは最大10MBです | N/A |
|
|
| リクエストあたり最大500個の個別画像入力 | ファイルサイズ制限:リクエストあたりのペイロードの合計サイズは最大10MBです | N/A |
|
|
| リクエストあたり最大500個の個別画像入力 | ファイルサイズ制限:リクエストあたりのペイロードの合計サイズは最大10MBです | N/A |
|
|
| リクエストあたり最大500個の個別画像入力 | ファイルサイズ制限:リクエストあたりのペイロードの合計サイズは最大10MBです | N/A |
|
|
| リクエストあたり最大500個の個別画像入力 | ファイルサイズ制限:リクエストあたりのペイロードの合計サイズは最大10MBです | N/A |
|
|
| リクエストあたり最大500個の個別画像入力 | ファイルサイズ制限:リクエストあたりのペイロードの合計サイズは最大10MBです | N/A |
|
|
| リクエストあたり最大500個の個別画像入力 | ファイルサイズ制限:リクエストあたりのペイロードの合計サイズは最大10MBです | N/A |
|
|
| リクエストあたり最大500個の個別画像入力 | ファイルサイズ制限:リクエストあたりのペイロードの合計サイズは最大10MBです | N/A |
|
|
| リクエストあたり最大500個の個別画像入力 | ファイルサイズ制限:リクエストあたりのペイロードの合計サイズは最大10MBです | N/A |
|
|
| リクエストあたり最大500個の個別画像入力 | ファイルサイズ制限:リクエストあたりのペイロードの合計サイズは最大10MBです | N/A |
|
|
| APIリクエストの場合、最大50枚の画像。提供されたすべての画像は、1つのリクエストで処理されます。 | ファイルサイズの上限:画像ごとに 7 MB | N/A | N/A |
|
| APIリクエストの場合、最大50枚の画像。提供されたすべての画像は、1つのリクエストで処理されます。 | ファイルサイズの上限:画像ごとに 7 MB | N/A | N/A |
|
| APIリクエストの場合、最大50枚の画像。提供されたすべての画像は、1つのリクエストで処理されます。 | ファイルサイズの上限:画像ごとに 7 MB | N/A | N/A |
|
| APIリクエストの場合、最大50枚の画像。提供されたすべての画像は、1つのリクエストで処理されます。 | ファイルサイズの上限:画像ごとに 7 MB | N/A | N/A |
|
| APIリクエストの場合、最大50枚の画像。提供されたすべての画像は、1つのリクエストで処理されます。 | ファイルサイズの上限:画像ごとに 7 MB | N/A | N/A |
|
| APIリクエストの場合、最大50枚の画像。提供されたすべての画像は、1つのリクエストで処理されます。 | ファイルサイズの上限:画像ごとに 7 MB | N/A | N/A |
|
| APIリクエストの場合、最大50枚の画像。提供されたすべての画像は、1つのリクエストで処理されます。 | ファイルサイズの上限:画像ごとに 7 MB | N/A | N/A |
|
| APIリクエスト用 最大5枚の画像
| ファイルサイズ制限: API リクエストごとにすべての画像で合計 10 MB | N/A | N/A |
|
| APIリクエスト用 最大5枚の画像
| ファイルサイズ制限: API リクエストごとにすべての画像で合計 10 MB | N/A | N/A |
|
|
|
| 最適なパフォーマンスを得るには、画像が大きすぎる場合はアップロードする前に画像をリサイズしてください。
|
|
画像からトークンへの変換
基盤モデルへのリクエスト内の各画像は、トークン使用量に追加されます。使用しているトークン使用量とモデルに基づいて画像の価格を推定するには、価格計算ツールをご覧ください。
画像理解の制限
サポートされているDatabricksホスト型基盤モデルの画像理解に関する制限事項は次のとおりです:
モデル | 制限事項 |
|---|---|
次の Claude モデルがサポートされています。
| DatabricksにおけるClaudeモデルの制限は以下のとおりです:
|
音声と動画
Databricks上のUnity AI Gatewayによって提供されるGemini 基盤モデルに、オーディオおよびビデオ入力を送信します。Chat Completions APIまたはGoogle Gemini APIを使用して、メディアをURLとして、またはbase64でエンコードされたインラインデータとして提供できます。
オーディオおよびビデオ入力は、次の2つの方法で提供できます。
- URL :メディアファイルへの公開アクセス可能なURLを渡します。ビデオの場合、YouTubeのURLもサポートされています。
- Base64 インラインデータ : ファイルを Base64 文字列としてエンコードし、データ URI として渡します(例:
data:video/mp4;base64,<encoded_data>)。
Chat Completions API
チャット補完APIを使用すると、ビデオとオーディオの入力を渡すことができます。メディア入力を渡すには、messages配列でvideo_urlおよびaudio_urlコンテンツタイプを使用します。各コンテンツアイテムには、Web URLまたはbase64データURIのいずれかを受け入れるurlフィールドが含まれています。
次の例は、Chat Completions APIを使用した動画および音声入力を示しています。
- Python
- REST API
import os
import base64
from openai import OpenAI
DATABRICKS_TOKEN = os.environ.get('DATABRICKS_TOKEN')
DATABRICKS_BASE_URL = os.environ.get('DATABRICKS_BASE_URL')
client = OpenAI(
api_key=DATABRICKS_TOKEN,
base_url=DATABRICKS_BASE_URL
)
# Encode a local video file as base64
with open("video.mp4", "rb") as f:
video_b64 = base64.standard_b64encode(f.read()).decode("utf-8")
response = client.chat.completions.create(
model="system.ai.gemini-3-1-pro",
messages=[{
"role": "user",
"content": [
{"type": "text", "text": "Summarize what happens in these videos."},
{
"type": "video_url",
"video_url": {"url": "https://example.com/sample-video.mp4"}
},
{
"type": "video_url",
"video_url": {"url": f"data:video/mp4;base64,{video_b64}"}
},
]
}],
max_tokens=1024
)
print(response.choices[0].message.content)
import os
import base64
from openai import OpenAI
DATABRICKS_TOKEN = os.environ.get('DATABRICKS_TOKEN')
DATABRICKS_BASE_URL = os.environ.get('DATABRICKS_BASE_URL')
client = OpenAI(
api_key=DATABRICKS_TOKEN,
base_url=DATABRICKS_BASE_URL
)
# Encode a local audio file as base64
with open("audio.mp3", "rb") as f:
audio_b64 = base64.standard_b64encode(f.read()).decode("utf-8")
response = client.chat.completions.create(
model="system.ai.gemini-3-1-pro",
messages=[{
"role": "user",
"content": [
{"type": "text", "text": "Transcribe this audio and summarize the key points."},
{
"type": "audio_url",
"audio_url": {"url": "https://example.com/sample-audio.mp3"}
},
{
"type": "audio_url",
"audio_url": {"url": f"data:audio/mp3;base64,{audio_b64}"}
},
]
}],
max_tokens=1024
)
print(response.choices[0].message.content)
curl \
-u token:$DATABRICKS_TOKEN \
-X POST \
-H "Content-Type: application/json" \
-d '{
"model": "system.ai.gemini-3-1-pro",
"messages": [{
"role": "user",
"content": [
{"type": "text", "text": "Summarize what happens in these videos."},
{
"type": "video_url",
"video_url": {"url": "https://example.com/sample-video.mp4"}
},
{
"type": "video_url",
"video_url": {"url": "data:video/mp4;base64,<base64_encoded_data>"}
}
]
}],
"max_tokens": 1024
}' \
https://<workspace-url>/ai-gateway/mlflow/v1/chat/completions
curl \
-u token:$DATABRICKS_TOKEN \
-X POST \
-H "Content-Type: application/json" \
-d '{
"model": "system.ai.gemini-3-1-pro",
"messages": [{
"role": "user",
"content": [
{"type": "text", "text": "Transcribe this audio and summarize the key points."},
{
"type": "audio_url",
"audio_url": {"url": "https://example.com/sample-audio.mp3"}
},
{
"type": "audio_url",
"audio_url": {"url": "data:audio/mp3;base64,<base64_encoded_data>"}
}
]
}],
"max_tokens": 1024
}' \
https://<workspace-url>/ai-gateway/mlflow/v1/chat/completions
Google Gemini API
Google Gemini APIを使用して、parts配列内でメディアをinlineData (Base64エンコードされたもの) または fileData (URL参照) として渡します。
次の例は、Google Gemini API を使用したビデオおよびオーディオ入力を示しています。
- Python
- REST API
from google import genai
from google.genai import types
import base64
import os
DATABRICKS_TOKEN = os.environ.get('DATABRICKS_TOKEN')
client = genai.Client(
api_key="databricks",
http_options=types.HttpOptions(
base_url="https://<workspace-url>/ai-gateway/gemini",
headers={
"Authorization": f"Bearer {DATABRICKS_TOKEN}",
},
),
)
# Encode a local video file as base64
with open("video.mp4", "rb") as f:
video_b64 = base64.standard_b64encode(f.read()).decode("utf-8")
response = client.models.generate_content(
model="system.ai.gemini-3-1-pro",
contents=[
types.Content(
role="user",
parts=[
types.Part(text="Summarize what happens in these videos."),
types.Part(
file_data=types.FileData(
mime_type="video/mp4",
file_uri="https://example.com/sample-video.mp4",
)
),
types.Part(
inline_data=types.Blob(
mime_type="video/mp4",
data=video_b64,
)
),
],
),
],
config=types.GenerateContentConfig(
max_output_tokens=1024,
),
)
print(response.text)
from google import genai
from google.genai import types
import base64
import os
DATABRICKS_TOKEN = os.environ.get('DATABRICKS_TOKEN')
client = genai.Client(
api_key="databricks",
http_options=types.HttpOptions(
base_url="https://<workspace-url>/ai-gateway/gemini",
headers={
"Authorization": f"Bearer {DATABRICKS_TOKEN}",
},
),
)
# Encode a local audio file as base64
with open("audio.mp3", "rb") as f:
audio_b64 = base64.standard_b64encode(f.read()).decode("utf-8")
response = client.models.generate_content(
model="system.ai.gemini-3-1-pro",
contents=[
types.Content(
role="user",
parts=[
types.Part(text="Transcribe this audio and summarize the key points."),
types.Part(
file_data=types.FileData(
mime_type="audio/mp3",
file_uri="https://example.com/sample-audio.mp3",
)
),
types.Part(
inline_data=types.Blob(
mime_type="audio/mp3",
data=audio_b64,
)
),
],
),
],
config=types.GenerateContentConfig(
max_output_tokens=1024,
),
)
print(response.text)
curl \
-u token:$DATABRICKS_TOKEN \
-X POST \
-H "Content-Type: application/json" \
-d '{
"contents": [{
"role": "user",
"parts": [
{"text": "Summarize what happens in these videos."},
{
"fileData": {
"mimeType": "video/mp4",
"fileUri": "https://example.com/sample-video.mp4"
}
},
{
"inlineData": {
"mimeType": "video/mp4",
"data": "<base64_encoded_data>"
}
}
]
}]
}' \
https://<workspace-url>/ai-gateway/gemini/v1beta/models/system.ai.gemini-3-1-pro:generateContent
curl \
-u token:$DATABRICKS_TOKEN \
-X POST \
-H "Content-Type: application/json" \
-d '{
"contents": [{
"role": "user",
"parts": [
{"text": "Transcribe this audio and summarize the key points."},
{
"fileData": {
"mimeType": "audio/mp3",
"fileUri": "https://example.com/sample-audio.mp3"
}
},
{
"inlineData": {
"mimeType": "audio/mp3",
"data": "<base64_encoded_data>"
}
}
]
}]
}' \
https://<workspace-url>/ai-gateway/gemini/v1beta/models/system.ai.gemini-3-1-pro:generateContent
制限事項
- 1 回のリクエストに複数の音声入力または動画入力を含めることができますが、大きなファイルはレイテンシーとトークン使用量を増加させます。
理由
推論タスク用に最適化された基盤モデルDatabricks 基盤モデル API は、推論モデルを含むすべての基盤モデルと対話するための統合 API を提供します。推論により、基盤モデルは複雑なタスクに対処するための機能が強化されます。モデルによっては、最終的な回答を出す前に段階的な思考プロセスを明らかにすることで、透明性も提供します。
推論モデルの種類
モデルには、推論のみとハイブリッドの2つのタイプがあります。次の表では、異なるモデルが推論を制御するためにどのように異なるアプローチを使用するかを説明します。
モデル | 推論モデルタイプ | 詳細 | パラメータ |
|---|---|---|---|
| 根拠のみ | これらのモデルは、常にその応答に内部的な推論を使用します。 | リクエストで次のパラメーターを使用します。
|
Claude モデルの | ハイブリッド推論 | これらのモデルは、迅速なインスタント応答と、必要に応じたより深い推論の両方をサポートしています。 | ハイブリッド推論を使用するには、次のパラメーターを含めます:
|
| ハイブリッド推論 | これらのモデルは、迅速なインスタント応答と、必要に応じたより深い推論の両方をサポートしています。 | ハイブリッド推論を使用するには、次のパラメーターを含めます:
|
| ハイブリッド推論 | これらのモデルは、迅速なインスタント応答と、必要に応じたより深い推論の両方をサポートしています。 | ハイブリッド推論を使用するには、次のパラメーターを含めます:
|
| 根拠のみ | これらのモデルは、常にその応答に内部的な推論を使用します。 | リクエストで次のパラメーターを使用します。
|
クエリの例
すべての reasoning モデルは、chat completions エンドポイントを通じてアクセスされます。
- Claude model example
- GPT-5.1
- GPT OSS model example
- Gemini model example
import os
from openai import OpenAI
client = OpenAI(
api_key=os.environ.get('YOUR_DATABRICKS_TOKEN'),
base_url=os.environ.get('YOUR_DATABRICKS_BASE_URL')
)
response = client.chat.completions.create(
model="system.ai.claude-sonnet-4-5",
messages=[{"role": "user", "content": "Why is the sky blue?"}],
max_tokens=20480,
extra_body={
"thinking": {
"type": "enabled",
"budget_tokens": 10240
}
}
)
msg = response.choices[0].message
reasoning = msg.content[0]["summary"][0]["text"]
answer = msg.content[1]["text"]
print("Reasoning:", reasoning)
print("Answer:", answer)
GPT-5.1 のreasoning_effortパラメーターは、デフォルトでnoneに設定されていますが、リクエストでオーバーライドできます。 推論の努力を高めると、より思慮深く正確な応答が得られる可能性がありますが、レイテンシとトークンの使用量が増える可能性があります。
curl -X POST "https://<workspace-url>/ai-gateway/mlflow/v1/chat/completions" \
-H "Authorization: Bearer $DATABRICKS_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"model": "system.ai.gpt-5-1",
"messages": [
{
"role": "user",
"content": "Why is the sky blue?"
}
],
"max_tokens": 4096,
"reasoning_effort": "none"
}'
reasoning_effortパラメーターは、"low"、"medium" (デフォルト)、または"high"の値を受け入れます。推論の努力を高めると、より思慮深く正確な応答が得られる可能性がありますが、レイテンシとトークンの使用量が増える可能性があります。
curl -X POST "https://<workspace-url>/ai-gateway/mlflow/v1/chat/completions" \
-H "Authorization: Bearer $DATABRICKS_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"model": "system.ai.gpt-oss-120b",
"messages": [
{
"role": "user",
"content": "Why is the sky blue?"
}
],
"max_tokens": 4096,
"reasoning_effort": "high"
}'
system.ai.gemini-3-1-pro を使用した例です。reasoning_effort パラメーターは、デフォルトで "low" に設定されていますが、次の例に示すように、リクエストで上書きできます。
curl -X POST "https://<workspace-url>/ai-gateway/mlflow/v1/chat/completions" \
-H "Authorization: Bearer $DATABRICKS_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"model": "system.ai.gemini-3-1-pro",
"messages": [
{
"role": "system",
"content": "You are a helpful assistant."
},
{
"role": "user",
"content": "Why is the sky blue?"
}
],
"max_tokens": 2000,
"stream": true,
"reasoning_effort": "high"
}'
API レスポンスには、思考とテキストのコンテンツ ブロックの両方が含まれています。
ChatCompletionMessage(
role="assistant",
content=[
{
"type": "reasoning",
"summary": [
{
"type": "summary_text",
"text": ("The question is asking about the scientific explanation for why the sky appears blue... "),
"signature": ("EqoBCkgIARABGAIiQAhCWRmlaLuPiHaF357JzGmloqLqkeBm3cHG9NFTxKMyC/9bBdBInUsE3IZk6RxWge...")
}
]
},
{
"type": "text",
"text": (
"# Why the Sky Is Blue\n\n"
"The sky appears blue because of a phenomenon called Rayleigh scattering. Here's how it works..."
)
}
],
refusal=None,
annotations=None,
audio=None,
function_call=None,
tool_calls=None
)
複数ターンにわたる推論を管理する
このセクションは、databricks-claude-sonnet-4-5 モデルに固有です。
複数ターンの会話では、最後のAssistantのターンまたはツール使用セッションに関連付けられた推論ブロックのみがモデルに表示され、入力トークンとしてカウントされます。
推論トークンをモデルに渡したくない場合(例えば、以前のステップに基づいて推論する必要がない場合)、推論ブロック全体を省略できます。例えば:
response = client.chat.completions.create(
model="system.ai.claude-sonnet-4-5",
messages=[
{"role": "user", "content": "Why is the sky blue?"},
{"role": "assistant", "content": text_content},
{"role": "user", "content": "Can you explain in a way that a 5-year-old child can understand?"}
],
max_tokens=20480,
extra_body={
"thinking": {
"type": "enabled",
"budget_tokens": 10240
}
}
)
answer = response.choices[0].message.content[1]["text"]
print("Answer:", answer)
ただし、モデルが以前の推論プロセスを推論する必要がある場合 (たとえば、中間推論を表すエクスペリエンスを構築している場合) は、以前のターンの推論ブロックを含め、完全で変更されていないアシスタント メッセージを含める必要があります。完全なアシスタント メッセージでスレッドを続行する方法は次のとおりです。
assistant_message = response.choices[0].message
response = client.chat.completions.create(
model="system.ai.claude-sonnet-4-5",
messages=[
{"role": "user", "content": "Why is the sky blue?"},
{"role": "assistant", "content": text_content},
{"role": "user", "content": "Can you explain in a way that a 5-year-old child can understand?"},
assistant_message,
{"role": "user", "content": "Can you simplify the previous answer?"}
],
max_tokens=20480,
extra_body={
"thinking": {
"type": "enabled",
"budget_tokens": 10240
}
}
)
answer = response.choices[0].message.content[1]["text"]
print("Answer:", answer)
推論モデルはどのように機能しますか?
推論モデルは、標準の入力トークンと出力トークンに加えて、特殊な推論トークンを導入します。これらのトークンにより、モデルはプロンプトを「考え」、それを分解し、さまざまな応答方法を検討できます。この内部推論プロセス後、モデルは最終回答を表示される出力トークンとして生成します。databricks-claude-sonnet-4-5のような一部のモデルはこれらの理由付けトークンをユーザーに表示しますが、OpenAI oシリーズのような他のモデルはそれらを破棄し、最終出力には表示しません。
サポートされているモデル
基盤モデルを発見するで、利用可能な基盤モデルと、チャット、ビジョン、オーディオとビデオ、推論を含む各モデルがサポートするインタラクションタイプを参照してください。