![]() |
1
luoyou1014 17 小时 51 分钟前
|
![]() |
2
Vegetable 17 小时 50 分钟前
建议选择官方支持 json schema output 的模型
|
4
chenluo0429 17 小时 46 分钟前 via Android
很多语言都有一些 json 修复库,对于存在少量异常的 json 修正为合法格式。
|
![]() |
5
nolan1864 17 小时 43 分钟前 via iPhone
从推理的角度看,即使加上 guided decoding 也不能完全保证输出就一定是 json 的。一方面你可以选择 #2 说的训练过程中有 json 相关训练的模型,另一方面你可以在客户端进行 json 的检查,检查不过就重发请求,几次不行就报错好了。
|
6
zsc8917zsc 17 小时 43 分钟前
给一个建议哈,行不行自己试一试,你让模型把 json 吐在代码块里面,你从代码块里面取内容,忽略非代码块的部分
|
![]() |
7
Vegetable 17 小时 41 分钟前 ![]() @young1
https://www.volcengine.com/docs/82379/1568221 https://www.volcengine.com/docs/82379/1330310#5414cb1d 官方文档声称支持 json_schema 的 response_output ,这样你调用的时候,模型会保证返回的结构是合法的 JSON 。实际上,业界是先有的 json 这个 output 类型,已经能保证返回合法的 json ,后来大家发现用 prompt 来说明结构太呆了,又纷纷支持了 json_schema 这种标准的描述 response json 的形式。 |
![]() |
8
zfjdif 17 小时 40 分钟前
换个好点的模型,大部分的问题其实都是模型能力不足,除非没的选,不建议从工程上想办法解决。
|
9
fzdwx 17 小时 32 分钟前
搜 AI 结构化输出吧,现在模型基本都支持
|
10
metadata 17 小时 25 分钟前
最靠谱的就是找豆包有没有相关的官方 api ,简单的就做个重试机制,报错就把 json 再发给大模型让他修复,如果不行就是大模型能力问题。
|
![]() |
11
cheng6563 17 小时 24 分钟前
用另一个提示词检查 JSON 格式输出验证信息,以及你自己程序的 JSON 转格式时的报错信息。
若检查到格式不对,补充错误信息让他重出 JSON 。 |
![]() |
12
zjyl1994 17 小时 19 分钟前
|
13
dddd1919 17 小时 15 分钟前
解析 try catch ,异常处理把原值丢回给 AI 让他把格式处理对再返回
|
![]() |
14
knva 16 小时 24 分钟前
用支持 json 输出的模型加上 pydantic 就行了
|
15
luckrnx09 16 小时 22 分钟前 via iPhone
13 楼正解
|
![]() |
16
totoro52 16 小时 22 分钟前
先看模型支不支持结构化输出,不支持结构化输出的模型,你提示词在怎么写他都会出现幻觉, 我现在也遇到这个问题哦
|
18
peter1314 14 小时 53 分钟前
提示词:
角色 你是启航考研的视频课程全文概要总结专家,你将根据视频内容,按要求总结出视频课程的全文概要,生成一个结构完美、语法正确的 JSON 对象 给一些 json 正确输出的案例: 输出前,请先自我检查:\n" + "1. JSON 大括号是否配对?\n" + "2. 引号是否统一为双引号?\n" + "3. 逗号、换行是否正确?\n" + "4. 有无多余字符(如末尾额外 })?\n" + "若发现错误,请自动修正后再输出最终结果。" + 然后他给的数据绝大部分情况是: ```json 和结尾的 ``` 代码里面需要移除开头的 ```json 和结尾的 ``` 标记 然后再是处理一些 json 有问题的情况: 1.处理常见错误(如末尾多余的 } 或其他字符) 2.处理引号不匹配(如混用单引号) 3.处理大括号不配对(尝试补全或删减) 这是我的处理方式,但是还是有很少很少的还是有点问题,但是覆盖绝大部分情况了 |
![]() |
19
elevioux 14 小时 41 分钟前
看看支不支持 写 json schema 吧,不要光靠提示词
|
![]() |
20
forestrs 14 小时 36 分钟前
提升词最后加上一句
“确保结果可以被 json.loads” 然后用正则贪婪匹配[]或者{};加了这句提示词后大多数模型不会输出错,除非你的模型能力很弱。 |
21
guaguaguaxia1 14 小时 17 分钟前
大模型能力不夠,你用 grok3 之类的不会有这个问题
|
22
gewuzhizhi 14 小时 16 分钟前
遇到过同样的问题,给 fewshot 就行
|
23
yadam 14 小时 13 分钟前
可以试试 k2, 有 token enforcer 保证可以吐对
|
![]() |
24
beloved70020 14 小时 8 分钟前
输出 tool_calls 呗
|
![]() |
25
icyalala 13 小时 53 分钟前
如果你用普通的大模型,那肯定有概率生成不标准的 JSON
你得找支持 json mode 的大模型 API ,那个在生成 token 阶段就会进行语法约束,把无效 token 概率调到 0 ,才能 100%保证 JSON 合法 |
![]() |
26
Liftman 13 小时 49 分钟前
不可能出错。除非你模型很拉跨。。。比如你用的豆包。。
我这边 gpt5 日常生成固定报告的 json 。然后渲染。毫无压力。失败率 0 。。。 而且目前 gpt5 是对 json 指令遵循最好的感觉。 |
![]() |
27
annilq 13 小时 36 分钟前
13 楼处理方式基本能满足,我之前写了个生成书记目录的应用,也是会出现 json 解析问题,然后 catch 错误再扔回 llm 修复基本都可以的
|
30
young1 OP @734694671 还有就是引号问题,模型给的长文本里面包含了召回内容里面带有的引号,有的时候会无法转换,还有就是经纬度,已经限定了条件,但是模型后面输出的时候就会吧经纬度的'转成"
|
![]() |
32
glitter1105 12 小时 22 分钟前
我的处理方法是手动使用正则匹配提取。
|
![]() |
33
matrix1010 11 小时 56 分钟前
|
34
zxr615 11 小时 21 分钟前
用 tools,限制返回的 Json 结构,在请求中指定定义结构:
``` json { "tools": [ { "type": "function", "function": { "name": "generateContent", "parameters": { "type": "object", "properties": { "filed_1": { "type": "string", "description": "这是要返回的字段 1" }, "filed_2": { "type": "string", "description": "这是要返回的字段 2" } } }, "required": [ "filed_1", "filed_2" ] } } ], "tool_choice": { "type": "function", "function": { "name": "generateContent" } } } ``` |
35
quicksandznzn 11 小时 5 分钟前
json-repair 或者 json_schema 的方式
|
![]() |
36
pathetique 9 小时 48 分钟前
structured output or function calling (openai)?
|
![]() |
37
kabob 9 小时 42 分钟前
我这边换了 claude 模型后就解决了,或者 openai o 系列推理模型,总结就是换厉害的模型
|
![]() |
38
donaldturinglee 9 小时 38 分钟前
我解析 json 用的 json_schema 格式,或者你 call 一个 tool ,让 tool 帮你完成 json 格式的转换
|
39
IceBay 9 小时 22 分钟前
|
40
hopeoffer 8 小时 19 分钟前
我也遇到类似问题,用 claude 4 sonnet 都可能出现,有些转义符号导致 json 错误的情况。
我后面在这个 workflow 框架,发现作者提到用 yaml 代替 json ,目前觉得比 json 好使。 https://the-pocket.github.io/PocketFlow/design_pattern/structure.html#prompt-engineering |
![]() |
41
xiaowangge 8 小时 1 分钟前 via iPhone
关键字搜索「结构化输出」。需要定义 json schema
|
42
igeeky 6 小时 53 分钟前
就是模型能力问题. 我最近也是大量这种长文本的生成. 豆包 1.6 错误率非常高. qwen, ds3.1, gemini 要好一些. 但是要多样化, 几个模型都要使用. json_schema 也依赖模型能力, 使用了 json_schema,返回非 json 也是很常见的. 后面直接改成返回非 json 了(适用于返回的字段比较少的情况)
|
![]() |
43
akira 5 小时 45 分钟前
1. 换更强大的模型 能极大的降低 json 幻觉的概率。 之前 qwen 2.5 几乎每天都有,切到 qwen3 就基本上很少见到了。
2. 重试。一般都是偶发的,出现问题的时候 重试一下就可以了。 3. 代码兜底处理。 |
![]() |
44
ClericPy 4 小时 45 分钟前
@luoyou1014 遇到了楼主说的 JSON 多半个花括号的问题,用了 langchain 的那个 output schema 什么的好多了
最近几天刷到 pydantic AI ,这东西好用么 刚才随手试了下,光切换成百炼模型就折腾了好一会(直接看源码还是太菜) |
45
dongcxcx 4 小时 13 分钟前
确实。有时候还给我在 json 里加上``` ```这种 markdown 语法,想骂人。
|