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

Open Responses API を使用したモデルのクエリ

この記事では、Open Responses API を使用して基盤モデルをクエリする方法と、その際に考慮すべきプロバイダー固有の動作について説明します。

Open Responses API は、レスポンススタイルのリクエスト形式のオープンなマルチプロバイダー実装です。messagesではなくinputフィールドを使用し、構造化されたoutput配列を返します。リクエストボディのmodelフィールドにモデルサービングエンドポイント名を含めて、/serving-endpoints/open-responsesパスにリクエストを送信します。

注記

OpenAIモデルの場合、OpenAI Responses APIを直接使用します。そのパスはネイティブのパススルーであり、OpenAI Responsesの完全なパラメーターとツールのセットをサポートしています。この記事では、プロバイダー間で機能するものの、焦点を絞った機能セットをサポートするOpen Responses APIについて説明します。

クエリの例

次の例では、Open Responses API を使用して基盤モデルのエンドポイントをクエリします。

Bash
curl \
-u token:$DATABRICKS_TOKEN \
-X POST \
-H "Content-Type: application/json" \
-d '{
"model": "databricks-claude-sonnet-4-5",
"input": [
{
"role": "user",
"content": "What is a mixture of experts model?"
}
],
"max_output_tokens": 256
}' \
https://<workspace_host>.databricks.com/serving-endpoints/open-responses

応答は response オブジェクトであり、output 配列を含みます。ストリーミングリクエスト (stream: true) の場合、応答は text/event-stream であり、各イベントが応答チャンクです。

プロバイダー固有の動作

Databricksは、Open Responsesリクエストを各プロバイダーのネイティブ形式に変換します。ほとんどのリクエストで動作は一貫していますが、プロバイダー固有の以下の違いが適用されます。

すべてのプロバイダー

  • 会話はステートレスです。 previous_response_id とサーバーサイド会話ストレージはサポートされていません。各ターンで完全な会話をinputフィールドに送信します。
  • 一部のOpenAI固有のフィールドは受け入れられますが、非OpenAIプロバイダーでは無視されます。usersafety_identifiermetadata、およびtruncationのようなフィールドはポータビリティのために応答で返されますが、プロバイダーの動作は変更しません。

Databricks ホスト型(オープンソース)モデル

  • **機能のサポートはモデルごとです。** 関数呼び出し、推論、構造化出力、および画像入力はモデルごとに有効化されます。モデルがサポートしない機能を使用するリクエストは、エラーを返します。たとえば、推論をサポートするモデルは画像入力をサポートしない場合があります。
  • 画像の入力はURLまたはデータURIである必要があります。 画像をimage_urlを介してhttps URLまたはdata: URIとして提供してください。ファイル参照(file_id)とドキュメント入力(input_file)はサポートされていません。

Anthropic Claudeモデル

  • 温度は0~2のスケールを使用します。 Claudeはネイティブの0–1の範囲を使用するため、Databricksは値を半分にして再スケーリングします—temperature: 1.00.5のように動作します。
  • ターンを越えた推論ラウンドトリップ。 モデルが複数ターンの会話で以前の思考に基づいて推論できるようにするには、返されたreasoning項目を—そのencrypted_contentを変更せずに—次のリクエストのinputで送り返します。「推論モデルのクエリ」を参照してください。
  • 画像およびドキュメント入力はbase64データURIである必要があります。 画像をimage_urlを介してbase64 data: URIとして提供し、ドキュメントをfile_dataを介してbase64 data: URIとして提供します。https URL と file_id 参照はサポートされていません。
  • 構造化された出力には制約があります。 タイプjson_schematext.formatはサポートされていますが、json_objectはサポートされておらず、エラーを返します。構造化出力は、ストリーミングや推論と組み合わせることはできず、使用時にtool_choiceを特定のツールにピン留めすることはできません。「Databricks の構造化出力」を参照してください。
  • 推論トークン は、別途報告されるのではなくusage.output_tokens に含まれます。

Google Gemini モデル

  • 温度は0~2のスケールを使用します。 Geminiはネイティブの0~1の範囲を使用するため、Databricksは値を半分にして再スケーリングします。—temperature: 1.00.5のように動作します。
  • ターンを越えた推論ラウンドトリップ。 モデルが複数ターンの会話で以前の思考に基づいて推論できるようにするには、返されたreasoning項目を—そのencrypted_contentを変更せずに—次のリクエストのinputで送り返します。「推論モデルのクエリ」を参照してください。
  • 画像入力では、https URL と base64 データ URI の両方が使用できます。
  • 推論トークンusage.output_tokens_details.reasoning_tokensで報告されます。
重要

Gemini を使用したマルチターンツール呼び出しでは、encrypted_contentを保持する必要があります。Gemini は、生成する各function_call項目でencrypted_contentの値を返します。ツール結果を次のターンに送り返す際は、元のfunction_call項目をそのencrypted_contentフィールドが変更されていない状態で含める必要があります。nameargumentscall_idのみからツール呼び出しを再構築するエージェントフレームワークはこのフィールドを削除するため、後続のリクエストは拒否されます。

次の例では、ツール結果を返す際にfunction_call項目 (encrypted_contentと共に) を保持します。

JSON
{
"model": "databricks-gemini-2-5-pro",
"input": [
{ "role": "user", "content": "What's the weather in San Francisco?" },
{
"type": "function_call",
"call_id": "call_abc123",
"name": "get_weather",
"arguments": "{\"city\": \"San Francisco\"}",
"encrypted_content": "<opaque-provider-signature>"
},
{
"type": "function_call_output",
"call_id": "call_abc123",
"output": "{\"temp_f\": 64}"
}
]
}

ツール

Open Responses APIは、プロバイダー間でfunctionタイプのツールをサポートしています。詳細とサポートされているモデルについては、Databricks での関数呼び出しを参照してください。Web検索組み込みツールについては、Databricks でのWeb検索を参照してください。

その他の組み込みツールタイプおよびカスタムツールタイプ(例:customapply_patchimage_generationmcp)は、OpenAI Responses API を介してのみ利用できます。

サポートされているモデル

Open Responses API は、Anthropic Claude、Google Gemini、Databricksがホストするオープンモデルを含むDatabricksの基盤モデル全体で利用可能であり、今後も新しいモデルへのサポートを拡張します。現在利用可能なモデルのリストについては、基盤モデルタイプ を参照してください。

関数呼び出し、推論、構造化出力、画像入力などの機能サポートは、基盤となるモデルによって異なります。プロバイダー固有の動作を参照してください。

サポートされている入力タイプ

入力サポートはモデルとプロバイダーによって異なります。テキスト入力はすべてのモデルでサポートされています。画像入力については、プロバイダー固有の動作のプロバイダーごとの注意点と、ビジョンモデルのクエリの形式とサイズ要件を参照してください。モデルごとの入力タイプについては、基盤モデルAPIで利用できるDatabricksがホストする基盤モデルを参照してください。

その他のリソース