基盤モデル REST API リファレンス

この記事では、Databricks 基盤APIsとそれらがサポートするモデルの一般的な API 情報を提供します。 基盤モデルAPIs既存のプロジェクトの移行を容易にするために、OpenAI の REST API と同様になるように設計されています。 トークン単位の従量課金のエンドポイントとプロビジョニングスループットのエンドポイントはどちらも、同じ REST API リクエスト形式を受け入れます。

エンドポイント

トークン単位の従量課金の各モデルには単一のエンドポイントがあり、ユーザーは HTTP POST リクエストを使用してこれらのエンドポイントと対話できます。 プロビジョニングされたスループット エンドポイントは、API または Serving UI を使用して作成できます。 これらのエンドポイントは、提供される両方のモデルが同じ API 形式を公開している限り、A/B テスト用のエンドポイントごとに複数のモデルもサポートします。 たとえば、どちらのモデルもチャット モデルです。

要求と応答は JSON を使用し、正確な JSON 構造はエンドポイントのタスクの種類によって異なります。 チャットと完了エンドポイントは、ストリーミング応答をサポートします。

トークン単位の従量課金のワークロードは特定のモデルをサポートしています。これらのモデルと受け入れられる API 形式については、トークン単位の従量課金がサポートされるモデルを参照してください。

の使用

応答には、要求と応答のトークンの数を報告する usage サブメッセージが含まれます。 このサブメッセージの形式は、すべてのタスク・タイプで同じです。

フィールド

タイプ

説明

completion_tokens

整数タイプ

生成されたトークンの数。 埋め込み応答には含まれません。

prompt_tokens

整数タイプ

入力プロンプトからのトークンの数。

total_tokens

整数タイプ

トークンの合計数。

llama-2-70b-chat のようなモデルの場合、ユーザー プロンプトは、モデルに渡される前にプロンプト テンプレートを使用して変換されます。トークンごとの支払いエンドポイントの場合、システム プロンプトも追加される場合があります。 prompt_tokens には、サーバーによって追加されたすべてのテキストが含まれます。

チャットタスク

チャットタスクは、モデルとの複数ターンの会話用に最適化されています。 各要求は、 messages フィールドが user ロールと assistant ロールを交互に切り替え、 user メッセージで終わるまでの会話を記述します。 モデル応答は、会話の次の assistant メッセージを提供します。

チャットリクエスト

フィールド

デフォルト

タイプ

説明

messages

ChatMessage 一覧

必須です。 現在の会話を表すメッセージのリスト。

max_tokens

nil

0 または nilより大きい整数で、無限大を表します。

生成するトークンの最大数。

stream

true

ブール値

要求の部分的な結果を許可するために、応答をクライアントに返します。 このパラメーターが要求に含まれている場合、応答は サーバー送信イベント 標準を使用して送信されます。

temperature

1.0

[0,2] の浮動小数点数

サンプリング温度。 0 は決定論的であり、値が大きいほどランダム性が高くなります。

top_p

1.0

浮動小数点数 (0,1)

核サンプリングに使用される確率しきい値。

top_k

nil

0 または nilより大きい整数で、無限大を表します。

top-k-フィルタリングに使用する可能性が最も高いk個のトークンの数を定義します。 この値を 1 に設定すると、出力が確定的になります。

stop

[]

文字列 または List[文字列]

モデルは、 stop 内のシーケンスのいずれかが検出されると、それ以上のトークンの生成を停止します。

n

1

0 より大きい整数

nが指定されている場合、API はnの独立したチャット完了を返します。 推論の効率を高め、コストを削減するために、同じ入力で複数の入力候補を生成するワークロードに推奨されます。 プロビジョニングされたスループット エンドポイントでのみ使用できます。

tool_choice

nil

文字列またはToolChoiceObject

