チャット完了APIは、与えられた会話に基づいて応答を生成します。テキストベースとマルチモーダルの両方の入力をサポートしています。
詳細についてはテキスト生成機能のドキュメントをご参照ください。

エンドポイント

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

リクエストパラメータ

以下の表は、チャット完了リクエストを行うために必要なパラメータ、パラメータタイプ、および説明を示しています。

必須パラメータ

パラメータタイプ説明
modelStringクエリを実行するモデルの名前。サポートされているモデルリストをご参照ください。
messagesArray会話履歴。各メッセージにはrolecontentがあります。メッセージオブジェクトの構造を参照してください。

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

配列内の各メッセージオブジェクトはmessagesで構成されていますrolecontent
フィールドタイプ説明
roleStringメッセージ作成者の役割。選択肢:systemuser、またはassistant
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, nullAPIが応答生成を停止すべき最大4つのシーケンスを指定します。これは出力の長さを制御するのに役立ちます。Default: null
streamBoolean, nullに設定すると、ストリーミング応答が有効になりますtruefalseの場合、完了後に完全な応答が返されます。Default: false
stream_optionsObject, null追加のストリーミングオプションを指定します(stream: trueの場合のみ)。利用可能なオプション:include_usage: booleanDefault: null

関数呼び出しパラメータ

関数呼び出しをサポートするモデルには、以下の3つのパラメータが使用可能です。これらのパラメータと対応モデルについての詳細は関数呼び出しページでご確認いただけます。
パラメータタイプ説明
toolsArrayモデルが呼び出せる外部ツールを定義します(現在は関数のみサポート)。ツールパラメータの使用法表を参照。なし
response_formatObject出力が有効なJSONであることを保証します。{ "type": "json_object" }を構造化された応答に使用します。なし
tool_choiceString, objectツールの使用を制御します(autorequired、または特定の関数)。tool_choice値表を参照してください。Default: auto

toolsパラメータの使用例

以下の表はtoolsパラメータの構造を説明しています。
タイプオブジェクトフィールド説明
Functionnamestring呼び出す関数の名前。
descriptionstring関数の機能に関する簡単な説明。
parametersobject関数パラメータを定義します。
parameters.typestringパラメータオブジェクトのデータ型(常に"object")。
parameters.propertiesobject関数パラメータとそのプロパティを定義します。
parameters.properties.<param_name>object各関数パラメータは以下のオブジェクトとして定義されます:type(データ型)とdescription(パラメータの説明)。
parameters.requiredarray関数に必要な必須パラメータのリスト。

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 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エラーコードページを参照してください。
プロパティタイプ説明
idStringチャット完了の一意の識別子。
choicesArray単一のチャット完了を含むリスト。
createdIntegerチャット完了が作成された時のUnixタイムスタンプ(秒単位)。各チャンクは同じタイムスタンプを持ちます。
modelString完了の生成に使用されたモデル。
objectStringオブジェクトタイプ、常にchat.completionです。
usageObjectオプションのフィールドでstream_options: {"include_usage": true}が設定されている場合に存在します。存在する場合、最後のチャンクを除いてnull値を含み、最後のチャンクにはリクエスト全体のトークン使用統計が含まれます。
throughput_after_first_tokenFloat最初のトークンが配信された後の出力トークンの生成レート(トークン/秒)。
time_to_first_tokenFloatモデルが最初のトークンを生成するのにかかる時間(秒)。
model_execution_timeFloat完全なレスポンスまたはすべてのトークンを生成するのに必要な時間(秒)。
output_tokens_countIntegerレスポンスで生成されたトークンの数。
input_tokens_countInteger入力プロンプトのトークン数。
total_tokens_count整数入力トークンと出力トークンの合計。
queue_time浮動小数点数リクエストがモデルによって処理される前にキューで待機する時間(秒単位)。