對話補全介面

請求與回應結構、串流輸出,以及 Anthropic / Gemini 協議的等價端點。

對話補全是使用頻率最高的端點:把一串訊息送給模型,取回生成的回覆。平台的主要入口是 OpenAI 相容協議;Anthropic 與 Gemini 協議則為同構的等價形式。

請求結構(OpenAI 相容)

POST {base}/chat/completions——鑑權方式見鑑權方式

{
  "model": "your-model",
  "messages": [
    {"role": "system", "content": "You are a support assistant."},
    {"role": "user", "content": "Where is my order?"},
    {"role": "assistant", "content": "Sure, may I have the order number?"},
    {"role": "user", "content": "A1024"}
  ],
  "temperature": 0.7,
  "max_tokens": 1024,
  "stream": false
}
  • messages 是依序排列的對話歷史;rolesystem / user / assistant。多輪對話時,客戶端會把完整歷史串接起來,每次重新送出;
  • temperature 越高輸出變化越大(常用範圍 0–1);max_tokens 限制回覆長度;
  • 串流輸出:設 "stream": true 時,回應會透過 SSE 逐段推送(choices[0].delta)——非常適合邊生成邊顯示文字。使用官方 SDK 時:傳入 stream=True 並迭代即可。

回應結構

非串流回應的主要欄位:

{
  "choices": [
    {
      "message": {"role": "assistant", "content": "..."},
      "finish_reason": "stop"
    }
  ],
  "usage": {"prompt_tokens": 58, "completion_tokens": 132, "total_tokens": 190}
}
  • choices[0].message.content 是回覆內容;finish_reasonstop 表示自然結束,length 表示被 max_tokens 截斷;
  • usage 是本次呼叫的 Token 消耗——計費與「帳戶」頁都以此為依據。

其他協議的等價端點

  • AnthropicPOST {base}/v1/messages——欄位名稱不同(max_tokens 為必填,回覆放在 content 陣列中),語意其餘完全相同;
  • GeminiPOST {base}/v1beta/models/{model}:generateContent——訊息放在 contents 陣列中。

三種協議互為同構;遷移基本上是欄位改名。實務上的做法是使用對應的官方 SDK(openai / @anthropic-ai/sdk / @google/genai),並把 base_url 指向平台。