TokenLab

文字

建立聊天補全 (Create Chat Completion)

為聊天訊息建立補全內容

POST
/v1/chat/completions

請求主體 (Request Body)

支援的選用參數、可接受的值以及預設值取決於所選的模型。在設定取樣 (sampling)、推理 (reasoning) 或工具選項之前,請先查看其 模型詳細資訊。

modelstring必填

要使用的模型 ID。請參閱 模型 (Models) 以獲取可用選項。

messagesarray必填

組成對話的訊息列表。

每個訊息物件包含:

  • role (string): system, developer, user, assistant, tool, function
  • content (string | array | null): 訊息內容

對於包含 tool_calls 的 assistant 訊息,content 可以省略或設為 null。

當 content 為陣列時,TokenLab 支援相容模型的結構化多模態區塊:

  • 文字: { "type": "text", "text": "..." }
  • 圖片: { "type": "image_url", "image_url": { "url": "https://..." } }
  • 影片: { "type": "video_url", "video_url": { "url": "https://..." } }
  • 音訊: { "type": "audio_url", "audio_url": { "url": "https://..." } }

對於多模態輸入,請使用可公開存取的 https URL。支援的媒體類型取決於所選模型。

temperaturenumber

取樣溫度。支援性、允許的值以及預設值取決於所選模型;省略此欄位將使用其預設值。

max_tokensinteger

要生成的最大 token 數量。

streamboolean預設值: false

若為 true,部分訊息增量 (deltas) 將以 SSE 事件形式發送。

stream_optionsobject

串流選項。設定 include_usage: true 以在串流區塊中接收 token 使用量。

top_pnumber

核取樣 (Nucleus sampling) 參數。我們建議調整此參數或 temperature,而非兩者同時調整。

frequency_penaltynumber

介於 -2.0 到 2.0 之間的數字。正值會懲罰重複出現的 token。

presence_penaltynumber

介於 -2.0 到 2.0 之間的數字。正值會懲罰已出現在文字中的 token。

stopstring | array

停止序列或序列列表。支援性與序列限制取決於所選模型。

toolsarray

模型可以呼叫的工具列表(函式呼叫)。

tool_choicestring | object

控制模型如何使用工具。選項:auto, none, required,或特定的工具物件。

parallel_tool_callsboolean

當所選模型支援時,允許在一次 assistant 回合中進行多次工具呼叫。

max_completion_tokensinteger

補全內容的最大 token 數。這是 max_tokens 的替代方案,對於較新的啟用推理功能的模型系列很有用。

reasoning_effortstring

針對支援此功能的模型設定推理強度。可接受的值取決於所選模型。

對於 Claude 模型,此值設定模型的思考方式:在具有自適應思考的模型上設定強度等級,或在有思考預算的模型上設定思考預算。none 會在允許的模型上關閉思考功能。當思考功能開啟時,Claude 會拒絕 temperature 不為 1、top_k、top_p 不在 0.95–1 之間以及預填的 assistant 訊息。強制 tool_choice 可與自適應思考搭配使用,但不能與思考預算搭配使用。

anthropic_optionsobject

Claude 模型的選項。

  • prompt_caching (boolean): 設定為 true 以快取提示詞的開頭。TokenLab 會將系統提示詞的結尾和最新的使用者訊息標記為快取點。後續以相同內容開頭的請求將從快取中讀取。若任何訊息已包含 cache_control,TokenLab 將不會新增快取點。
  • prompt_caching_ttl (string): 5m (預設) 或 1h。若服務路由不支援一小時,TokenLab 將使用五分鐘且不會拒絕請求。

extra.prompt_caching 和 extra.prompt_caching_ttl 也被視為相同的選項。請參閱 提示詞快取 (Prompt caching) 以了解價格以及如何檢查快取的 token。

seedinteger

支援此功能的模型的取樣種子 (seed)。不保證輸出完全相同。

ninteger

要生成的補全數量 (1-128)。

logprobsboolean

是否返回對數機率 (log probabilities)。

top_logprobsinteger

要返回的前幾個對數機率數量 (0-20)。需要 logprobs: true。

top_kinteger

支援此功能的模型的 Top-K 取樣。

response_formatobject

回應格式。使用 {"type": "json_object"} 進行 JSON 模式,或使用 {"type": "json_schema", "json_schema": {...}} 進行 JSON schema。支援性取決於所選模型。

logit_biasobject

修改指定 token 出現的可能性。將 token ID(以字串形式)對應到 -100 到 100 之間的偏差值。

userstring

代表您終端使用者的唯一識別碼,用於濫用監控。

回應 (Response)

idstring

補全內容的唯一識別碼。

objectstring

固定為 chat.completion。

createdinteger

補全內容建立時的 Unix 時間戳記。

modelstring

用於補全的模型。

choicesarray

補全選項列表。

每個選項包含:

  • index (integer): 選項的索引
  • message (object): 生成的訊息
  • finish_reason (string): 模型停止的原因,例如 stop, length 或 tool_calls

當模型進行思考時,message 也可能包含:

  • reasoning_content (string): 思考文字。某些模型僅返回摘要,或不返回文字。
  • reasoning_details (array): 帶有簽章的思考區塊。若要繼續帶有思考的對話(例如在工具呼叫之後),請將它們原封不動地傳回 assistant 訊息中。

在串流中,相同的欄位會以 delta.reasoning_content 和 delta.reasoning_details 的形式傳送。

usageobject

Token 使用統計。

  • prompt_tokens (integer): 提示詞中的 token 數
  • completion_tokens (integer): 補全內容中的 token 數,包含思考 token
  • total_tokens (integer): 使用的總 token 數
  • completion_tokens_details.reasoning_tokens (integer): 當模型回報時的思考 token 數

請求

curl -X POST "https://api.tokenlab.sh/v1/chat/completions" \
  -H "Authorization: Bearer sk-your-api-key" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "gpt-5.6-terra",
    "messages": [
      {"role": "system", "content": "You are a helpful assistant."},
      {"role": "user", "content": "Hello!"}
    ],
    "max_tokens": 1000
  }'

多模態範例 (Multimodal Example)

{
  "model": "gemini-2.5-pro",
  "messages": [
    {
      "role": "user",
      "content": [
        { "type": "text", "text": "Describe this video briefly." },
        { "type": "video_url", "video_url": { "url": "https://example.com/demo.mp4" } }
      ]
    }
  ],
  "max_tokens": 64
}

回應

Response
{
  "id": "chatcmpl-abc123",
  "object": "chat.completion",
  "created": 1706000000,
  "model": "gpt-5.6-terra",
  "choices": [
    {
      "index": 0,
      "message": {
        "role": "assistant",
        "content": "Hello! How can I help you today?"
      },
      "finish_reason": "stop"
    }
  ],
  "usage": {
    "prompt_tokens": 20,
    "completion_tokens": 9,
    "total_tokens": 29
  }
}

授權

BearerAuth
AuthorizationBearer <token>

API Key 驗證。請在 Dashboard > API > API Keys 建立或管理 API 金鑰。

位置: header

請求標頭

X-TokenLab-Delivery-Policy?string

單次請求傳遞策略。會覆寫 API key 與 Workspace 的預設值。系統會自動優先嘗試 TokenLab Verified,並可能在輸出、請求接受或建立持久性資源前切換至 Official 模式一次。

可選值

  • "auto"
  • "verified"
  • "official"

請求主體

application/json

回應

application/json

application/json

application/json

application/json

application/json

application/json

application/json