Git-GPT是一种多功能的CLI工具,旨在自动使用多个AI提供商进行自动化的Git提交消息,问题并执行各种代码质量检查。它支持OpenAI,Azure Openai,Ollama,Claude和Google Generative AI,使您可以灵活地为您的需求选择最佳型号。

通过PIP安装git-gpt :
pip install git+https://github.com/ShinChven/git-gpt.git升级:
pip install --upgrade git+https://github.com/ShinChven/git-gpt.git建立开发环境:
git clone https://github.com/ShinChven/git-gpt.git
cd git-gpt
python -m venv venv
source venv/bin/activate
pip install -e .该项目的组织如下:
git_gpt/main.py :CLI应用程序的主要入口点。git_gpt/__init__.py :初始化软件包并定义版本。git_gpt/config_command.py :处理配置命令。git_gpt/commit_command.py :实现提交消息生成。git_gpt/issue_command.py :管理问题创建功能。git_gpt/quality_command.py :对代码更改执行质量检查。git_gpt/changelog_command.py :基于提交生成更改程序。git_gpt/ask_command.py :允许询问有关代码差异的自定义问题。git_gpt/ai_client.py :将API请求处理给多个AI提供商。每个命令都在自己的文件中实现,以提高组织和可维护性。
在使用git-gpt之前,您需要使用API设置进行配置。对于逐步指导配置,请使用以下命令:
git-gpt config此命令将提示您进行每个配置设置,从而使过程更容易,更易于用户友好。
要配置新模型或使用单个命令更新现有模型(所有选项都是必须的):
git-gpt config --alias MODEL_ALIAS --model_name MODEL_NAME --provider PROVIDER --key API_KEY --api_base API_BASE--alias :模型配置的唯一名称--model_name :模型的名称(例如,openai的“ gpt-4”,“ claude-3-sonnet-20240229”,用于claude,“ Gemini-1.5-pro”用于Google Generative AI)--provider :模型的提供商(例如,“ Openai”,“ Azure-Openai”,“ Ollama”,“ Claude”或“ Google-Generativeai”)--key :API键(可选,取决于提供商)--api_base :API碱基URL(可选,默认为https://api.anththropic.com for claude)如果您没有使用单个命令方法提供所有选项,则会提示您输入丢失的信息。
设置默认模型:
git-gpt set-default MODEL_ALIAS删除模型配置:
git-gpt delete-model MODEL_ALIAS用他们的提供商和蒙版的API密钥显示所有配置的模型:
git-gpt show-modelsGit-GPT支持多个AI提供商,使您可以选择最适合您需求的AI提供者。支持的提供者是:
每个提供商可能对型号和API配置都有特定的要求。配置新型号时,请确保使用正确的提供商名称并遵循任何特定提供者的说明。
Git-GPT现在支持Ollama,这是一个本地托管的语言模型Ollama。这使您可以在不依赖外部API服务的情况下使用Git-GPT。
ollama pull gemma2 )拉动所需的型号。要将Ollama与git-gpt一起使用,请按以下方式进行配置:
git-gpt config --api-type ollama --ollama-base http://localhost:11434 --model < MODEL_NAME >将<MODEL_NAME>替换为您在Ollama中拉动的模型(例如,Llama2,Codellama,Mistral等)。
Git-GPT中Ollama的默认模型设置为“ GPT-4O-Mini”。您可以通过在配置期间或运行命令时指定不同的模型来更改此操作。
配置后,您可以像OpenAi一样将Git-GPT与Ollama一起使用。所有命令(提交,问题,质量,更改,询问)将自动使用您的Ollama配置。
注意:使用Ollama时,您无需提供API键。
阶段所有更改并生成一个提交消息:
git-gpt commit [--lang < LANGUAGE > ] [--model < MODEL > ] [--run-dry]选项:
--lang :生成消息的目标语言(默认为'en')。--model :用于生成消息的模型(默认设置在配置中)。--run-dry :打印生成的消息而无需提交。要根据最新提交的差异来创建问题,请运行:
git-gpt issue [--lang < LANGUAGE > ] [--model < MODEL > ] [--max-tokens < MAX_TOKENS > ] [--commit-range < COMMIT_RANGE > ]选项:
--lang :生成消息的目标语言(默认为'en')。--model :用于生成消息的模型(默认设置在配置中)。--max-tokens :用于发行提示的最大令牌(覆盖已配置的值)。--commit-range :考虑生成问题的承诺范围。要对最新提交的差异进行质量检查,请运行:
git-gpt quality [--lang < LANGUAGE > ] [--model < MODEL > ] [--max-tokens < MAX_TOKENS > ] [--commit-range < COMMIT_RANGE > ]选项:
--lang :生成消息的目标语言(默认为'en')。--model :用于生成消息的模型(默认设置在配置中)。--max-tokens :用于质量检查提示的最大代币数(覆盖已配置的值)。--commit-range :考虑质量检查的承诺范围。要根据最新提交的差异生成一个变形值,请运行:
git-gpt changelog [--lang < LANGUAGE > ] [--model < MODEL > ] [--max-tokens < MAX_TOKENS > ] [--commit-range < COMMIT_RANGE > ]选项:
--lang :生成的changelog的目标语言(默认为'en')。--model :用于生成ChangElog的模型(默认设置在配置中)。--max-tokens :用于changElog提示的最大代币数(覆盖已配置的值)。--commit-range :考虑生成更改的承诺的范围。要询问有关代码差异的自定义问题,请运行:
git-gpt ask --question < YOUR_QUESTION > [--model < MODEL > ] [--commit-range < COMMIT_RANGE > ]选项:
--question :询问代码差异的问题。--model :用于生成响应的模型(在配置中设置了默认值)。--commit-range :形成响应时要考虑的承诺范围。 如果您遇到有关aiohttp的任何问题,请尝试将Python降级到3.11,因为此问题已在Python 3.12中报告:
ERROR: Could not build wheels for aiohttp, which is required to install pyproject.toml-based projects
请随意分叉存储库,创建功能分支并打开拉动请求。
麻省理工学院许可证