[心得] 用 ChatGPT 幫忙整理 Code Changes

看板Soft_Job (軟體人)作者 (小惡魔)時間1年前 (2023/03/13 18:31), 編輯推噓10(1008)
留言18則, 12人參與, 1年前最新討論串1/2 (看更多)
部落格: https://bit.ly/3yuTBnj GitHub: https://github.com/appleboy/CodeGPT 相信大家對 ChatGPT 不會很陌生,這是目前在生成式人工智慧 (AIGC: AI Generated Content) 內的當紅炸子雞,然而 ChatGPT 對於軟體工程師有什麼影響呢?能否透過 ChatGPT 改善團隊流程或協助開發?而我現在想到最直接的就是用 ChatGTP 幫忙寫 Git Commit Message,然而怎麼把 Commit Message 寫好可以參考這篇文章,為了能達成這目 的,我用 Go 語言寫了一個 CLI 工具 CodeGPT (請大家幫忙分享),來協助軟體工程師整 理開發內容。底下先看看使用 CodeGPT 來產生 Commit Message 的成果: https://i.imgur.com/AG6MWQe.png
上面圖示內容可以從 CodeGPT 的 Commit Log 找到 ## 為什麼要寫 CodeGPT 其實在 GitHub 平台上面已經有超多這樣類似的工具可以使用了,而我為什麼要再重新開 發一次呢?第一個原因是跨平台,透過 Go 語言可以快速產生執行檔,避免不同平台還要 安裝不同的環境,這樣對於不熟環境的開發者可以更容易安裝。 第二個原因是未來規劃朝向整合 GitHub, Gitea 或 Bitbucket 等 Git 平台,發 PR 後 ,可以透過 ChatGPT 自動幫忙整裡 Commit 內容且自動留言。所以這工具不只是單純讓 開發者可以自行產生 Commit Message 而已,未來也會整合成容器化服務,協助進行 Code Review。 第三個原因是未來不只是接 OpenAI 的 API 而已,ChatGPT API 目前也已經在 Azure OpenAI Service 支援了,所以之後除了原本的 OpenAI 外,還會整合微軟 Azure 服務。 ## 使用方式 目前每次釋出都會產生 Linux, MacOS 及 Windows 相對應的執行檔案,只要下載放在 bin 目錄底下即可,接著到 OpenAI 網站申請 API Key,第一個月免費 18 美金,其實每 天用量都不到一美金,相當便宜,信用卡放上去就對了。將 API Key 寫到環境變數 export OPENAI_API_KEY=sk-xxxxxxx 接著將需要 commit 的檔案透過 git add 方式加入,再執行底下指令 codegpt commit --preview ## 心得 由於中國跟香港或者是部分公司對於 ChatGPT 有嚴格的封鎖政策,故在此工具多了設定 Proxy 功能,可以讓大家透過 Proxy 方式出去訪問 OpenAI API,公司希望特定的機器才 可以出去。下一階段預計整合 Azure OpenAI 服務進來。用了此工具後,省下開發者不少 時間,尤其是需要常常 Commit,又不知道該如何整裡內容。如果喜歡的話可以按個 Star CodeGPT. -- AppleBoy Blog: http://blog.wu-boy.com -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 60.244.123.129 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/Soft_Job/M.1678703464.A.DD3.html

03/13 18:41, 1年前 , 1F
能用chatgpt幫忙真的太狠了
03/13 18:41, 1F

03/13 20:02, 1年前 , 2F
感謝分享, 有心得有實作給推, 雖然我覺得有點畫蛇添足
03/13 20:02, 2F

03/13 22:35, 1年前 , 3F
注意看,這個男人太狠了
03/13 22:35, 3F

03/13 23:02, 1年前 , 4F
現在很多服務都要自己買 token,對窮學生來說實在是
03/13 23:02, 4F

03/13 23:02, 1年前 , 5F
不忍下手...
03/13 23:02, 5F

03/14 10:49, 1年前 , 6F
推推
03/14 10:49, 6F

03/14 13:29, 1年前 , 7F
分享給推
03/14 13:29, 7F

03/14 16:07, 1年前 , 8F
to alan: 每天不到一美金
03/14 16:07, 8F

03/15 09:23, 1年前 , 9F
請問code change太長是否會超過單次token限制?
03/15 09:23, 9F

03/15 19:01, 1年前 , 10F
我覺得還不錯啊
03/15 19:01, 10F

03/16 23:30, 1年前 , 11F
to j112233456: 會,所以可以加上 --exclude_list
03/16 23:30, 11F

03/16 23:31, 1年前 , 12F
像是 --exclude_list *.py,*.md 用逗號隔開
03/16 23:31, 12F

03/17 18:45, 1年前 , 13F
把公司的程式碼丟出去不會有問題嗎0.0
03/17 18:45, 13F

03/17 19:58, 1年前 , 14F
讚喔這個應用很棒
03/17 19:58, 14F

03/18 11:16, 1年前 , 15F
--diff_unified設成0很準確欸,不過為什麼預設要設
03/18 11:16, 15F

03/18 11:16, 1年前 , 16F
成3?
03/18 11:16, 16F

03/19 22:21, 1年前 , 17F
git diff 預設 unified 就是為 3,所以這部分我就沒動
03/19 22:21, 17F

03/19 22:22, 1年前 , 18F
設定為 0 還有好處是,Token 會變少。
03/19 22:22, 18F
文章代碼(AID): #1a3ljetJ (Soft_Job)
文章代碼(AID): #1a3ljetJ (Soft_Job)