ChatGPT等AI大模型输出格式错误优化分享

#ChatGPT/坑 当 ChatGPT没有按照要求的格式输出

省时间,直接上结论

切换模型也不太好使,捕获异常回调重试发送提示词也不太好使。

原因是相同的提示词会触发类似 "缓存" 的东西持续输出错误的结果,至上与上次输出的 70% 都是相同的,大概率也是错误的结果。

所以在发送请求前,先在提示词的前面加上 uuid 就可以保证每次输出不走缓存 gpt 重新计算输出了,大概率是会成功的。

我最终的方案就是通过:捕获异常回调重试,在提示词前面加上 uuid 发送给大模型解决这个问题的。

闲着没事就接着往下看

复制代码
接下来将下面这段英语单词数组翻译中文
{单词数组}
你需要将下面英语单词按顺序意译翻译成中文,必须严格按照以下对象数组json格式,不容出错:
``
[{ "e": "英语单词","c": "翻译中文"}]
``

上面这段是我的 prompt,但是在我使用 gpt3.5 16k 的时候有时候发癫并没有按照要求格式输出,输出内容变成这样:

json 复制代码
[{"e":"chatter?","c":"闲聊?"},
 {"e":"colors.","c":"颜色。"},
 {"e":"concept","c":"概念"},{"e":"constantly","c":"不断地"},{"e":"crazy","crazy"},{"e":"crowd","人群"},.....手动忽略后面错误json]

前面是对的格式,后面就错了。

解决办法是切换成了 gpt3.5,然后就可以了,原因嘛,不知道,解决以上的问题步骤:

1、检查你的提示词(prompt)

2、提示词没问题,那么就是模型的问题了,切换模型

1、意外来了,切换了模型还是出了问题

经过思考我尝试用出现异常就线程等待一段时间后,然后重新发出请求试试。

2、这次舒服了,过一会我一看,怎么还是输出格式错误!!!

好吧,gpt 本身可能自带一些类似缓存的机制,如果每次提示词都一样,那么他大概率就会输出和上次相似度高达 80% 的内容。

所以最好的办法就是当出现异常后,回调重新发送 gpt 提示词都有所不同。

我的方法是在提示词前面加一串随机数字即可,在 299~999999 随机选出一个,这次就正常运行了,万岁。

原提示词:接下来将下面这段英语单词数组翻译中文

修改后:{随机数占位符}:接下来将下面这段英语单词数组翻译中文

使用随机占位符之后,成功运行了一段时间~

又出错了

这是怎么回事呢?经过一番实践思考和尝试,哦哦哦哦哦哦,我懂了,因为随机数虽然让提示词有了一点变化,但还是变化太小了,gpt 会识别这个提示词和原先区别不大,直接走这个 "缓存" 导致输出原先的错误结果,那么如何解决呢?

随机数改成 uuid,这个变化就稍微大了一点,大概运行了 1 小时都没有什么问题,好了,就这样

相关推荐
2601_9545267513 分钟前
2026 生成式搜索引擎底层技术演进与 GEO优化服务商推荐:大模型检索增强(RAG)管道与语义对齐工程实战
大数据·人工智能·搜索引擎
我有满天星辰17 分钟前
Spring AI Prompt 实战:System Prompt、User Prompt 与 PromptTemplate
人工智能·spring·prompt
A153625521 分钟前
WMS 仓储管理系统推荐:企业如何选适配的仓储管理系统
大数据·人工智能
学习中.........24 分钟前
Transformer 训练资源估算:以 CS336 GPT-2 XL 配置为例
人工智能·python·算法·机器学习·自然语言处理
Setsuna_F_Seiei5 小时前
前端的 AI 学习之路 02 之 Provider 与 Structured Output - 规范化模型输入输出
人工智能·agent·ai编程
JavaPub-rodert5 小时前
王仕宇RAG 实战教程(二):从 0 搭建一个可运行的 RAG 知识库——Embedding、Qdrant 与问答实战
人工智能·embedding
Setsuna_F_Seiei5 小时前
前端的 AI 学习之路 01 之 Agent API 调用 - 和 Agent 的基础对话
前端·人工智能·ai编程
覆东流5 小时前
7.Java数组
java·开发语言·后端
m0_719084116 小时前
限流和获取请求ip的方法
java
lzhdim6 小时前
提高 SQL 语句执行速度的方法
java·开发语言·数据库·sql·oracle