作者appleboy46 (小恶魔)
看板Soft_Job
标题[心得] 用 ChatGPT 帮忙整理 Code Changes
时间Mon Mar 13 18:31:02 2023
部落格:
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://webptt.com/cn.aspx?n=bbs/Soft_Job/M.1678703464.A.DD3.html
1F:推 single4565: 能用chatgpt帮忙真的太狠了 03/13 18:41
2F:推 jlhc: 感谢分享, 有心得有实作给推, 虽然我觉得有点画蛇添足 03/13 20:02
3F:推 q26766: 注意看,这个男人太狠了 03/13 22:35
4F:推 alan23273850: 现在很多服务都要自己买 token,对穷学生来说实在是 03/13 23:02
5F:→ alan23273850: 不忍下手... 03/13 23:02
6F:推 blackcan: 推推 03/14 10:49
7F:推 jay123peter: 分享给推 03/14 13:29
8F:→ appleboy46: to alan: 每天不到一美金 03/14 16:07
9F:推 j112233456: 请问code change太长是否会超过单次token限制? 03/15 09:23
10F:推 Csongs: 我觉得还不错啊 03/15 19:01
11F:→ appleboy46: to j112233456: 会,所以可以加上 --exclude_list 03/16 23:30
12F:→ appleboy46: 像是 --exclude_list *.py,*.md 用逗号隔开 03/16 23:31
13F:→ HybridSC: 把公司的程式码丢出去不会有问题吗0.0 03/17 18:45
14F:推 friends29: 赞喔这个应用很棒 03/17 19:58
15F:推 jfmamjjasond: --diff_unified设成0很准确欸,不过为什麽预设要设 03/18 11:16
16F:→ jfmamjjasond: 成3? 03/18 11:16
17F:→ appleboy46: git diff 预设 unified 就是为 3,所以这部分我就没动 03/19 22:21
18F:→ appleboy46: 设定为 0 还有好处是,Token 会变少。 03/19 22:22