基盤モデル REST API リファレンス
この記事では、Databricks Foundation Model API とそれらがサポートするモデルに関する一般的な API 情報を提供します。 Foundation Model API は、既存のプロジェクトの移行を容易にするために、OpenAI の REST API と同様に設計されています。 トークンごとの支払いスループット エンドポイントとプロビジョニング済みスループット エンドポイントはどちらも、同じ REST API 要求形式を受け入れます。
エンドポイント
Foundation Model API では、トークンごとの支払いエンドポイントとプロビジョニングされたスループット エンドポイントがサポートされます。
事前構成済みエンドポイントは、トークンごとの支払いサポートモデルごとにワークスペースで使用でき、ユーザーは HTTP POST 要求を使用してこれらのエンドポイントと対話できます。 サポートされているモデルについては トークンごとの支払い を参照してください。
プロビジョニングされたスループット エンドポイントは、API またはサービス UI を使用して作成できます。 これらのエンドポイントは、両方の提供されるモデルが同じ API 形式を公開している限り、A/B テスト用にエンドポイントごとに複数のモデルをサポートします。 たとえば、両方のモデルがチャット モデルです。 エンドポイント構成パラメーター POST /api/2.0/serving-endpoints を参照してください。
要求と応答では JSON が使用されます。正確な JSON 構造は、エンドポイントのタスクの種類によって異なります。 チャットエンドポイントと完了エンドポイントは、ストリーミング応答をサポートします。
使用法
応答には、要求と応答のトークンの数を報告する usage
サブメッセージが含まれます。 このサブメッセージの形式は、すべてのタスクの種類で同じです。
フィールド | 種類 | 説明 |
---|---|---|
completion_tokens |
整数 | 生成されたトークンの数。 埋め込み応答には含まれません。 |
prompt_tokens |
整数 | 入力プロンプトからのトークンの数。 |
total_tokens |
整数 | トークンの合計数。 |
Meta-Llama-3.3-70B-Instruct
のようなモデルの場合、ユーザー プロンプトは、モデルに渡される前にプロンプト テンプレートを使用して変換されます。 トークンごとの支払いエンドポイントの場合は、システム プロンプトも追加される場合があります。 prompt_tokens
には、サーバーによって追加されたすべてのテキストが含まれています。
チャット タスク
チャット タスクは、モデルを使用した複数ターンの会話用に最適化されています。 モデル応答は、会話内の次の assistant
メッセージを提供します。 エンドポイント パラメーターの問い合わせ方法については、「POST /serving-endpoints/{name}/invocations」を参照してください。
チャット要求
フィールド | 既定値 | 種類 | 説明 |
---|---|---|---|
messages |
ChatMessage リスト | 必須。 現在の会話を表すメッセージの一覧。 | |
max_tokens |
null |
null 。制限なし、または 0 より大きい整数を意味します |
生成するトークンの最大数。 |
stream |
true |
ブーリアン | 要求の部分的な結果を許可するために、応答をクライアントにストリーム配信します。 このパラメーターが要求に含まれている場合、応答は標準 サーバー送信イベントを使用して送信されます。 |
temperature |
1.0 |
Float in [0,2] | サンプリング温度。 0 は決定論的であり、値が大きいほどランダム性が高くなります。 |
top_p |
1.0 |
Float in (0,1] | 核サンプリングに使用される確率しきい値。 |
top_k |
null |
null 。制限なし、または 0 より大きい整数を意味します |
上位 k フィルター処理に使用する可能性が最も高い k 個のトークンの数を定義します。 出力を決定論的にするには、この値を 1 に設定します。 |
stop |
[] | 文字列またはリスト[文字列] | stop 内のいずれかのシーケンスが検出されると、モデルはさらなるトークンの生成を停止します。 |
n |
1 | 0 より大きい整数 | この API は、n が指定された場合に、n 個の独立したチャット入力候補を返します。 推論の効率を高め、コストを削減するために、同じ入力で複数の入力候補を生成するワークロードに推奨されます。 プロビジョニングされたスループット エンドポイントでのみ使用できます。 |
tool_choice |
none |
文字列または ToolChoiceObject | tools フィールドと組み合わせてのみ使用します。 tool_choice では、auto 、required 、none など、さまざまなキーワード文字列がサポートされています。 auto は、使用に関連する (ある場合) ツールをモデルに決定させることを意味します。 auto 、tools 内のどのツールも関連しているとモデルが信じない場合、モデルはツール呼び出しの代わりに標準アシスタント メッセージを生成します。 required は、モデルが tools で最も関連性の高いツールを選択し、ツール呼び出しを生成する必要があることを意味します。 none は、モデルがツール呼び出しを生成せず、代わりに標準のアシスタント メッセージを生成する必要があることを意味します。 tools で定義されている特定のツールを使用してツール呼び出しを強制するには、ToolChoiceObject を使用します。 既定では、tools フィールドに tool_choice = "auto" が設定されます。 それ以外の場合、tools フィールドの既定値は tool_choice = "none" |
tools |
null |
ToolObject | モデルが呼び出すことができる tools の一覧。 現在、function は唯一サポートされている tool 型であり、最大 32 個の関数がサポートされています。 |
response_format |
null |
ResponseFormatObject | モデルが出力する必要がある形式を指定するオブジェクト。 使用できる型は、text 、json_schema 、または json_object { "type": "json_schema", "json_schema": {...} } に設定すると、構造化された出力が有効になり、指定された JSON スキーマにモデルが確実に従います。{ "type": "json_object" } に設定すると、モデルによって生成される応答は有効な JSON になりますが、応答が特定のスキーマに従っているわけではありません。 |
logprobs |
false |
ブーリアン | このパラメーターは、サンプリングされるトークンのログ確率を指定するかどうかを示します。 |
top_logprobs |
null |
整数 | このパラメーターは、サンプリング ステップごとにログ確率を返す可能性が最も高いトークン候補の数を制御します。 0 ~ 20 にすることができます。 このフィールドを使用する場合は、logprobs は true でなければなりません。 |
ChatMessage
フィールド | 種類 | 説明 |
---|---|---|
role |
糸 | 必須。 メッセージの作成者の役割。 "system" 、"user" 、"assistant" 、または "tool" することができます。 |
content |
糸 | メッセージの内容。 ツールの呼び出しを伴わないチャット タスクに必要な。 |
tool_calls |
ToolCall の一覧 | モデルによって生成された tool_calls の一覧。 role を "assistant" として持ち、content フィールドの指定がないことが必要です。 |
tool_call_id |
糸 | role が "tool" である場合、メッセージの応答対象の ToolCall に関連する ID。 その他の role オプションの場合は空にする必要があります。 |
system
ロールは、会話の最初のメッセージとして 1 回だけ使用できます。 モデルの既定のシステム プロンプトをオーバーライドします。
ToolCall
モデルによるツールコールアクションの提案。 Azure Databricks での関数呼び出しを参照してください。
フィールド | 種類 | 説明 |
---|---|---|
id |
糸 | 必須。 このツールの提案呼び出しに対する一意の識別子。 |
type |
糸 | 必須。 "function" のみがサポートされています。 |
function |
関数呼び出し完了 | 必須。 モデルによって提案される関数呼び出し。 |
FunctionCallCompletion
フィールド | 種類 | 説明 |
---|---|---|
name |
糸 | 必須。 モデルが推奨する関数の名前。 |
arguments |
オブジェクト | 必須。 シリアル化された JSON ディクショナリとしての関数の引数。 |
ToolChoiceObject
Azure Databricks での関数呼び出しを参照してください。
フィールド | タイプ | 説明 |
---|---|---|
type |
糸 | 必須。 ツールの種類。 現時点では、"function" のみがサポートされています。 |
function |
オブジェクト | 必須。 フォーム {"type": "function", "function": {"name": "my_function"}} 呼び出すツールを定義するオブジェクト。ここで "my_function は、tools フィールドの FunctionObject の名前です。 |
ToolObject
Azure Databricks での関数呼び出しを参照してください。
フィールド | 種類 | 説明 |
---|---|---|
type |
糸 | 必須。 ツールの種類。 現時点では、function のみがサポートされています。 |
function |
FunctionObject | 必須。 ツールに関連付けられている関数定義。 |
FunctionObject
フィールド | 種類 | 説明 |
---|---|---|
name |
糸 | 必須。 呼び出す関数の名前。 |
description |
オブジェクト | 必須。 関数の詳細な説明。 モデルでは、この説明を使用して、プロンプトに対する関数の関連性を理解し、より高い精度でツール呼び出しを生成します。 |
parameters |
オブジェクト | 有効な JSON スキーマ オブジェクトとして記述された、関数が受け入れるパラメーター。 ツールが呼び出された場合、ツール呼び出しは指定された JSON スキーマに適合します。 パラメーターを省略すると、パラメーターのない関数が定義されます。 properties の数は 15 キーに制限されています。 |
strict |
ブーリアン | 関数呼び出しの生成時に厳密なスキーマ準拠を有効にするかどうか。 true に設定すると、モデルはスキーマ フィールドで定義されている正確なスキーマに従います。 strict が true されている場合は、JSON スキーマのサブセットのみがサポートされます |
ResponseFormatObject
Azure Databricks での構造化された出力を参照してください。
フィールド | 種類 | 説明 |
---|---|---|
type |
糸 | 必須。 定義されている応答形式の型。 非構造化テキストの text 、非構造化 JSON オブジェクトの json_object 、または特定のスキーマに準拠する JSON オブジェクトの json_schema 。 |
json_schema |
JsonSchemaObject | 必須。 type が json_schema に設定されている場合に準拠する JSON スキーマ |
JsonSchemaObject
Azure Databricks での構造化された出力を参照してください。
フィールド | 種類 | 説明 |
---|---|---|
name |
糸 | 必須。 応答形式の名前。 |
description |
糸 | 応答形式の説明で、モデルがその形式でどのように応答するかを決定するために使用されます。 |
schema |
オブジェクト | 必須。 JSON スキーマ オブジェクトとして記述された応答形式のスキーマ。 |
strict |
ブーリアン | 出力の生成時に厳密なスキーマ準拠を有効にするかどうかを指定します。 true に設定すると、モデルはスキーマ フィールドで定義されている正確なスキーマに従います。 strict が true されている場合は、JSON スキーマのサブセットのみがサポートされます |
チャット応答
ストリーミング以外の要求の場合、応答は 1 つのチャット完了オブジェクトです。 ストリーミング要求の場合、応答は各イベントが完了チャンク オブジェクトである text/event-stream
です。 完了オブジェクトとチャンク オブジェクトの最上位レベルの構造はほぼ同じです。異なる型を持つのは choices
だけです。
フィールド | 種類 | 説明 |
---|---|---|
id |
糸 | チャット入力候補の一意識別子。 |
choices |
List[ChatCompletionChoice] または List[ChatCompletionChunk] (ストリーミング) | チャット完了テキストの一覧。 n パラメーターが指定されている場合は、n 選択肢が返されます。 |
object |
糸 | オブジェクトの種類。 非ストリーミングの場合は "chat.completions" 、ストリーミングの場合は "chat.completion.chunk" のいずれかと等しくなります。 |
created |
整数 | チャット入力候補が生成された時間 (秒単位)。 |
model |
糸 | 応答の生成に使用されるモデル バージョン。 |
usage |
使用方法 | トークンの使用メタデータ。 ストリーミング応答に存在しない可能性があります。 |
ChatCompletionChoice
フィールド | 種類 | 説明 |
---|---|---|
index |
整数 | 生成された選択肢の一覧内の選択肢のインデックス。 |
message |
ChatMessage | モデルによって返されるチャット完了メッセージ。 ロールは assistant になります。 |
finish_reason |
糸 | モデルがトークンの生成を停止した理由。 |
ChatCompletionChunk
フィールド | 種類 | 説明 |
---|---|---|
index |
整数 | 生成された選択肢の一覧内の選択肢のインデックス。 |
delta |
チャットメッセージ | モデルから生成されたストリーミング応答のチャット完了メッセージの一部。 最初のチャンクのみ、role が設定されていることが保証されます。 |
finish_reason |
糸 | モデルがトークンの生成を停止した理由。 最後のチャンクにのみ、これが設定されます。 |
完了作業
テキスト補完タスクは、1 つのプロンプトに対する応答を生成するためのタスクです。 チャットとは異なり、このタスクはバッチ入力をサポートしています。複数の独立したプロンプトを 1 つの要求で送信できます。 エンドポイント パラメーターの問い合わせ方法については、「POST /serving-endpoints/{name}/invocations」を参照してください。
入力候補要求
入力候補の応答
フィールド | 種類 | 説明 |
---|---|---|
id |
糸 | テキスト入力候補の一意識別子。 |
choices |
CompletionChoice | テキスト入力候補のリスト。 渡されるすべてのプロンプトについて、n が指定されている場合、n 選択肢が生成されます。 既定の n は 1 です。 |
object |
糸 | オブジェクトの種類。 "text_completion" と等しい |
created |
整数 | 完了が生成された時間 (秒単位)。 |
usage |
使用方法 | トークンの使用メタデータ。 |
CompletionChoice
フィールド | 種類 | 説明 |
---|---|---|
index |
整数 | 要求中のプロンプトのインデックス。 |
text |
糸 | 生成された入力候補。 |
finish_reason |
糸 | モデルがトークンの生成を停止した理由。 |
埋め込みタスク
埋め込みタスクは、入力文字列を埋め込みベクターにマップします。 各要求で多数の入力をバッチ処理できます。 エンドポイント パラメーターの問い合わせ方法については、「POST /serving-endpoints/{name}/invocations」を参照してください。
埋め込み要求
フィールド | 種類 | 説明 |
---|---|---|
input |
文字列またはリスト[文字列] | 必須。 埋め込む入力テキスト。 文字列または文字列のリストを指定できます。 |
instruction |
糸 | 埋め込みモデルに渡す省略可能な命令。 |
命令は省略可能であり、モデル固有のものです。 たとえば、BGE の作成者は、チャンクのインデックスを作成するときに命令を推奨せず、取得クエリに命令 "Represent this sentence for searching relevant passages:"
を使用することをお勧めします。 Instructor-XL などの他のモデルでは、さまざまな命令文字列がサポートされています。
埋め込み応答
フィールド | タイプ | 説明 |
---|---|---|
id |
糸 | 埋め込みの一意識別子。 |
object |
糸 | オブジェクトの種類。 "list" に等しい。 |
model |
糸 | 埋め込みの作成に使用される埋め込みモデルの名前。 |
data |
埋め込みオブジェクト | 埋め込みオブジェクト。 |
usage |
使用方法 | トークンの使用メタデータ。 |
EmbeddingObject
フィールド | 種類 | 説明 |
---|---|---|
object |
糸 | オブジェクトの種類。 "embedding" に等しい。 |
index |
整数 | モデルによって生成された埋め込みの一覧内の埋め込みのインデックス。 |
embedding |
List[Float] | 埋め込みベクター。 各モデルは固定サイズ ベクトルを返します (BGE-Largeの場合は 1024) |
その他のリソース
トークンごとの支払い でサポートされるモデル