本文將完整記錄利用 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 了,但是升級很繁瑣,又要搞手機號、境外卡就作罷了。