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 小时都没有什么问题,好了,就这样

相关推荐
小和尚同志2 小时前
1.8k star 的开源 token 使用量监控神器— TokenTracker
人工智能·ai编程
极客 - L U3 小时前
神经网络 - 激活函数、损失函数、优化器
人工智能·深度学习·神经网络
Sarvartha3 小时前
final 关键字
java·开发语言
2601_952047793 小时前
单一策略深度教程:用轻易云把集成任务的报错实时推送到钉钉机器人
java·机器人·钉钉
数字融合3 小时前
透明化视频三维矿山井下照明重建技术
人工智能·python·数码相机
yi0113 小时前
LeetCode 219:存在重复元素 II——哈希表记录“最近一次出现的位置”
数据结构·人工智能·笔记·python·算法·leetcode·哈希表
xiangzhihong83 小时前
创之星花店多端业务闭环拆解
人工智能
奈落244 小时前
AI 编程从助手到 Agent:基于两份资料看哪些环节可以交出去,哪些必须自己攥住
大数据·人工智能
Joker可视化开发平台4 小时前
AI短剧接棒真人剧:开机量跌七成,普通人进场窗口在收窄
大数据·人工智能