先检查响应json中choices[0].message.content是否为非空字符串,再确认enable_thinking启用时是否完整消费所有流式chunk,最后排查代理或网关静默清空content及端点、模型名拼写错误。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

调用DeepSeek API后拿到一个空荡荡的响应体,既没报错也没内容,连个error字段都不见,调试窗口里只看到{}或null——这不是网络超时,也不是密钥失效,而是服务端悄悄截断或客户端漏读了关键字段。
检查响应结构与content字段是否存在
DeepSeek V4的响应必须含choices数组,且choices[0].message.content不能为null、空字符串或纯空白字符。很多开发者直接print(response)就以为完事,结果根本没进到JSON深层。
用curl发一次原始请求,禁用SDK封装:curl -X POST https://api.deepseek.com/v1/chat/completions -H "Authorization: Bearer sk-xxx" -H "Content-Type: application/json" -d '{"model":"deepseek-chat","messages":[{"role":"user","content":"hello"}]}'
确认HTTP状态码是200,且响应头Content-Type确为application/json——若返回200但body为空,说明问题出在模型侧或中间层过滤,不是客户端连不上。
逐层解析JSON:先看有没有choices → choices是不是非空数组 → choices[0]有没有message → message里有没有content键 → 【content值必须是非空字符串,不能是null、""或"\u200b"这类零宽字符】。
如果content存在但为空,说明生成被中断,不是请求发错了,得往下查thinking模式或代理过滤。
验证是否启用了enable_thinking且流式消费不完整
当你在请求里加了"enable_thinking": true,DeepSeek V4-Pro会先吐reasoning_content,最后才给final content。如果代码只等delta.content第一次非空就break,那90%的内容都丢了。
方法一:关掉thinking模式,把请求体里的"extra_body": {"enable_thinking": true}删掉,改用同步非流式请求,看content是否正常返回。
方法二:坚持用stream,就必须完整消费所有chunk。循环里不能写if chunk.delta.content: break,而要一直收,直到收到"finish_reason": "stop"或"length"的终止块。
方法三:检查SDK是否自动拼接了delta.content。有些旧版openai-python会漏掉首chunk或末chunk,建议手动累加:content += chunk.delta.content or ""。
排查中间代理或网关静默清空content
公司内网、CDN或自建API网关可能对响应体做关键词扫描,检测到空格、换行符或疑似token序列时,直接把content字段设为空字符串,还假装成功返回200。
第一步:在请求headers里加上X-Debug-Mode: true(如果平台支持),看服务端原始日志是否显示content已生成但被拦截。
第二步:用手机热点直连,绕过企业防火墙,再发一次相同请求。如果直连能返回内容,基本锁定是代理问题。
第三步:把content字段值替换成"a"再试一次。如果"a"能通,但原文本被清空,说明网关在过滤特定字符组合,比如连续多个\u3000或\x00-\x08控制符。
【重点检查messages.content里是否混入了不可见Unicode字符,尤其是从Word或网页复制粘贴过来的文本】。
核对API端点与模型名称拼写
端点地址错一位,比如https://api.deepseek.com/v1/chat/completions少了个v1/,或者模型名写成deepseek_chat(下划线)而非deepseek-chat(短横线),服务端会静默返回空响应,而不是404或400。
打开DeepSeek官方文档,找到“Supported Models”表格,复制model字段值,粘贴到代码里,不要手敲。
在Python中用print(repr(model_name))输出模型名真实字节,确认没有前后空格、全角短横或BOM头。
用浏览器访问https://api.deepseek.com/v1/models,带Authorization头,看能否列出可用模型。如果这个接口都返回空,说明base_url或密钥根本没生效。
大量免费API接口:立即使用
涵盖生活服务API、金融科技API、企业工商API、等相关的API接口服务。免费API接口可安全、合规地连接上下游,为数据API应用能力赋能!









