大模型吐 JSON

57 天前
 young1
各位大佬,我现在遇到一个问题,就是提示词规定了模型要吐的 JSON 格式,然后也让模型处理转义字符。但是还是会出现模型吐的 JSON 字符串不对,缺或者多括号,然后双引号没有转义等问题,导致 Java 转 JSON 的时候报错。有什么好的办法吗
6723 次点击
所在节点    程序员
55 条回复
xiaowangge
56 天前
关键字搜索「结构化输出」。需要定义 json schema
igeeky
56 天前
就是模型能力问题. 我最近也是大量这种长文本的生成. 豆包 1.6 错误率非常高. qwen, ds3.1, gemini 要好一些. 但是要多样化, 几个模型都要使用. json_schema 也依赖模型能力, 使用了 json_schema,返回非 json 也是很常见的. 后面直接改成返回非 json 了(适用于返回的字段比较少的情况)
akira
56 天前
1. 换更强大的模型 能极大的降低 json 幻觉的概率。 之前 qwen 2.5 几乎每天都有,切到 qwen3 就基本上很少见到了。
2. 重试。一般都是偶发的,出现问题的时候 重试一下就可以了。
3. 代码兜底处理。
ClericPy
56 天前
@luoyou1014 遇到了楼主说的 JSON 多半个花括号的问题,用了 langchain 的那个 output schema 什么的好多了

最近几天刷到 pydantic AI ,这东西好用么
刚才随手试了下,光切换成百炼模型就折腾了好一会(直接看源码还是太菜)
dongcxcx
56 天前
确实。有时候还给我在 json 里加上``` ```这种 markdown 语法,想骂人。
infreboot
56 天前
没事,gemini 2.5 pro 都会有这种问题。
andrew2558
56 天前
这个似乎无解,多了总会有一些出错
TongLiaoKing
56 天前
用 json_repair
TongLiaoKing
56 天前
TongLiaoKing
56 天前
更复杂的情况可以用 LLM 进行二次修正
changz
56 天前
写个启发式的 json parser ,不难的
yulon
56 天前
大模型就是会出错,所以工具侧要有纠错机制。

上次 v2 有个人说什么掌握了 Claude Code 核心机制,然后说别人纠错代码那么多根本没用,真是惹我发笑。
shihira
55 天前
就我自己测试来看,结构化输出比起什么限制都不加容易降智,不如解析 markdown 代码块
xxs55
54 天前
function call 然后重试
WithoutSugarMiao
54 天前
模型能力问题。
1. 如果现在 Zero-shot ,就换成 Few-shot ,看看效果;
2. 如果只是很少的情况会这样,那就重试一下就可以了。或者直接把 json 部分丢到 小模型里,让他纠错。
3. 实在不行就换模型呗。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1157251

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX