按 Token 计费支持流式

文本模型

文本模型同步调用,同时兼容 Chat Completions、Responses 与 Anthropic Messages 三种请求格式。现有代码只需换成秒做的地址和 Key,就能直接使用。

三种兼容格式

格式接口SDK 配置编号前缀
Chat CompletionsPOST /v1/chat/completionsOpenAI 官方 SDK:base_url 设为 https://api.miaozuo.cn/v1,api_key 填秒做 Keymzchat_
ResponsesPOST /v1/responsesmzresp_
Anthropic MessagesPOST /v1/messagesAnthropic 官方 SDK:base_url 设为 https://api.miaozuo.cn(不带 /v1),api_key 填秒做 Keymzmsg_
  • model 填秒做的文本模型编码(如 deepseek-v4-flash),见模型列表里调用方式为「文本对话」的模型。
  • 鉴权使用 Authorization: Bearer <API Key>;Messages 接口同时接受 x-api-key 头(Anthropic SDK 的默认方式)。
  • 开启了「必须签名」的 Key 调用文本接口时同样要带签名头,见鉴权与签名;不方便改 SDK 请求头时,请另建一个不签名的 Key 专门用于文本调用。
  • 返回中的 id、model 等字段均为秒做生成;各模型的最大输出 Token 见对应的模型文档页。

Chat Completions

curl https://api.miaozuo.cn/v1/chat/completions \
  -H "Authorization: Bearer $MIAOZUO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "deepseek-v4-flash",
    "messages": [
      {"role": "system", "content": "你是一名电商文案助手。"},
      {"role": "user", "content": "为一款保温杯写三条卖点,每条不超过 20 字。"}
    ],
    "max_tokens": 512
  }'

支持 messages(文字、图片)、max_tokens / max_completion_tokens、temperature、top_p、stop、stream、stream_options.include_usage、presence_penalty、frequency_penalty、seed、response_format、tools / tool_choice。n 只能为 1。

流式返回

请求里加 "stream": true,接口以 text/event-stream(SSE)逐段返回,响应头带 Cache-Control: no-cache 与 X-Accel-Buffering: no,经过反向代理时请关闭缓冲。

格式事件顺序
Chat Completions 每段 data: {chat.completion.chunk}:首段带 delta.role,之后逐段 delta.content,结束段带 finish_reason;加 "stream_options": {"include_usage": true} 时再多一段 choices: [] + usage;最后 data: [DONE]
Responsesresponse.created → response.in_progress → response.output_item.added → response.content_part.added → response.output_text.delta(多段)→ response.output_text.done → response.content_part.done → response.output_item.done → response.completed(输出被截断时为 response.incomplete),每个事件带 sequence_number
Messagesmessage_start → content_block_start → ping → content_block_delta(多段)→ content_block_stop → message_delta(stop_reason:end_turn / max_tokens)→ message_stop
curl -N https://api.miaozuo.cn/v1/chat/completions \
  -H "Authorization: Bearer $MIAOZUO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "deepseek-v4-flash",
    "messages": [{"role": "user", "content": "用一句话介绍秒做。"}],
    "stream": true,
    "stream_options": {"include_usage": true}
  }'
Chat Completions 流式返回示例
HTTP/1.1 200 OK
Content-Type: text/event-stream; charset=utf-8
Cache-Control: no-cache, no-transform
X-Accel-Buffering: no
X-Request-Id: req_wqi8cuchwm0lqostjmebpxit

data: {"id":"mzchat_2UWGeyaCPv8OfNja","object":"chat.completion.chunk","created":1791536769,"model":"deepseek-v4-flash","choices":[{"index":0,"delta":{"role":"assistant","content":""},"finish_reason":null}]}

data: {"id":"mzchat_2UWGeyaCPv8OfNja","object":"chat.completion.chunk","created":1791536769,"model":"deepseek-v4-flash","choices":[{"index":0,"delta":{"content":"秒做是"},"finish_reason":null}]}

