Skip to content

Chat Completions

根据对话历史创建模型响应,支持流式与非流式。完全兼容 OpenAI Chat Completions API。

POST https://api.wrouter.io/v1/chat/completions

请求头

Header必填说明
AuthorizationBearer sk-...
Content-Typeapplication/json

请求体参数

参数类型必填说明
modelstring模型 ID,如 gpt-4oclaude-sonnet-4-5gemini-2.5-prodeepseek-chat
messagesarray对话消息列表,详见下文
temperaturenumber采样温度,0~2,默认 1
top_pnumber核采样,0~1
ninteger生成数量,默认 1
streambooleantrue 时启用 SSE 流式
stream_optionsobject例如 {"include_usage": true}
stopstring | string[]停止序列
max_tokensinteger最大输出 token 数
max_completion_tokensintegerOpenAI o-系列推理模型使用
presence_penaltynumber-2~2
frequency_penaltynumber-2~2
logit_biasobjecttoken 偏置
userstring业务方用户标识
toolsarrayFunction calling 工具定义
tool_choicestring | object"auto""none""required" 或指定函数
response_formatobject例如 {"type":"json_object"} 或 JSON Schema
seedinteger确定性采样种子
reasoning_effortstring"low" | "medium" | "high"(推理模型)
modalitiesarray多模态输出,如 ["text","audio"]
audioobject音频输出参数

messages 结构

json
[
  {"role": "system", "content": "你是一个有帮助的助手。"},
  {"role": "user", "content": "你好"},
  {"role": "assistant", "content": "你好!有什么可以帮你?"},
  {"role": "user", "content": [
    {"type": "text", "text": "描述这张图"},
    {"type": "image_url", "image_url": {"url": "https://..."}}
  ]}
]
  • rolesystem | user | assistant | tool
  • content:字符串 或 多模态数组(支持 text / image_url / input_audio

响应(非流式)

json
{
  "id": "chatcmpl-xxx",
  "object": "chat.completion",
  "created": 1718000000,
  "model": "gpt-4o-2024-08-06",
  "choices": [
    {
      "index": 0,
      "message": {"role": "assistant", "content": "你好!"},
      "finish_reason": "stop"
    }
  ],
  "usage": {
    "prompt_tokens": 12,
    "completion_tokens": 6,
    "total_tokens": 18
  }
}

响应(流式 SSE)

设置 stream: true 后,响应为 text/event-stream,每个事件:

data: {"id":"chatcmpl-xxx","object":"chat.completion.chunk","choices":[{"index":0,"delta":{"content":"你"},"finish_reason":null}]}
data: {"id":"chatcmpl-xxx","choices":[{"index":0,"delta":{"content":"好"}}]}
data: [DONE]

设置 stream_options.include_usage = true 时,最后一个非 [DONE] chunk 会带 usage 字段。

示例

curl

bash
curl https://api.wrouter.io/v1/chat/completions \
  -H "Authorization: Bearer $WROUTER_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "gpt-4o-mini",
    "messages": [{"role":"user","content":"用一句话介绍 wrouter"}],
    "temperature": 0.7
  }'

Python(流式 + 工具)

python
from openai import OpenAI
client = OpenAI(api_key="sk-...", base_url="https://api.wrouter.io/v1")

tools = [{
  "type": "function",
  "function": {
    "name": "get_weather",
    "description": "查询天气",
    "parameters": {
      "type": "object",
      "properties": {"city": {"type": "string"}},
      "required": ["city"]
    }
  }
}]

stream = client.chat.completions.create(
    model="claude-sonnet-4-5",
    messages=[{"role": "user", "content": "上海现在天气?"}],
    tools=tools,
    stream=True,
)
for chunk in stream:
    delta = chunk.choices[0].delta
    if delta.content:
        print(delta.content, end="", flush=True)

调用 Claude / Gemini

只需更换 model ID:

模型族示例 ID
OpenAIgpt-4ogpt-4o-minigpt-5o3-mini
Anthropicclaude-sonnet-4-5claude-opus-4-1claude-haiku-4-5
Googlegemini-2.5-progemini-2.5-flash
DeepSeekdeepseek-chatdeepseek-reasoner
Qwenqwen-maxqwen-plusqwen3-coder
Doubaodoubao-1-5-pro-256kdoubao-seed-1-6

完整列表见 https://wrouter.io/models

错误

常见错误见 错误码