AICodeBot 是一款基於終端的編碼助手,旨在讓您的編碼生活更輕鬆。將其視為結對程式設計師的人工智慧版本。執行程式碼審查、建立有用的提交訊息、調試問題並幫助您思考建立新功能。加快開發速度並幫助您編寫更好程式碼的團隊成員。
我們計劃建立多個不同的介面來與 AICodeBot 互動。首先,它是一個可以在終端機中安裝和運行的命令列工具,以及一個用於程式碼審查的 GitHub 操作。
狀態:這個專案是在人工智慧編碼助理變得很酷之前建構的。 ?因此,許多功能已在各種 IDE 中複製。 AICodeBot 的亮點在於 a) 它位於終端機中,而不是 GUI,b) 它可以在 GitHub actions 等流程中使用。
我們正在使用 AICodeBot 來建造 AICodeBot,並且它一直在螺旋式上升。有關更多信息,請參閱貢獻。
任務 | 地位 |
---|---|
產生品質提交訊息 | ✅ |
作為結對程式設計師思考任務 | ✅ |
使用少量文件進行編碼 | ✅ |
偵錯 | ✅ |
進行程式碼審查 | ✅ |
解釋程式碼 | ✅ |
編寫測試 | ✅ |
與 GitHub 集成 | ✅ |
修改本地文件 | 早期階段 |
在網路上搜尋答案 | 進行中 |
閱讀圖書館文檔 | 早期階段 |
使用大量文件進行編碼 | 隨著 LM 獲得更大的代幣限制 |
編寫高級開發人員級別的程式碼 | 最終 |
主要重構 | 最終 |
建立整個應用程式 | 最終 |
更換開發人員 | 沒有 |
aicodebot sidekick
您的人工智慧編碼助理。它旨在透過提供上下文感知建議和解決方案來幫助您完成編碼任務。認為 ChatGPT 能夠讀取本機儲存庫以取得上下文。
預設情況下,它將傳遞當前工作目錄中的檔案目錄,您也可以傳遞檔案清單以用作您正在處理的任務的上下文。例如:
aicodebot sidekick file1.py file2.py
在此範例中,sidekick 將讀取 file1.py 和 file2.py 的內容,並使用它們來提供上下文感知的答案。
專業提示:
該功能目前還處於早期階段,但已經很有用了。我們將添加對 sidekick 可以使用的工具的支持,包括 GitHub 整合、提取儲存庫特定領域知識、編寫本地文件等等。目前,它只是讀取文件並提供建議。
aicodebot commit
改進了 git 提交流程。它將運行預提交來檢查語法,然後根據您所做的更改為您產生提交訊息。只需在提交訊息中輸入“修復錯誤”即可,您將獲得完整描述更改的高品質提交訊息。
aicodebot review
將對您的程式碼進行程式碼審查並提出改進建議。預設情況下,它將查看[un]暫存的更改,您還可以提供特定的提交雜湊來進行審查。它的目標是建議如何使程式碼變得更好,我們發現它經常教導我們有關程式碼的新知識,並使我們成為更好的程式設計師。這是讓第二雙機器人眼睛專注於您的程式碼的好方法。
aicodebot debug $command
將運行 $command 並捕獲日誌輸出。它將錯誤訊息、堆疊追蹤、命令輸出等傳遞給人工智慧,並給出一些有關如何修復它的建議。
若要安裝 AICodeBot,請執行:
pip install aicodebot
然後,執行aicodebot configure
開始。
Usage: aicodebot [OPTIONS] COMMAND [ARGS]...
Options:
-V, --version Show the version and exit.
-h, --help Show this message and exit.
-d, --debug Enable langchain debug output
Commands:
alignment A message from AICodeBot about AI Alignment ❤ + ?.
commit Generate a commit message based on your changes.
configure Create or update the configuration file
debug Run a command and debug the output.
review Do a code review, with [un]staged changes, or a...
sidekick Coding help from your AI sidekick
AICodeBot支援多種大型語言模型,包括Anthropic的Claude 3.x和OpenAI的GPT-3/4x。歡迎 Gemini 或 Ollama 的 Pull 請求,但我們認為這兩個可以解決問題。
第一次執行 AICodeBot 時,系統會提示您輸入 API 金鑰
每次提交時自動進行程式碼審查怎麼樣?您可以讓 AICodeBot 作為儲存庫上的 GitHub 作業運作。請參閱 AICodeBot GitHub 程式碼審查操作。它將查看每個提交和拉取請求,然後:
aicodebot debug $command
嘗試一下pip install aicodebot
作為 Python 套件安裝aicodebot alignment
。 科技本身是不道德的;它只是灌輸了創造它的人的價值觀。我們相信人工智慧應該以一種與人性一致的方式構建,我們正在構建 AICodeBot 來幫助我們做到這一點。我們正在建立一個以心為中心的空間,並為人工智慧與人類的健康交叉做出貢獻。
aicodebot
是開發人員的工具,而不是他們的替代品。它不會取代您的工作,但會讓您的工作變得更輕鬆、更有趣。它不會接管世界,但會幫助我們建立一個更美好的世界。有關更多信息,請參閱下面的對齊部分。
它也不是一個「5 分鐘內為我建立一個網站」的工具,它需要一個精心構建的提示並為您建立一個腳手架。還有其他工具可以實現這一點。它不是一個無程式碼平台。相反,AICodeBot 旨在與現有程式碼庫和 git 提交等級配合使用。它旨在提高有能力的工程師的效率。
若要指定不同的模型,您可以在$HOME/.aicodebot.yaml
檔案中設定language_model
。例如:
openai_api_key : sk-*****
language_model : gpt-3.5-turbo
personality : Stewie
version : 1.3
在 OpenAI 的 GPT-4 等人工智慧模型中,「令牌」是一段文本,短如字元或長如單字。 API 呼叫中的總令牌(包括輸入和輸出)會影響成本、時間以及呼叫是否基於最大限制進行。
每個模型都有最大代幣限制。例如,GPT-3.5 的代幣限制為 4096 個代幣,GPT-4 的代幣限制為 8192 個代幣。如果對話超出此限制,您必須減少文字直至適合。
當使用 AICodeBot 中的 Sidekick 命令(允許您傳入上下文檔案)等命令時,有效管理令牌非常重要。由於令牌限制,載入整個程式碼庫是不可行的。相反,您應該只載入與您正在處理的任務相關的特定檔案。這確保了人工智慧模型可以有效地處理您的請求,並為您當前的任務提供最相關的建議。
您的任務需要更大的上下文視窗嗎?您是否遇到了令牌限制並收到這樣的訊息?
The context is too large (21414) for any of the models supported by your API key. ?
您可以執行以下幾項操作:
我們希望得到您的幫助!如果您有興趣做出貢獻,請按照以下步驟開始。有關更多詳細信息,請參閱貢獻。
假設您已新增目前工作目錄中的變更。
docker build -t aicodebot .
docker run -v ~ /.aicodebot.yaml:/home/user/.aicodebot.yaml -v .:/app aicodebot commit -y