TokenLab

文字

建立回應

使用 OpenAI Responses API 格式建立回應

POST
/v1/responses

模型詳情中的 accepted_request_formats 包含 openai_responses 時,可以使用此介面。請求與回應使用 Responses API 格式,可選欄位及其值取決於所選模型。

請求主體

modelstring必填

要使用的模型 ID。請參見 Models 以了解可用選項。

inputstring | array

當請求改用可重用 prompt,或透過 previous_response_id 延續已儲存回應時,可以省略 input。

由對話組成的輸入項目清單。

每個項目可以是:

  • message: 含有 role 與 content 的對話訊息
  • function_call: 一個函式呼叫請求
  • function_call_output: 函式呼叫的輸出

對於多模態輸入,message.content 可以是純字串或內容區塊的陣列。對於支援影像的模型(例如 GPT-5.6 Terra 變體),請將影像作為 input_image 區塊傳遞,而非將 URL 或 Base64 字串直接嵌入純文字中。

範例內容區塊:

  • { "type": "input_text", "text": "Describe this image" }
  • { "type": "input_image", "image_url": "https://example.com/image.jpg" }
  • { "type": "input_image", "image_url": "data:image/png;base64,..." }
instructionsstring

提供給模型的系統指示(等同於 system message)。

max_output_tokensinteger

可生成的最大 token 數。

temperaturenumber

取樣溫度。支援的值與預設值取決於所選模型。

toolsarray

模型可以呼叫的工具。支援的類型與組合取決於所選模型。

streamboolean預設值: false

若為 true,則回傳事件串流。

previous_response_idstring

先前回應的 ID,用於從該回應延續對話。

storeboolean預設值: true

是否儲存回應以便日後擷取。

backgroundboolean預設值: false

請求非同步執行,是否支援取決於所選模型。

promptobject

可重用提示詞範本及變數的參照。

metadataobject

附加至回應的 metadata 以供追蹤使用。

textobject

文字輸出設定。是否支援 text.format 取決於所選模型。

parallel_tool_callsboolean預設值: true

是否允許多個工具並行呼叫。

top_pnumber

Nucleus 抽樣參數(0-1)。

reasoningobject

推理選項(包括 effort)取決於所選模型。

回應

idstring

回應的唯一識別碼。

objectstring

恆為 response。

created_atinteger

回應建立的 Unix 時間戳。

statusstring

回應狀態:queued、in_progress、completed、incomplete、failed 或 cancelled。即使 HTTP 請求成功,也要檢查此欄位。

outputarray

模型產生的輸出項目清單。

usageobject

Token 使用統計。

相關端點

  • GET /v1/responses/{id} 取得已儲存的回應,支援 include、include_obfuscation、stream 與 starting_after。
  • DELETE /v1/responses/{id} 刪除已儲存的回應,不會取消生成。
  • POST /v1/responses/compact 傳回 response.compaction 物件。
  • 目前不提供取消、input-items 或 input-tokens 端點。

請求

cURL
curl -X POST "https://api.tokenlab.sh/v1/responses" \
  -H "Authorization: Bearer sk-your-api-key" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "gpt-5.6-terra",
    "input": [
      {"type": "message", "role": "user", "content": "Hello!"}
    ],
    "max_output_tokens": 1000
  }'
Python
from openai import OpenAI

client = OpenAI(
    api_key="sk-your-api-key",
    base_url="https://api.tokenlab.sh/v1"
)

response = client.responses.create(
    model="gpt-5.6-terra",
    input=[
        {"type": "message", "role": "user", "content": "Hello!"}
    ],
    max_output_tokens=1000
)

print(response.output)
JavaScript
import OpenAI from 'openai';

const client = new OpenAI({
  apiKey: 'sk-your-api-key',
  baseURL: 'https://api.tokenlab.sh/v1'
});

const response = await client.responses.create({
  model: 'gpt-5.6-terra',
  input: [
    { type: 'message', role: 'user', content: 'Hello!' }
  ],
  max_output_tokens: 1000
});

console.log(response.output);
Go
package main

import (
    "bytes"
    "encoding/json"
    "fmt"
    "net/http"
)

func main() {
    payload := map[string]interface{}{
        "model": "gpt-5.6-terra",
        "input": []map[string]interface{}{
            {"type": "message", "role": "user", "content": "Hello!"},
        },
        "max_output_tokens": 1000,
    }
    body, _ := json.Marshal(payload)

    req, _ := http.NewRequest("POST", "https://api.tokenlab.sh/v1/responses", bytes.NewBuffer(body))
    req.Header.Set("Authorization", "Bearer sk-your-api-key")
    req.Header.Set("Content-Type", "application/json")

    client := &http.Client{}
    resp, _ := client.Do(req)
    defer resp.Body.Close()

    var result map[string]interface{}
    json.NewDecoder(resp.Body).Decode(&result)
    fmt.Println(result["output"])
}
PHP
<?php
$ch = curl_init('https://api.tokenlab.sh/v1/responses');

curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_POST => true,
    CURLOPT_HTTPHEADER => [
        'Content-Type: application/json',
        'Authorization: Bearer sk-your-api-key'
    ],
    CURLOPT_POSTFIELDS => json_encode([
        'model' => 'gpt-5.6-terra',
        'input' => [
            ['type' => 'message', 'role' => 'user', 'content' => 'Hello!']
        ],
        'max_output_tokens' => 1000
    ])
]);

$response = curl_exec($ch);
curl_close($ch);

$data = json_decode($response, true);
print_r($data['output']);

視覺輸入範例

對於支援影像的模型,請將影像放在 message.content 中,使用 input_image 區塊。image_url 的值可以是公開 URL 或 Base64 資料 URL。

{
  "model": "gpt-5.6-terra",
  "input": [
    {
      "type": "message",
      "role": "user",
      "content": [
        {
          "type": "input_text",
          "text": "Please describe this image."
        },
        {
          "type": "input_image",
          "image_url": "https://example.com/demo.jpg"
        }
      ]
    }
  ]
}
{
  "model": "gpt-5.6-terra",
  "input": [
    {
      "type": "message",
      "role": "user",
      "content": [
        {
          "type": "input_text",
          "text": "Please describe this image."
        },
        {
          "type": "input_image",
          "image_url": "data:image/jpeg;base64,/9j/4AAQSkZJRgABAQ..."
        }
      ]
    }
  ]
}

回應

Response
{
  "id": "resp_abc123",
  "object": "response",
  "created_at": 1706000000,
  "status": "completed",
  "model": "gpt-5.6-terra",
  "output": [
    {
      "id": "msg_abc123",
      "type": "message",
      "status": "completed",
      "role": "assistant",
      "content": [
        {"type": "output_text", "text": "Hello! How can I help you today?", "annotations": []}
      ]
    }
  ],
  "usage": {
    "input_tokens": 10,
    "output_tokens": 12,
    "total_tokens": 22
  }
}

授權

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