tools フィールドとの組み合わせでのみ使用されます。tool_choiceは、 autorequirednoneなどのさまざまなキーワード文字列をサポートしています。 auto 、どのツール(ある場合)を使用するのが適切かをモデルに決定させることを意味します。 auto tools内のどのツールも関連していないとモデルが判断した場合、モデルはツール呼び出しの代わりに標準のアシスタントメッセージを生成します。required 、モデルが tools 内で最も関連性の高いツールを選択し、ツール呼び出しを生成する必要があることを意味します。 none 、モデルはツール呼び出しを生成せず、代わりに標準アシスタントメッセージを生成する必要があることを意味します。 toolsで定義された特定のツールでツール呼び出しを強制するには、ToolChoiceObject を使用します。デフォルトでは、 toolsフィールドにtool_choice = "auto"が入力されます。 それ以外の場合、 toolsフィールドはデフォルトで tool_choice = "none"

tools

nil

ツールオブジェクト

モデルが呼び出すことができる tools のリスト。 現在、サポートされているtool型は function のみで、最大 32 個の関数がサポートされています。

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

モデルによるツール呼び出しアクションの提案。 Databricks での関数呼び出しを参照してください。

フィールド

タイプ

説明

id

文字列

必須です。 このツール呼び出し候補の一意の識別子。

type

文字列

必須です。 サポートされているのは "function" のみです。

function

FunctionCallCompletion (関数呼び出し完了)

必須です。 モデルによって提案された関数呼び出し。

FunctionCallCompletion

フィールド

タイプ

説明

name

文字列

必須。 モデルが推奨する関数の名前。

arguments

オブジェクト

必須。 シリアル化された JSON 辞書としての関数への引数。

ToolChoiceObject

Databricks での関数呼び出しを参照してください。

フィールド

タイプ

説明

type

文字列

必須です。 ツールのタイプ。 現在、 "function" のみがサポートされています。

function

オブジェクト

必須です{"type": "function", "function": {"name": "my_function"}} のフォームで呼び出すツールを定義するオブジェクトで、"my_functiontools フィールドの FunctionObject の名前です。

ToolObject

Databricks での関数呼び出しを参照してください。

フィールド

タイプ

説明

type

文字列

必須です。 ツールのタイプ。 現在、 function のみがサポートされています。

function

関数オブジェクト

必須です。 ツールに関連付けられている関数定義。

FunctionObject

フィールド

タイプ

説明

name

文字列

必須です。 呼び出される関数の名前。

description

オブジェクト

必須です。 関数の詳細な説明。 モデルはこの記述を使用して、関数とプロンプトの関連性を理解し、より高い精度でツール呼び出しを生成します。

parameters

オブジェクト

関数が受け入れる、有効なJSONスキーマオブジェクトとして記述されたオブジェクト。 ツールが呼び出されると、ツール呼び出しは提供された JSON スキーマに適合します。 引数を省略すると、引数のない関数が定義されます。 properties数は 15 キーに制限されています。

チャットの応答

ストリーミング以外の要求の場合、応答は 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

チャットメッセージ

モデルによって返されるチャット完了メッセージ。 役割は assistantになります。

finish_reason

文字列

モデルがトークンの生成を停止した理由。

ChatCompletionChunk

フィールド

タイプ

説明

index

整数タイプ

生成された選択肢のリスト内の選択肢のインデックス。

delta

チャットメッセージ

モデルから生成されたストリーム応答のチャット完了メッセージ部分。 最初のチャンクのみが role 入力されることが保証されます。

finish_reason

文字列

モデルがトークンの生成を停止した理由。 最後のチャンクのみに値が入力されます。

完了タスク

テキスト補完タスクは、1 つのプロンプトに対する応答を生成するためのものです。 チャットとは異なり、このタスクはバッチ入力をサポートしており、1 つのリクエストで複数の独立したプロンプトを送信できます。

完了要求

フィールド

デフォルト

タイプ

説明

prompt

文字列 または List[文字列]

必須です。 モデルのプロンプト。

max_tokens

nil

