如何解决大模型返回截断的问题?
现在的大模型,基本上都是 1M(100 万 tokens)的超长上下文,比如说 DeepSeek V4.1 Flash。
那可能有小伙伴会产生这样一种错觉,既然一次性能喂进去几十万字的数据资料,那让模型一次性解析批量岗位数据并输出包含 15 个字段的 JSON 数组,理论上不会有什么压力。
但在真实的业务落地过程中,一旦大模型返回的 JSON 数据量超过了单次最大输出参数(Max Output Tokens / max_tokens),就会出现截断问题。

大模型截断输出,看的是输出长度参数(Max Output Tokens / max_tokens),而不是上下文长度。
输入和输出不一回事。
以 DeepSeek V4.1 Flash 为例,虽然它的理论最大输出允许配置到 384K,但在未显式指定 max_tokens 的情况下,非思考模式下的单次输出上限仅仅只有 8K(8192 tokens)。
8K tokens 换算成具体的业务数据到底能容纳多少呢?
在求职派中,提取一条岗位记录包含公司名称、岗位、薪资、学历、经验、职责等 15 个结构化字段。
中文字符、英文字段名加上大括号、双引号、逗号等 JSON 语法符号,一条完整的岗位对象实测需要占用 120 到 200 个 token。在默认 8K 的输出限制下,扣除外层数组结构与格式前缀,单次最多只能完整吐出 40 到 60 条岗位数据。
哪怕显式把 max_tokens 拉满到 384K,也必须做好防御。
因为大模型自回归逐字生成几十万 token 会耗费漫长时间,很容易触发网关代理和后端的 HTTP 超时,且超长生成容易出现语法错误;再加上业务数据规模是动态未知的,任何固定的静态输出上限在海量批处理面前终有触顶被击穿的时刻。
而一旦发生截断,残损的 JSON 就会导致反序列化崩溃。

01、大模型返回为什么会被截断?
先看一下问题现场。
求职派的岗位数据采集模块,负责把用户提交的招聘信息(文本、Excel、CSV、网页链接)交给大模型解析,提取出公司名称、岗位、薪资、学历要求等 15 个结构化字段,返回一个 JSON 数组。
方法签名上其实已经标注了,数据太长会导致异常。

准备一波测试数据,30 条岗位信息,包含事业单位、央国企、民企各类招聘,在管理端提交。

执行之后...
企业级Agent工作流编排项目PaiFlow
Vibe Coding版本的PaiAgent
派聪明RAG AI知识库Java版本+Go版本
微服务 PmHub、技术派、MYDB
求职派JobClaw(OpenClaw/Hermes架构
PaiCLI(类似Claude Code的Agent
派简历(代码已完成)
等实战项目。
1. 微信扫右侧的优惠券加入知识星球
2. 解锁星球的实战项目教程和源码: 项目源码+教程获取
真诚点赞 诚不我欺
回复