data: {"id":"mzchat_2UWGeyaCPv8OfNja","object":"chat.completion.chunk","created":1791536769,"model":"deepseek-v4-flash","choices":[{"index":0,"delta":{"content":"一站式 AI 创作平台。"},"finish_reason":null}]}

data: {"id":"mzchat_2UWGeyaCPv8OfNja","object":"chat.completion.chunk","created":1791536769,"model":"deepseek-v4-flash","choices":[{"index":0,"delta":{},"finish_reason":"stop"}]}

data: {"id":"mzchat_2UWGeyaCPv8OfNja","object":"chat.completion.chunk","created":1791536769,"model":"deepseek-v4-flash","choices":[],"usage":{"prompt_tokens":16,"completion_tokens":12,"total_tokens":28}}

data: [DONE]

流式中途出错时,会发一个与该格式错误体相同结构的错误事件(Chat Completions 之后再发 data: [DONE]),code 为 service_unavailable、content_rejected 或 invalid_params。

Responses

curl https://api.miaozuo.cn/v1/responses \
  -H "Authorization: Bearer $MIAOZUO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "deepseek-v4-flash",
    "input": "为一款保温杯写三条卖点,每条不超过 20 字。",
    "max_output_tokens": 512
  }'

支持 input(字符串或消息数组)、instructions、max_output_tokens、temperature、top_p、stream。

暂不支持的参数

不支持服务端保存会话(previous_response_id,返回里的 store 恒为 false),多轮对话请每次携带完整上下文;不支持 tools,需要工具调用请用 Chat Completions 格式。传了这两个参数会返回 422 invalid_params。

Anthropic Messages

curl https://api.miaozuo.cn/v1/messages \
  -H "x-api-key: $MIAOZUO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "deepseek-v4-flash",
    "max_tokens": 512,
    "system": "你是一名电商文案助手。",
    "messages": [
      {"role": "user", "content": "为一款保温杯写三条卖点,每条不超过 20 字。"}
    ]
  }'

max_tokens 必填;支持 system(字符串或文字块)、messages(文字、图片块)、temperature、top_p、stop_sequences、stream。不支持 tools。SDK 自动附带的 anthropic-version 等头可以保留,秒做会忽略。

计费

  • 按输入 Token 与输出 Token 分别计价,单价以「点 / 百万 Token」标示,见各模型文档页或 GET /v1/pricing。
  • 请求开始时冻结:输入单价 × 估算输入 Token + 输出单价 × 最大输出 Token。最大输出 Token 取请求里的 max_tokens / max_completion_tokens / max_output_tokens,不传时用模型默认值,超过模型上限返回 422。点数不足直接返回 402 insufficient_points,不会开始生成。
  • 调用结束后按实际 Token 用量(usage)结算,多冻结的部分自动退回。
  • 流式调用中途断开连接时,按已生成的 Token 结算(调用记录里标记为 client_closed)。
  • 开始输出前失败、或中途因服务异常中断时,冻结的点数全额退回。
  • 输入内容未通过审核时返回 422 content_rejected,不扣点。
  • 每次调用的 Token 数与扣点都能在开放平台的调用记录里查到;提示词与输出内容默认不留存。

错误格式

文本接口的错误体沿用对应格式的结构,方便 SDK 正常抛出异常;type 与 code 都是秒做的字符串错误码,request_id 与响应头 X-Request-Id 相同;参数错误时多一个 details。

错误返回示例
// Chat Completions / Responses 格式
{
  "error": {
    "message": "点数余额不足,请先充值",
    "type": "insufficient_points",
    "code": "insufficient_points",
    "param": null,
    "request_id": "req_9vd3kq7xl2mp8stnw4ab6cde"
  }
}

// Messages 格式
{
  "type": "error",
  "error": {
    "type": "insufficient_points",
    "message": "点数余额不足,请先充值",
    "code": "insufficient_points",
    "request_id": "req_9vd3kq7xl2mp8stnw4ab6cde"
  }
}

请求体不是合法的 JSON 对象时,文本接口返回 400 bad_request。