作者ZMTL (Zaious.)
標題Re: [討論] 用AI寫code產生的疑問
時間2023-04-06 16:34:30
AI(GPT)用於Coding的實務心得
作者是虎尾科大資工系陳國益教授,經同意後轉載文字內容,原連結於下:
https://www.facebook.com/kuoyichen/posts/10230748453674915
在上週前往華新麗華授課時,有工程師問到:若有要接手的大型專案,應如何透過AI協助
,加速對專案的理解速度,或是快速產生手冊、API列表等,傳統上要花非常多時間交互
閱讀理解才能完成的工作?
經過數天的測試,ChatGPT(GPT-4)確實能夠在理解、修改大型程式專案提供有效的協助,
其步驟與指令說明如下:
在接手大型專案時,常會發生程式碼繁多、文件不齊全的狀況,閱讀跨檔案的大量程式碼
,不但耗時耗力,更常發生掛一漏萬的狀況。此時,ChatGPT能夠有效的協助,包括直接
修改、整理API與參數、建立說明文件。
在處理多檔案的大型專案時,因為檔案之間的變數符號連結互有相關,因此首先要能夠讓
ChatGPT閱讀所有專案檔案,在此我們以一個GitHub上的俄羅斯方塊專案為例,該專案包
括三個主要python檔案,分別為block.py、constants.py、tetris.py,如下所示
因為要在同一個對話session中,讓ChatGPT讀取各個檔案的所有程式碼,因此建議以
GPT-4進行,較有餘裕(有25000個token可供使用),讀入程式碼時指令後半段的summary
in 10 words是為了避免ChatGPT對單一程式解釋過長,影響之後我們實際要做的事,指令
如下所示:
read block.py as follows, summary in 10 words
貼上整個 blocky.py 的程式碼
read constants.py as follows, summary in 10 words
貼上整個 constants.py 的程式碼
read tetris.py as follows, summary in 10 words
貼上整個 tetris.py 的程式碼
當ChatGPT閱讀完所有程式碼後,我們就可以直接下指令,請其調整關鍵參數,例如調整
初始方塊速度,指令如下:
modify the program to start speed as 5
ChatGPT會提供修改位置與函式,複製程式碼後即完成修改,如下所示:
除了直接修改程式之外,也可請ChatGPT針對此專案撰寫使用手冊,AI會針對全部匯入的
專案程式碼,進行整理並撰寫手冊,指令如下:
write a manual for this program
因應之後開發需求,我們也可以要求ChatGPT整理專案中所使用到的API列表,並以表格方
式呈現,AI便會將整個專案中全部API整理為表格供參考,指令如下:
write the API list and description for this program with a markdown table
在大型專案中,各個關鍵參數的位置及其意義極為重要,但一般來說需要自行閱讀、筆記
、梳理後才能知道各個關鍵參數的意義。我們可以請ChatGPT針對此專案,列出所有參數
、標示位置、說明用途,並以表格方式呈現,可以大幅降低接手大型專案的難度與成本,
指令如下:
show all parameters, description and its location in this program as a
markdown table
透過請ChatGPT(GPT-4)閱讀所有程式碼作為先備知識之後,AI就可以變成一個徹底瞭解專
案程式架構的助理,不論是直接修改程式,或對程式進行分析報告都沒問題,經測試,在
GPT-4的單一對話session 25000 token限制下,同時閱讀十個程式檔案(平均300行)均
十分順暢,也能夠跨檔案理解參數與函式之間的符號關連,確實是協助工程師接手大型專
案的利器。
示例用專案位置:(
https://github.com/benycze/python-tetris)
_
圖片詳見原文連結內。
再也不怕連註解都不寫的前任了?
--
AI_Art AI藝術與創作板 歡迎各方前來討論AIGC創作與相關議題!
AI情報屋營業中
噗浪:
https://www.plurk.com/Zaious
IG :
https://www.instagram.com/zaious.design/
日曆:
https://zaious.notion.site/zaious/22c0024eceed4bdc88588b8db41e6ec4
--
※ 發信站: 批踢踢實業坊(ptt-web.org.tw), 來自: 42.77.180.81 (臺灣)
※ 文章網址: https://ptt-web.org.tw/Soft_Job/M.1680770094.A.0C5
※ 編輯: ZMTL (42.77.180.81 臺灣), 04/06/2023 16:36:08
→ DrTech: 炫技當網紅成分多於實用,例如API List 這樣的表格,連參 04/06 16:41
→ DrTech: 數說明都沒有,根本就不能實用。 04/06 16:41
→ leolarrel: javadoc 懶人版? 04/06 16:45
推 TAKADO: 把公司的程式碼貼給ChatGPT,感覺遲早有一天會出大事,跟 04/06 17:48
→ TAKADO: 把公司專案直接放公開GitHub上差不多了。 04/06 17:48
推 Quaranta: 我哥上包養網被我抓包.. 04/06 17:48 推 k798976869: 開源的才能貼出去吧 04/06 17:52
推 NCUking: 把程式碼送給OpenAI 哪間公司允許員工這麼搞? 04/06 18:07
→ nh60211as: it's cool and hip so it's ok 04/06 18:10
推 mozume: 300行...看向那個3000行的method,好想去給原作者蓋布袋 04/06 18:57
→ bheegrl: 出事了你有辦法負責的話你就用啊@@ 04/06 21:32
推 schlemm: 有人包養過洋鬼子嗎 04/06 21:32 → viper9709: 推四樓 04/06 23:17
推 shownlin: OpenAI有跟企業合作推線下版的 不用擔心程式碼流出問題 04/14 00:32