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
請隨意分叉存儲庫,創建功能分支並打開拉動請求。
麻省理工學院許可證