文本模型
文本模型同步调用,同时兼容 Chat Completions、Responses 与 Anthropic Messages 三种请求格式。现有代码只需换成秒做的地址和 Key,就能直接使用。
三种兼容格式
| 格式 | 接口 | SDK 配置 | 编号前缀 |
|---|---|---|---|
| Chat Completions | POST /v1/chat/completions | OpenAI 官方 SDK:base_url 设为 https://api.miaozuo.cn/v1,api_key 填秒做 Key | mzchat_ |
| Responses | POST /v1/responses | mzresp_ | |
| Anthropic Messages | POST /v1/messages | Anthropic 官方 SDK:base_url 设为 https://api.miaozuo.cn(不带 /v1),api_key 填秒做 Key | mzmsg_ |
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] |
| Responses | response.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 |
| Messages | message_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}
}'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。点数不足直接返回 402insufficient_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。