0 または nilより大きい整数で、無限大を表します。

生成するトークンの最大数。

stream

true

ブール値

要求の部分的な結果を許可するために、応答をクライアントに返します。 このパラメーターが要求に含まれている場合、応答は サーバー送信イベント 標準を使用して送信されます。

temperature

1.0

[0,2] の浮動小数点数

サンプリング温度。 0 は決定論的であり、値が大きいほどランダム性が高くなります。

top_p

1.0

浮動小数点数 (0,1)

核サンプリングに使用される確率しきい値。

top_k

nil

0 または nilより大きい整数で、無限大を表します。

top-k-フィルタリングに使用する可能性が最も高いk個のトークンの数を定義します。 この値を 1 に設定すると、出力が確定的になります。

error_behavior

"error"

"truncate" または "error"

タイムアウトおよびコンテキスト長超過エラーの場合。 "truncate" (できるだけ多くのトークンを返す) と "error" (エラーを返す) のいずれかです。このパラメーターは、トークンごとの支払いエンドポイントでのみ受け入れられます。

n

1

0 より大きい整数

nが指定されている場合、API はnの独立したチャット完了を返します。 推論の効率を高め、コストを削減するために、同じ入力で複数の入力候補を生成するワークロードに推奨されます。 プロビジョニングされたスループット エンドポイントでのみ使用できます。

stop

[]

文字列 または List[文字列]

モデルは、 stop 内のシーケンスのいずれかが検出されると、それ以上のトークンの生成を停止します。

suffix

""

文字列

すべての補完の末尾に追加される文字列。

echo

false

ブール値

プロンプトと完了を返します。

use_raw_prompt

false

ブール値

trueの場合、変換を行わずにpromptをモデルに直接渡します。

完了応答

フィールド

タイプ

説明

id

文字列

テキスト補完の一意の識別子。

choices

コンプリーションチョイス

テキスト補完のリスト。 渡されたプロンプトごとに、nが指定されている場合はn選択肢が生成されます。デフォルトのnは 1 です。

object

文字列

オブジェクトの種類。 等しい "text_completion"

created

整数タイプ

完了が生成された時間 (秒単位)。

usage

使用量

トークン使用状況メタデータ。

CompletionChoice

フィールド

タイプ

説明

index

整数タイプ

要求のプロンプトのインデックス。

text

文字列

生成された完了。

finish_reason

文字列

モデルがトークンの生成を停止した理由。

埋め込みタスク

埋め込みタスクは、入力文字列を埋め込みベクトルにマッピングします。 各要求で多くの入力をまとめてバッチ処理できます。

埋め込み要求

フィールド

タイプ

説明

input

文字列 または List[文字列]

必須です。 埋め込む入力テキスト。 文字列または文字列のリストを指定できます。

instruction

文字列

埋め込みモデルに渡すオプションの命令。

手順はオプションであり、モデル固有です。 たとえば、BGE の作成者は、チャンクのインデックス作成時に命令を推奨しておらず、検索クエリーに命令 "Represent this sentence for searching relevant passages:" を使用することを推奨しています。 Instructor-XLなどの他のモデルは、幅広い命令文字列をサポートしています。

埋め込み応答

フィールド

タイプ

説明

id

文字列

埋め込みの一意の識別子。

object

文字列

オブジェクトの種類。 "list"に等しい。

model

文字列

埋め込みの作成に使用された埋め込みモデルの名前。

data

EmbeddingObject (埋め込みオブジェクト)

埋め込みオブジェクト。

usage

使用量

トークン使用状況メタデータ。

EmbeddingObject

フィールド

タイプ

説明

object

文字列

オブジェクトの種類。 "embedding"に等しい。

index

整数タイプ

モデルによって生成された埋め込みのリスト内の埋め込みのインデックス。

embedding

List[浮動小数点数]

埋め込みベクトル。 各モデルは固定サイズのベクトル (BGE-Large の場合は 1024) を返します。