原创内容
No.709
AI | 和AI幻觉斗智斗勇一周后,我确信AI现阶段还只是提效工具
讲讲最近调教AI的心得体会~
图片由海艺AI绘制
上一篇内容,我分享了一个批量生成PDF的脚本。这个脚本是我调教AI生成的,因为不是专门搞这个东西,再加上被AI带进了坑里,断断续续折腾了一周才完全搞定,除了调试代码之外,我花了很多时间在研究提示词和AI编程辅助工具的调试上。总得来说,脚本之外的收获还是比较多,今天来分享一些有意思的地方。
先说一个结论,各种AI辅助编程工具的幻觉问题都存在,我尝试了使用cursor、kimi、通义灵码、星火大模型、还有vscode里各种插件,AI幻觉的问题都是存在的。提示词能够在一定程度上减少AI幻觉,但是不能让AI不产生幻觉。
所谓的AI幻觉是指人工智能系统生成的内容与真实数据不符或偏离用户指令的现象。这种现象通常发生在大型语言模型(如ChatGPT等)中,表现为生成的信息看似合理,但实际上是错误的或虚构的。换句话说AI给你瞎写了一堆错误的东西。
AI幻觉瞎写代码真正让人挠头的地方不在于AI给你的代码不能用,而在于AI给你的代码能运行,导致你想当然的认为AI给的东西就是对的。
比如我的需求是中文内容需要自动换行,AI给了我这么个写法:
代码可以正常执行,唯一的问题就是……中文并不能自动换行,是不是就很迷惑?怀疑人生?如果你追问AI这行代码到底是啥意思就会收到有意思的回答:
但凡代码会报错,都不能信了这个邪,但是它偏偏是能正常运行的,没辙。实际上真正能够实现表格里的中文自动换行的办法是把表格内容包在Paragraph里套一层……
大概就是类似这种不大不小的问题,搞起来真的让人头秃,不过在这个过程中我倒是也掌握了一些人在回路的指挥AI写大密码的方法:
我很久之前分享过一个AI编程的提示词模板,经过最近这波被坑的经历之后,我对模板做了调整:
第一个关键点是要点明必须用Python,不能拿别的语言的规则瞎编;其次就是一些关键的内容可以指定方法细节,以防AI瞎写。
比如之前分享代码的这个提示词,就可以这么写:
总之就是提示词对具体使用的方法指定得越仔细AI最终呈现得代码效果越完善。
实操的场景下,我们大概率需要这么干:先给一版提示词让AI给到代码,执行并把报错信息返回给AI,让AI继续修改。AI反复修改也解决不了的问题,新开一个对话单独让AI提供解法,将解法指定在AI提示词中请AI重新生成代码。
如果想更好地定位问题的话,还可以要求AI按照try except的格式输出代码及报错信息,以便更好地定位问题。
虽然AI辅助编程的问题还是很多,但是不得不承认AI辅助是一种学习的好办法。
我一开始要处理这个需求的时候是哪个包能处理这个需求都不知道,后来在和AI的反复问答中已经大概学会了这个包要怎么玩,学习效率相比从前翻csdn和恶官方文档快出不少。
用起来类似直接help一下,但好处是AI还会很耐心地给你提供案例,你还可以去追问差别在哪里,总的来说还是很好用的。