- 💖 大家好,我是Zeeland。Tags: 大模型創業、LangChain Top Contributor、算法工程師、Promptulate founder、Python開發者。
- 📣 個人說明書:Zeeland
- 📣 個人網站:https://me.zeeland.cn/
- 📚 Github主頁: Undertone0809 (Zeeland)
- 🎉 支持我:點贊👍+收藏??+留言📝 我會定期在博客、個人說明書、論壇中做一些技術分享。也歡迎大家閱讀我的個人說明書,大家可以在這里快速了解我和我做過的事情,期待和你交個朋友,有機會我們一起做一些有意思的事情
在日常的開發工作中,提交代碼是一項頻繁且必須的任務。而編寫一致且有意義的 git commit 消息對于項目的維護和代碼審核至關重要。然而,這也是一項需要花費時間和精力的工作。為了簡化這個過程,我開發了一個名為 gcop 的 Git 提交助手工具,只需一個命令就能自動生成合適的 git commit message。
開發背景
gcop 的開發靈感來自于一次偶然的推文分享 https://x.com/mtrainier2020/status/1802941902964277379,我突然想到可以借助 git alias 添加一些小命令,于是我花了兩個小時的時間進行工程封裝,并發布了 pypi 包 ,so not only a demo。
我的目的很簡單,就是簡化自己的 git commit 流程。所有額外的操作或輸入自然語言的步驟都會降低開發體驗。因此,在這個核心場景下,我希望有一個工具可以無縫地集成到我的 git 工作流中,自動生成提交消息。
gcop 就是這樣一個工具,它通過大語言模型的能力幫助我撰寫 git commit 消息。只需要一個簡單的命令 git gcommit,就能生成符合規范的提交消息,如 feat: …。
在這個核心場景下,git gcommit 命令直接無縫接入我的 git 工作流中,讓我可以非常方便地自動 commit。gcop 簡單,但足夠高效。
項目亮點
- 無縫集成到 Git 工作流: gcop 能讓開發者在不需要額外輸入任何自然語言的情況下,輕松生成合適的提交消息。只需一個 git gcommit 命令,即可完成。
- 集成大語言模型: gcop 集成了 promptulate 的能力,可以使用市面上的任意語言模型來生成 git commit message,如 gpt-4o、deepseek 等模型,用戶可以通過配置文件(如 config.yaml)來選擇和配置自己的模型,使用起來非常方便。
- 標準化的 Python 項目: gcop 是基于 p3g 腳手架生成的,確保了項目的標準化和可維護性。p3g 作為一個成熟的 Python 項目生成器,可以方便地創建標準化的 Python 工程化項目。
使用指南
安裝和初始化
首先,通過 pip 安裝 gcop:
pip install gcop
安裝后需要初始化配置,運行以下命令:
gcop init
這將把 gcop 的命令別名添加到 git 中。
基本使用
在項目中執行以下命令以生成提交消息:
git add .
git gcommit
通過這些簡單的操作,gcop 會根據階段變更自動生成合適的提交消息。
配置語言模型
首次使用前需要配置語言模型。通過運行以下命令打開配置文件:
git gconfig
gcop 將生成一個 config.yaml 文件,用戶可以在其中配置自己的語言模型。例如:
model:model_name: OpenAI/gpt-4api_key: YOUR_API_KEY
視頻演示
為了更清晰地展示 gcop 的功能,這里附上一個視頻演示鏈接:
https://www.youtube.com/watch?v=j7qKI_TdhXs
如何自定義模型
gcop 集成了 promptulate 的能力,這意味著你可以輕松集成市面上的任意模型,下面的一些實例展示了如何配置不同大模型廠商的模型名。
下面是一個模型模版:
model:model_name: provider/name,eg openai/gpt-4oapi_key: your_api_key
OpenAI
If you want to initialize the model, you can use the following command:
model:model_name: openai/gpt-4oapi_key: your_api_key
Claude
model:model_name: claude-2api_key: your_api_key
Deepseek
model:model_name: deepseek/deepseek-chatapi_key: your_api_key
Ollama
model:model_name: ollama/llama2api_key: your_api_keyapi_base: http://localhost:11434
OpenAI Proxy
如果你使用智譜的模型,這意味著你可以通過如下方式進行配置:
model:model_name: openai/glm-4api_key: your_api_keyapi_base: https://open.bigmodel.cn/api/paas/v4/
Use openai/model_name
provider means you are using OpenAI SDK to call the model.
OpenRouter
model:model_name: openrouter/google/palm-2-chat-bisonapi_key: your_api_key
HuggingFace
model:model_name: huggingface/gpt2api_key: your_api_key
如何貢獻
如果您對 gcop 感興趣,可以訪問 GitHub 項目頁面獲取更多信息和源碼:https://github.com/Undertone0809/gcop
總結
在開發過程中,我深刻體會到簡化工作流程的重要性。gcop 的誕生,就是為了讓開發者能夠更加專注于核心代碼的編寫,而不必被繁瑣的提交消息所困擾。希望 gcop 能幫助更多的開發者提升工作效率。
當然,同步分享一下上面提到的兩個項目,promptulate https://github.com/Undertone0809/promptulate
p3g 這兩個框架也是本人開發。