本文将完整记录利用 ChatGPT 从 Debug 到实现完整需求代码的全过程。第一次使用 ChatGPT 解决实际工作上的问题,也算是个调试样例,简单记录一下分享给大家。
对话&调试过程
对话开始时,先给 ChatGPT 一个预设身份,例如我给它的预设身份就是一个精通 OpenCV 和 Intel RealSense 传感器的 Python 程序员
然后,我就将自己手上的代码发给了 ChatGPT,发送之前我简单提示了它要理解代码的含义。ChatGPT 在收到代码以后很快对代码进行了解释。
在确定 ChatGPT 对代码理解没有大的偏差以后,我就提出了我想解决的问题。简单补充一下问题背景,RealSense 是一款深度相机,可以获得拍摄物体的距离信息,在官方的软件上会以热力图的形式展示,而我所编写的代码所得到的深度图像是蓝色的,而不是像官方软件一样由红色到蓝色变化。我高强度 Google 搜索了接近两天,图中提到的着色器配置和直方图均衡化就是我所搜集到的线索信息,但是不论怎么调试都不起作用,于是想到了 ChatGPT。我就把这两点作为问题排查的方向提供给了 ChatGPT,这也是一个 AI 协作的小技巧吧,当你搜索到一些可能对解决问题有帮助的信息时,可以提供给 AI 这样可以大大缩短解决问题所需的时间。
不出所料的是,ChatGPT 顺着我给出的线索提供了解决方法,和我用搜索引擎搜到的 github 的issue 帖子给出的解决方法差不多。
然后就是针对这两个配置反复的尝试、失败、再尝试,最后给 ChatGPT 问烦了,233。它给出了我平时的回答,“联系相关技术支持团队”,看到这一句我真的被逗笑了,射出的子弹在多年以后正中眉心击中了我。嗯,闭环了。
再最后一次尝试在代码中重置硬件无效后,我放弃了让 ChatGPT 帮我 Debug,而是选择让它直接根据我的需求给出完整的代码。而这一次,成功了!能很明显的看出来,ChatGPT 给出的代码和我所提供的代码有很多共同片段。从这里开始,我才真正体会到了 AI 的力量,我开始懒得动脑子了。
首先,我让它帮我解释我的代码和它的代码的不同之处。
并且针对我不了解的部分进行了更详细的提问。在理解了代码含义后,我开始让它帮我迭代,先是把实时预览功能取消。
第一次修改不是很成功,但是不要紧,简单的提示就可以让 ChatGPT 帮我修复。然后,把循环处理图像改成单次处理图像,便于以后封装成单次调用的片段。
最后,增加可配置的功能。不想写 Json ?直接问 ChatGPT 要,复制粘贴大法。
总结
最后总结一下,这个需求其实不大,但是搜索引擎上能搜索到的有效信息很少。实话实说,在求助 ChatGPT 之前,从确定需求到被这个问题卡住,我花了接近三个工作日。然后,在我第一次用 ChatGPT 解决工作中遇到的实际问题的情况下,只花了三个小时。如果我直接带着需求来问 ChatGPT,没有用我提供的线索误导它的话,可能 30 分钟就搞定了。
所以,作为一个还算跟得上时代的程序员,ChatGPT 已经出来了两年了,而我今年才第一次真正用它解决问题。ChatGPT 3.5 实际使用下来还是有一些缺点的,比如:有对话数量限制网络稳定的情况下有的时候回复也很慢,也没有那么聪明常常一个重复的问题要反复摩好几遍,最后给它问烦了,要不是最后想到让它直接给方案,我真的想升级 4.0 了,但是升级很繁琐,又要搞手机号、境外卡就作罢了。