让 deepseek替你写Git提交信息

117 阅读2分钟

背景

在团队协作开发中,规范的提交消息对于代码的维护和版本管理至关重要。但是呢,很多开发人员都比较抵触,繁琐的提交信息是个不小的心智负担。我是个懒人,很早之前就想做一个借助ai能力自动生成提交信息的工具,但是当时的ai大模型要么和智能不沾边,要么API接口价格太贵。现在好用大模型价格也降下来了,甚至的很多平台免费的模型也堪大用了,于是就做了这么个工具。

功能

工具是我用Go写的一个叫lwe的开源命令行工具, 它的一个gcmsg命令可以帮助开发人员快速生成git提交消息,确认后可以提交并推送到远程仓库。效果看图:

gcmsg.webp

实现

实现原理也很简单,整个流程就是:利用git diff命令,获取代码的变动信息,再调用大模型API进行分析,大模型按照prompt要求将结果返回展示,最后完成提交、推送。 开发过程中有几个比较麻烦的点

  • 如何编写prompt,让模型理解你的需求,处理后再按照你指定的格式返回
  • 不同的模型,“智商”不一样,未必能够正确理解你的指令返回数据,怎样做兜底
  • 如何压缩git diff的结果,毕竟字数对应的token,都是钱
  • 代码中敏感内容如何处理?(目前只能简单的过滤)

如果有兴趣的话,我可以结合这个工具分享一下如何写prompt等利用ai大模型转化成产品的经验。

大模型的选择

我开发这个功能的时候是,deepseek-V3刚推出不久,我测试后发现效果不错,而且价格也可以接受了,就打算对接一个deepseek,再接一个国外的gemini模型。但是来了,功能还没开发完(因为懒),R1模型火出了圈,调试时接口一直超时,后来赠送的token也过期并且不让充值了,无奈只能去对接硅基流动部署deepseeek-V3,所以目前这个版本支持了两家的大模型,基本上可以非常低的成本使用了。

经过我对多个模型的测试,硅基上提供的千问Qwen/Qwen2.5-Coder-32B-Instruct模型也完全足够用,价格更低。而且硅基流动注册送的2000w token就能用好久好久了。

想体验的可以使用我的硅基流动注册邀请cloud.siliconflow.cn/i/osZu0cL4