大模型吐 JSON

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

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

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

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

https://ex.noerr.eu.org/t/1157251

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

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

© 2021 V2EX