Chat completion (チャット補完) APIは、与えられた会話履歴に基づいて応答を生成します。テキストベースの入力およびマルチモーダル入力の両方に対応しています。
詳細な使用方法については、テキスト生成機能のドキュメントをご参照ください。

エンドポイント

POST https://api.sambanova.ai/v1/chat/completions

リクエストパラメータ

以下は、chat completionリクエストに必要なパラメータに関する情報です。

必須パラメータ

パラメータ説明
modelString使用するモデルの名称。対応モデルをご覧ください。
messagesArray会話履歴。各メッセージにはrolecontentが必要です。 メッセージオブジェクトの構造 をご確認ください。

メッセージオブジェクトの構造

messages 配列内の各オブジェクトは以下のフィールドを持ちます。
フィールド説明
roleStringメッセージの発信者を示します。指定可能な値は systemuserassistantです。
contentMixedメッセージの内容。テキストのみの場合は文字列、マルチモーダルコンテンツの場合は配列形式になります。テキストおよびマルチモーダルの例をご参照ください。

テキスト形式の例

"content": "Answer the question in a couple sentences."

マルチモーダル形式の例

[
  { "type": "text", "text": "What's in this image?" },
  { "type": "image_url", "image_url": { "url": "base64 encoded string of image" } }
]

オプションパラメータ

以下は、モデルの挙動を調整するために使用可能なオプションパラメータです。各パラメータの型、説明、デフォルト値を記載しています。
パラメータ説明値の範囲・デフォルト値
max_tokensInteger出力する最大トークン数。モデルのコンテキスト長によって制限されます。なし
temperatureFloat出力のランダム性を制御します。値が大きいほど多様性が増します。0 ~ 1
top_pFloatトークンの選択確率に制限を加え、多様な応答を生成します。0 ~ 1
top_kIntegerトークン選択の候補数を制限します。1 ~ 100
stopString, array, null出力を停止するトークン列を最大4つ指定できます。応答の長さ制御に役立ちます。デフォルト: null
streamBoolean, nulltrue に設定すると、応答がストリーミング形式で返されます。false の場合は、すべての応答が生成完了後にまとめて返されます。デフォルト: false
stream_optionsObject, nullstream: trueの場合における、追加のストリーミングオプションを指定します。現在は include_usage (boolean) のみ使用できます。デフォルト: null

Function calling パラメータ

Function callingに対応するモデルでは、以下の3つのパラメータが使用可能です。詳細は function calling のドキュメントを御覧ください。
パラメータ説明
toolsArrayモデルが呼び出せる外部ツール (現在は関数のみ対応) を定義します。詳細は toolsパラメータの使用例 をご参照ください。None
response_formatObject出力を有効なJSON形式に整えます。構造化された応答を得たい場合は { "type": "json_object" } を指定してください。 また、出力形式を事前に定義したJSONスキーマに準拠させる場合は{"type": "json_schema", "json_schema": { ... }} を使用します。これにより、生成される応答が指定したスキーマに準拠するようモデルの出力が制約されます。None
tool_choiceString, objectツールの使用方法を制御します。auto (自動)、required(強制)、または特定の関数を指定可能です。詳細はtool_choiceの値一覧 をご参照ください。デフォルト: auto

toolsパラメータの使用例

以下の表は、tools パラメータの構造を示しています。
オブジェクトのフィールド説明
Functionname (string)呼び出す関数の名前。
description (string)関数の機能の簡潔な説明。
parameters (object)関数の引数を定義するオブジェクト。
parameters.type (string)parameters オブジェクトのデータ型。 (常に "object" を指定します。)
parameters.properties (object)各引数とそのプロパティを定義します。
parameters.properties.<param_name> (object)各引数はオブジェクトとして定義されtype (データ型) と description (説明) を含みます。
parameters.required (array)関数の実行に必要な引数を列挙した配列。

tool_choiceに指定可能な値

以下の表は、tool_choice パラメータによってモデルが外部関数とどのように連携するかを示しています。
説明
auto応答の生成と関数の呼び出しをモデルが自動的に選択しますtool_choiceを指定しない場合のデフォルト動作です。
requiredモデルに関数の呼び出しを強制します。必ず1つ以上の関数が選択されて呼び出されます。

リクエスト例

以下は、テキストモデルに対してストリーミング応答を要求する際のリクエストボディの例です。
Example text model request
{
   "messages": [
      {"role": "system", "content": "Answer the question in a couple sentences."},
      {"role": "user", "content": "Share a happy story with me"}
   ],
   "max_tokens": 800,
   "stop": ["[INST", "[INST]", "[/INST]", "[/INST]"],
   "model": "Meta-Llama-3.1-8B-Instruct",
   "stream": true, 
   "stream_options": {"include_usage": true}
}

レスポンス形式の例

このAPIは、通常のリクエストに対してはchat completionオブジェクトを、ストリーミングが有効な場合にはチャンク形式のchat completionオブジェクトのシーケンスを返します。

Chat completionレスポンス

指定された入力に基づき、モデルが返すchat completion応答を示します。
Chat completing response
{
    "id": "chatcmpl-123",
    "object": "chat.completion",
    "created": 1677652288,
    "model": "Llama-3-8b-chat",
    "choices": [
        {
            "index": 0,
            "message": {
                "role": "assistant",
                "content": "\n\nHello there, how may I assist you today?",
            },
            "logprobs": null,
            "finish_reason": "stop",
        }
    ],
}

ストリーミングレスポンス (チャンク形式)

指定された入力に基づき、モデルが返すチャンク形式のストリーミング応答を示します。
Streaming chat response (chunked)
{
  "id": "chatcmpl-123",
  "object": "chat.completion.chunk",
  "created": 1694268190,
  "model": "Llama-3-8b-chat",
  "system_fingerprint": "fp_44709d6fcb",
  "choices": [
    {
      "index": 0,
      "delta": {},
      "logprobs": null,
      "finish_reason": "stop"
    }
  ]
}

レスポンス形式

以下の表では、主要なプロパティに関する情報をまとめています。
リクエストが失敗した場合、レスポンスボディにはエラーの詳細を含む JSON オブジェクトが返されます。エラーに関する詳細は、APIエラーコード のドキュメントをご参照ください。
プロパティ説明
idStringchat completion を一意に識別する ID。
choicesArray一つの chat completion を含む配列。
createdIntegerchat completion が作成された時刻を示す Unix タイムスタンプ (秒単位)。すべてのチャンクで同じタイムスタンプが使用されます。
modelString応答の生成に使用されたモデル。
objectStringオブジェクトの種類。常に chat.completion となります。
usageObjectstream_options: {"include_usage": true} が設定されている場合にのみ含まれるオプション項目。最終チャンクを除き値は null であり、最終チャンクにトークン使用統計が含まれます。
throughput_after_first_tokenFloat最初のトークンが出力された後のスループット (トークン/秒)。
time_to_first_tokenFloat最初のトークンが生成されるまでの時間 (秒)。
model_execution_timeFloat応答全体またはすべてのトークンを生成するのにかかった時間 (秒)。
output_tokens_countInteger応答として生成されたトークン数。
input_tokens_countInteger入力プロンプト内のトークン数。
total_tokens_countInteger入力トークン数と出力トークン数の合計。
queue_timeFloatリクエストがキュー内でモデルによる処理を待機していた時間 (秒)。