AI Commits
是 JetBrains 系列 IDE(如 IntelliJ IDEA、PyCharm、WebStorm、GoLand 等)中的一个插件,它利用 LLM(如 OpenAI、Anthropic、Gemini 等)自动根据 git diff
生成提交消息,支持自定义提示与多种模型接入,使提交信息更加智能与高效。该插件目前(v2.14.1)预设了很多国外主流的大模型,比如OpenAI、Anthrpic、Gemini等,国内的大模型目前只看到百度千帆的。至于其他没有预设的大模型我们可以尝试通过更改OpenAI的预设配置进行搭建。
为什么选OpenAI的预设进行更改?
因为很多厂家会对标OpenAI API去搭建自己开放平台的API,也就是说他们的API格式和OpenAI的API格式是兼容的,主要是 Chat Completions API 这一套。所以在遇到没有预设的模型的情况下,推荐尝试更改OpenAI的预设配置,让它指向我们所需模型的预设配置。稳妥起见,可以先查阅一下兼容性。
本文将以DeepSeek API为例演示搭建流程以及使用操作。之所以选用DeepSeek的主要有三点好处:不需要挂梯子 、充值方便 、价格感人。
申请API key
注册并登录DeepSeek的开放平台,在API keys中创建一个API key。
注意:这个key只有在你创建时显示,所以一开始就得复制出来保存好,要不然后续丢了就只能删了重建了。

安装
到JetBrains IDE的插件市场搜索并安装AI Commits
。安装后需要重启IDE才会生效。
需要注意的是IDE的版本不要太老,我之前有遇到过在WebStorm 2023版本中遇到生成的Commit信息是中文乱码的问题。后续更新到最新的WebStorm 2025.1.1就没问题了。这些兼容性问题可能在后续更新的时候被修复,但建议还是保持IDE与插件都是最新的。

配置
进入到设置页面,找到Tools -> AI Commits
新增LLM Client
点击左上角的模型新增。然后更改对应的配置信息:
vbnet
// 名称,随便取
Name: "DeepSeek",
// 主机地址
Host: "Https://api.deepseek.com/v1",
// 你的API key
Token: "Your API Key",
// 模型,deepseek-chat 和 deepseek-reasoner
Model: "deepseek-chat"
填写后记得点击Verify
检查一下是否正确。


模型价格参考:

新增Prompt

可以根据新增面板下方的提示信息去填写提示词的内容,下面提供两份提示词供大家参考:
- 我自己在用的提示词:
Write an insightful but concise Git commit message in a complete sentence in present tense for the following diff without prefacing it with anything, the response must be in the language {locale} and must NOT be longer than 74 characters. The sent text will be the differences between files, where deleted lines are prefixed with a single minus sign and added lines are prefixed with a single plus sign. Avoid overly verbose descriptions or unnecessary details. Carefully determine the most appropriate commit type, referring to Conventional Commits. Return chinese: -feat: Introduces a new feature to the codebase.
-fix: Patches a bug in your code.
-docs: Changes only documentation (e.g., README, inline docs).
-style: Changes that do not affect the meaning of the code (e.g., formatting, white-space, missing semicolons).
-refactor: Code changes that neither fix a bug nor add a feature (e.g., restructuring code).
-perf: Code changes that improve performance.
-test: Adds or updates existing tests without affecting production code.
-build: Changes that affect the build system or external dependencies (e.g., npm, Webpack).
-ci: Changes to configuration files and scripts related to continuous integration.
-chore: Routine tasks or maintenance (e.g., dependency updates) that don't modify src or test files.
-revert: Reverts a previous commit. the file name of the main change file are after the commit type, and the format like: "feat(fineName): message..."
使用 {locale} 语言写一个简明、清晰、信息丰富的提交信息,提交信息的格式必须是下面这种形式规范,并且以纯文本形式提供回答,回答的内容不需要包含在代码块中
xml<type>(<scope>): <subject> <body> <footer>
其中各种形式规范的定义如下:
- 提交类型(type):描述提交的目的或类型,一般使用下面几种常见类型之一:
feat: 引入新功能或增强功能。
fix: 解决和修复错误或问题。
chore: 对非用户界面元素进行更改。
refactor: 重新组织或优化代码而不改变行为。
ci: 调整CI/CD流程。
test: 增强或修改测试套件。
docs: 更新或修改文档。
revert: 回滚到以前的状态。
- 范围(scope)(可选):描述变更的影响范围,某个功能模块、组件或者分支的名称。
- 主题(subject):简明扼要地描述变更的内容,一般限制在50个字符以内。
- 主体(body)(可选):详细描述变更的内容,可以使用多行。
- 页脚(footer)(可选):包含一些元信息,比如关联的 Issue 编号、变更的关闭类型等。 例如一个示例返回如下
markdownfeat(推广计划): 新增推广计划增删改接口和页面 1. 新增推广计划后端接口 2. 新增推广计划前端页面 3. 新增推广计划逻辑功能 无相关 issue
这是
git diff --staged
命令的输出结果: {diff}
选择对应配置

使用
勾选Commit内容,然后点击下方Commit AI的图标,AI生成后会自动填充到Commit Message中。
AI自动生成的不一定都是准确可靠的,这和我们的Prompt、AI模型配置、提交文件的个数与关联性都有一定关系。所以建议生成后最好是看一下是否准确,必要的时候需要对其进行调整,然后最好不要一次性勾选太多要Commit的内容,最好是少量多次的提交。
如果频繁的发生生成的信息不可靠的话建议对Prompt、AI模型配置(Model、Temperature)进行调整,或者更换为其它厂家的大模型。

最后我们可以到DeepSeek开放平台的用量信息查看我们的消费情况。
