OpenAI `gpt-4o-mini` 模型 「默认」
让 AI 生成你的 git commit 提交信息简短描述
快速体验
利用 npx
填入 Token ,并在你的任何项目中运行下列命令进行体验
OpenAI API Token 获取: https://platform.openai.com/account/api-keys
sh
CZ_OPENAI_API_KEY="sk-xxxxx" npx czg ai
CZ_OPENAI_API_KEY="sk-xxxxx" npx czg ai
sh
CZ_OPENAI_API_KEY="sk-xxxxx" bunx czg ai
CZ_OPENAI_API_KEY="sk-xxxxx" bunx czg ai
配置 OpenAI token
- https://platform.openai.com/account/api-keys
登陆并创建你的 OpenAI API 密钥,通常以sk-
开头 - 运行命令
npx czg --api-key=<API secret key>
填入 OpenAI API 密钥完成设置
sh
npx czg --api-key=sk-xxxxx
# 如果你在需要进行 socks5 或 http proxy 代理请求,可以添加选项 `--api-proxy` 进行代理配置
# npx czg --api-proxy="http://127.0.0.1:1080"
# 如果想要使用自定义托管的 OpenAI API 服务,可以设置 API 请求的 endpoint
# npx czg --api-endpoint="https://xxxxx.deno.dev/v1"
npx czg --api-key=sk-xxxxx
# 如果你在需要进行 socks5 或 http proxy 代理请求,可以添加选项 `--api-proxy` 进行代理配置
# npx czg --api-proxy="http://127.0.0.1:1080"
# 如果想要使用自定义托管的 OpenAI API 服务,可以设置 API 请求的 endpoint
# npx czg --api-endpoint="https://xxxxx.deno.dev/v1"
sh
bunx czg --api-key=sk-xxxxx
# 如果你在需要进行 socks5 或 http proxy 代理请求,可以添加选项 `--api-proxy` 进行代理配置
# bunx czg --api-proxy="http://127.0.0.1:1080"
# 如果想要使用自定义托管的 OpenAI API 服务,可以设置 API 请求的 endpoint
# bunx czg --api-endpoint="https://xxxxx.deno.dev/v1"
bunx czg --api-key=sk-xxxxx
# 如果你在需要进行 socks5 或 http proxy 代理请求,可以添加选项 `--api-proxy` 进行代理配置
# bunx czg --api-proxy="http://127.0.0.1:1080"
# 如果想要使用自定义托管的 OpenAI API 服务,可以设置 API 请求的 endpoint
# bunx czg --api-endpoint="https://xxxxx.deno.dev/v1"
sh
czg --api-key=sk-xxxxx
# 如果你在需要进行 socks5 或 http proxy 代理请求,可以添加选项 `--api-proxy` 进行代理配置
# czg --api-proxy="http://127.0.0.1:1080"
# 如果想要使用自定义托管的 OpenAI API 服务,可以设置 API 请求的 endpoint
# czg --api-endpoint="https://xxxxx.deno.dev/v1"
czg --api-key=sk-xxxxx
# 如果你在需要进行 socks5 或 http proxy 代理请求,可以添加选项 `--api-proxy` 进行代理配置
# czg --api-proxy="http://127.0.0.1:1080"
# 如果想要使用自定义托管的 OpenAI API 服务,可以设置 API 请求的 endpoint
# czg --api-endpoint="https://xxxxx.deno.dev/v1"
GitHub Models 配置方式
- 加入 GitHub Models 候补名单
- 获取 GitHub personal access tokens
- 在 Models Marketplace 中选择你想要使用的模型,获取模型名称 (点击右上角 Get started 按钮,查看信息)
- 运行命令进行配置sh
npx czg --api-key="ghp_xxxxxx" --api-endpoint="https://models.inference.ai.azure.com" --api-model="gpt-4o-mini"
npx czg --api-key="ghp_xxxxxx" --api-endpoint="https://models.inference.ai.azure.com" --api-model="gpt-4o-mini"
Ollama 配置方式
- 安装 Ollama 并启动服务
- 选择并拉取模型sh
# 以 gemma2 模型为例 ollama pull gemma2 # 确认模型是否拉取成功 ollama ls
# 以 gemma2 模型为例 ollama pull gemma2 # 确认模型是否拉取成功 ollama ls
- 运行命令进行配置sh
npx czg --api-key=" " --api-endpoint="http://localhost:11434/v1" --api-model="gemma2"
npx czg --api-key=" " --api-endpoint="http://localhost:11434/v1" --api-model="gemma2"
全局使用
sh
npm install -g czg
npm install -g czg
sh
brew install czg
brew install czg
sh
# 设置token `czg --api-key=sk-xxxxx`
# 设置完token后,在你的任何项目中,运行下列命令
czg ai
# 返回多个简短描述,并开启选择模式
git czg ai -N=5
# 设置token `czg --api-key=sk-xxxxx`
# 设置完token后,在你的任何项目中,运行下列命令
czg ai
# 返回多个简短描述,并开启选择模式
git czg ai -N=5
作为项目依赖使用
sh
npm install -D czg
npm install -D czg
sh
yarn add -D czg
yarn add -D czg
sh
pnpm install -D czg
pnpm install -D czg
- 在
package.json
中添加script
- 在设置完 token 后运行启动命令
npm cz ai
|yarn cz ai
|pnpm cz ai
json
{
"scripts": {
"cz": "czg"
}
}
{
"scripts": {
"cz": "czg"
}
}
npx
使用
- 在设置完 token 后,运行命令在你的任何项目中
sh
npx czg ai
npx czg ai
sh
bunx czg ai
bunx czg ai
返回多个简短描述,并开启选择模式
sh
npx czg ai -N=5
npx czg ai -N=5
sh
bunx czg ai -N=5
bunx czg ai -N=5
Commitizen CLI + cz-git 使用
如果你当前使用 Commitizen CLI + cz-git 适配器
有三种方式配置 OpenAI API Key:
- 运行
czg
进行配置:npx czg --api-key=sk-xxxxx
- 使用环境变量传入并启动:
CZ_OPENAI_API_KEY="sk-xxxxx" czai=1 cz
- 配置环境变量于 rc 文件之中:添加
export CZ_OPENAI_API_KEY="sk-xxxxx"
于.zshrc
或.bashrc
有两种方式进行启动:
- 使用环境变量传入
czai=1
并启动:czai=1 cz
- 配置文件中使用开启 AI 模式:
useAI: true
配置
- 国内用户如果无法访问 OpenAI API
可进行 proxy 代理设置后进行使用
或使用--api-proxy
进行代理配置 - 如果你开启了配置
useAI
,但是本次你不想使用 AI 模式,想切换为普通模式,可以运行命令- czg CLI:
czg --no-ai
- Commitizen CLI + cz-git:
no_czai=1 cz
- czg CLI:
- 如果你想自定义配置发起 OpenAI 请求的描述信息,像支持本地化,可以使用配置项进行更改 aiQuestionCB,例如:
js
module.exports = {
aiQuestionCB: ({ maxSubjectLength, diff }) => `用完整句子为以下 Git diff 代码写一个有见解并简洁的 Git 中文提交消息,不加任何前缀,并且内容不能超过 ${maxSubjectLength} 个字符: \`\`\`diff\n${diff}\n\`\`\``,
}
module.exports = {
aiQuestionCB: ({ maxSubjectLength, diff }) => `用完整句子为以下 Git diff 代码写一个有见解并简洁的 Git 中文提交消息,不加任何前缀,并且内容不能超过 ${maxSubjectLength} 个字符: \`\`\`diff\n${diff}\n\`\`\``,
}
- 关于 AI 相关的配置信息 可查看 Options - AI Related
- 关于项目或全局配置文件信息 可查看 Configure Template
如何实现
- 运行 git diff 命令获取文件的差异,并结合描述信息,发送请求给 OpenAI API -
/v1/chat/completions
,来获取 AI 生成的简短描述 - 💡 灵感来源 aicommits 并修改了部分代码