对话补全

所有模型共用一个端点,通过 model 参数切换。请求与响应格式与 OpenAI Chat Completions 一致,现有 SDK 直接可用。

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

请求参数

参数类型说明
model 必填string模型 ID,如 deepseek-chat、qwen-plus、claude-sonnet-4-5。可用模型见 模型列表
messages 必填array对话消息,每条包含 role(system / user / assistant)和 content(文本)
streamboolean是否流式返回,默认 false。见 流式输出
temperaturenumber采样温度,越高越发散。GPT-6 系列为推理模型,不支持此参数,网关会自动忽略
max_tokensinteger本次最多生成的 tokens 数。Claude 系列未填写时默认 1024;GPT 系列由网关自动转为 max_completion_tokens
conversation_idstring书童扩展:开启平台记忆。见 平台记忆
目前支持纯文本对话。tools、图片输入等参数暂不转发给上游,会被忽略。

示例

curl https://shutong.ai/api/v1/chat/completions \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $SHUTONG_API_KEY" \
  -d '{
    "model": "deepseek-chat",
    "messages": [{"role": "user", "content": "你好,用一句话介绍你自己"}]
  }'

带 system 提示与参数

import os
from openai import OpenAI

client = OpenAI(base_url="https://shutong.ai/api/v1", api_key=os.environ["SHUTONG_API_KEY"])
resp = client.chat.completions.create(
    model="deepseek-chat",
    messages=[
        {"role": "system", "content": "你是一名简洁的商务写作助手。"},
        {"role": "user", "content": "帮我写一句会议邀请的开场白"},
    ],
    temperature=0.7,
    max_tokens=300,
)
print(resp.choices[0].message.content)

响应

{
  "id": "chatcmpl-3f9a1c2b7d4e",
  "object": "chat.completion",
  "created": 1760256000,
  "model": "deepseek-chat",
  "choices": [{
    "index": 0,
    "message": { "role": "assistant", "content": "你好!我是一个 AI 助手……" },
    "finish_reason": "stop"
  }],
  "usage": { "prompt_tokens": 14, "completion_tokens": 28, "total_tokens": 42 }
}
字段说明
choices[0].message.content模型的回答
usage本次消耗的 tokens,计费以此为准
conversation_id仅在开启平台记忆时返回