盈算智服 · 开发者指南思考模型避坑指南:为什么你的 API 返回了空内容,以及如何修复
适用模型:DeepSeek V4-Flash / V4-Pro(默认开深度思考)、智谱 GLM-5.2(默认开深度思考)、通义千问 Qwen3.7 系列(新接入)、MiniMax-M3(默认 adaptive thinking,新接入)、Kimi K3(需 max_tokens≥16000)
一、你遇到的现象
请求返回了 HTTP 200,没有报错,但 choices[0].message.content 是空的:
{
"choices": [{ "message": { "role": "assistant", "content": "" }, "finish_reason": "stop" }],
"usage": { "completion_tokens": 100, "reasoning_tokens": 95 }
}
一眼看过去像是「API 坏了」。其实不是——是思考模型把你的输出额度吃光了。
二、根因:默认开「深度思考」,max_tokens 被推理过程吃掉
新一代模型(DeepSeek V4 系列、智谱 GLM-5.2)默认开启深度思考(reasoning)。一次回复由两部分组成:
- 推理 token(reasoning_tokens):模型在「内心思考」时消耗的 token
- 内容 token(content):真正返回给你的文字
如果你在请求里传了较小的 max_tokens(比如 100、200),而思考过程本身就用了 95 个 token,留给真正内容的就只剩 5 个甚至 0 个 → 于是你拿到空 content。
我们在真实调用中复现过:
max_tokens:100 时 reasoning_tokens:95,content 为空;调到 1024 后正常返回结果。三、哪些模型有这个坑
| 模型 | 默认思考? | 安全建议 |
|---|---|---|
| deepseek-v4-flash | ✅ 默认开 | max_tokens ≥ 1024;或显式关闭思考 |
| deepseek-v4-pro | ✅ 默认开 | max_tokens ≥ 1024;或显式关闭思考 |
| glm-5.2 | ✅ 默认开 | max_tokens ≥ 1024 |
| Kimi K3 | 关,但有最低门槛 | max_tokens 必须 ≥ 16000,否则返回空 |
| glm-4-flash / Qwen 等轻量模型 | ❌ 默认关 | 一般无需特别处理 |
四、修复方法(三选一)
方案 A:给 max_tokens 一个安全值(最简单,推荐)
把 max_tokens 调大到 1024 以上即可。
curl https://yingsuan.top/v1/chat/completions \
-H "Authorization: Bearer 你的KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "deepseek-v4-flash",
"messages": [{"role": "user", "content": "用一句话解释量子纠缠"}],
"max_tokens": 2000
}'
# Python(OpenAI SDK)
from openai import OpenAI
client = OpenAI(api_key="你的KEY", base_url="https://yingsuan.top/v1")
resp = client.chat.completions.create(
model="deepseek-v4-flash",
messages=[{"role": "user", "content": "用一句话解释量子纠缠"}],
max_tokens=2000
)
print(resp.choices[0].message.content)
// Node.js
import OpenAI from "openai";
const client = new OpenAI({ apiKey: "你的KEY", baseURL: "https://yingsuan.top/v1" });
const resp = await client.chat.completions.create({
model: "deepseek-v4-flash",
messages: [{ role: "user", content: "用一句话解释量子纠缠" }],
max_tokens: 2000,
});
console.log(resp.choices[0].message.content);
方案 B:直接关掉思考(要速度 / 省钱时用)
如果你做的是简单分类、抽取、翻译,不需要推理,关掉思考既快又省:
// DeepSeek V4 系列
{ "model": "deepseek-v4-flash", "messages": [...], "reasoning_effort": "none" }
// 或 Anthropic 风格字段
{ "model": "deepseek-v4-flash", "messages": [...], "thinking": { "type": "disabled" } }
// 智谱 GLM-5.2
{ "model": "glm-5.2", "messages": [...], "thinking": { "type": "disabled" } }
⚠️ 注意:传
"thinking": false 会报 400,正确值是 "type": "disabled"。方案 C:Kimi K3 专用
{ "model": "kimi-k3", "messages": [...], "max_tokens": 16000 }
五、盈算智服已经帮你做的防护
为防止你踩坑,网关层已加自动护栏:
- 对思考模型(deepseek-v4-flash / v4-pro / glm-5.2),如果你传的
max_tokens小于 1024,网关会自动提到 1024(只上调、绝不下调你的显式大值)。 - 对其他模型,如果你没传
max_tokens,网关默认给 2048。
但你如果显式传了很小的 max_tokens(比如抄了别人的 100),网关尊重你的选择、不会覆盖——所以请按方案 A 调大。
六、开始免费试用
免费套餐:100 次请求,含 DeepSeek V4-Flash(1M 上下文)、GLM-4-Flash、Qwen2.5-7B。限时推广:V4-Flash 额外 20 次免费。走 Wise 银行转账,无需信用卡。遇到任何返回异常,把请求体和报错发邮件给我们,24 小时内回复。