别再让大模型吐 JSON 了:Cloudflare 推出不生成 token 的抽取模型 Clairic
Cloudflare 在 Workers AI 上预览抽取模型 Clairic:不生成 token,按字段类型直接解码,输入每百万 token 0.10 美元、不收输出费,权重计划“很快”开放。
一个常见的需求
大家可能都遇到过这样的需求:从一封客服邮件里,拿出订单号、金额和到货日期。
这件事听上去很简单,人看一眼就知道。
但是,交给程序去做,就有点麻烦。
现在最常见的做法,是把邮件丢给大模型,再附一段提示词:"请提取以下字段,以 JSON 格式返回。"
大模型确实能做到,大多数时候也做得不错。
问题在于"大多数时候"。
它可能多写一句客套话,可能漏掉一个括号,可能把日期写成你没想到的格式,还可能在原文没有的情况下,自己编一个订单号出来。
所以,很多程序在大模型后面,还要再接一层校验代码,检查 JSON 能不能解析,字段类型对不对,不对就重试。
那么,一个让人好奇的问题就来了:抽取字段这件事,是不是一定要让模型"写"出来?
10 月 19 日,Cloudflare 给出了一个不同的答案。
Clairic 是什么
据 Cloudflare 官方博客和 Workers AI 更新日志,Cloudflare 在 Workers AI 上推出了一个预览版的抽取模型,叫做 Clairic,模型名是 @cf/cloudflare/clairic。
它最大的特点是:不生成 token。
普通的大模型,是一个字一个字往外写答案的。
Clairic 不这样做。官方称,它一次前向计算读完全部输入,然后按照你指定的字段类型,直接把答案解码出来。
所以,它的答案必然是一个合法的类型值,或者是 null(表示原文里没有)。
打个比方,普通大模型像一个答题时自由发挥的学生,你让它填表,它可能在表格外面写满了字。
Clairic 更像一张印好格子的表格,日期栏只能填日期,金额栏只能填数字,填不出来就空着。
(这个比方是我自己打的,不是官方的说法。)
能抽哪些类型
官方文档列出的字段类型如下。
1、text:返回原文里的精确片段,同时给出字符偏移,也就是这段文字在原文的什么位置。
2、number:数字。
3、date / time / datetime:日期、时间、日期时间。
4、duration:时长。
5、list:列表。
6、estimate:估计值。你给出最小值、最大值和步长,它在这个范围里给出一个分布,包括中位数和 80% 区间(p10–p90),也可以要求返回全部 99 个分位数。
7、forecast:序列预测,最多预测 64 步。
每个答案还附带 p_null 和 confidence,前者大致可以理解为"原文里没有这个值"的可能性,后者是置信度(这一层解释是我的理解,以官方文档为准)。
另外,每次请求最多可以附 4 张图片,格式支持 PNG、JPEG 和 WebP。
这里面最有意思的,是 estimate 和 forecast 这两种类型。
一般的抽取,是"原文里写了什么,就拿出什么"。
estimate 不一样,原文里可能根本没有一个确切的数,它要做的是"根据原文,估一个范围"。
举一个假设的场景:一段房源描述里没有写面积,只写了几室几厅、朝向和楼层,你让它在你给定的范围里估计面积。
这时候,它不会硬编一个看起来很精确的数字,而是给出一个分布,告诉你中位数大概在哪里,80% 的可能落在哪个区间。
一个带区间的答案,比一个假装精确的答案更诚实。
forecast 则是把这个思路用到序列上,根据输入里的历史数据,往后推若干步。
我觉得 text 类型返回字符偏移这一点,特别实用。
因为你拿到的不只是一个答案,还知道它出自原文哪里,可以直接回去核对,或者在界面上把原文高亮出来。
字段多,成本不一定高
Clairic 的上下文长度是 65,536 个 token。
字段数量不设上限。
官方的说法是,放不进单次 8,192-token pass 的字段,会拆成多个并行的 pass 来处理,所以要 30 个字段和要 3 个字段,成本差不多。
这跟大模型的思路很不一样。
用大模型抽字段,字段越多,它要写的 JSON 越长,输出 token 越多,花的钱和时间也越多。
Clairic 没有"写"这一步,自然也就没有这笔开销。
价格和速度
价格是输入每百万 token 0.10 美元,没有输出费用。
官方称,通常 1 秒内返回结果。
Cloudflare 还说,计划"很快"开放权重。具体时间,官方没有给出。
抽值、判断、执行
Cloudflare 博客把 Clairic 放在一条流水线里介绍。
第一步,Clairic 负责抽值,从输入里拿出带类型的字段。
第二步,Clef 负责判断。据官方介绍,Clef 是一个决策模型,在你预先设定的几个选项里,给出每个选项的概率。
第三步,才轮到大模型,负责写回复和执行动作。
博客里举了一个客服邮件的例子,从邮件里抽出订单号、金额和到货日期。
还有一个 21 天的预测例子。据 Cloudflare 博客自报,平均误差为 3.3%,21 天中有 17 天落在 80% 区间之内。
这种分工,我觉得很有道理。
大模型擅长写和推理,但是让它做填表这种死板的活,就像请一位作家来抄写发票,不是不能做,而是用错了地方。
把"拿数据"和"做决定"从大模型那里拆出来,交给更专门的模型,大模型只做它最擅长的部分。
(这段评论是我的看法。)
它不擅长什么
难得的是,Cloudflare 在博客里写明了这个模型的局限。
(1)一两步的算术可靠,但是长链条的计算、跨多行的聚合,它做不好。官方建议,把需要的值抽出来以后,在代码里计算。
(2)多步预测会趋向平缓。
(3)在陌生的数据上,给出的区间可能偏窄。
(4)格式对,不等于答案对。
我觉得第 4 条最值得记住。
Clairic 保证的是"类型合法",日期栏里一定是日期。但是,那是不是正确的日期,模型并不能保证。
类型约束解决的是格式问题,不是正确性问题。
所以,校验这一步不能省,只是从"检查 JSON 能不能解析",变成了"检查值对不对"。
我的看法
结构化抽取,是 AI 应用里最常见、也最不起眼的一类工作。
邮件、票据、表单、合同,每天都有大量这样的文本需要变成数据库里的一行。
过去几年,大家习惯了什么事都交给大模型。Clairic 提醒我们,有些事情其实不需要"生成"。
它目前还是预览版,权重也没有开放,效果怎么样,需要大家拿自己的数据去测。
如果你需要从邮件、票据里批量抽取字段,又不想再写一层 JSON 校验和重试代码,可以试试它。
(完)
来源:Cloudflare 官方博客(2026-10-19);Workers AI 更新日志;Workers AI 模型页;抽取模型概念文档。Clairic 为预览版;3.3% 平均误差、21 天中 17 天落在 80% 区间等效果数字为 Cloudflare 自报,“通常 1 秒内返回”为官方说法,未见第三方评测;价格以模型页为准;开放权重暂无时间表。