git clone https://github.com/LOGIC-10/RepoAgent.git
cd RepoAgent使用PDM設置
初始化Python虛擬環境。確保在/RepoAgent Directory中運行以下CMD:
pdm venv create --name repoagent激活虛擬環境
使用PDM安裝依賴項
pdm install在配置Reporagent的特定參數之前,請確保OpenAI API在命令行中配置為環境變量:
export OPENAI_API_KEY=YOUR_API_KEY # on Linux/Mac
set OPENAI_API_KEY=YOUR_API_KEY # on Windows
$Env :OPENAI_API_KEY = " YOUR_API_KEY " # on Windows (PowerShell) 輸入RepoAgent的根目錄,然後在終端中嘗試以下命令:
repoagent run # this command will generate doc, or update docs(pre-commit-hook will automatically call this)
repoagent run --print-hierarchy # Print how repo-agent parse the target repo運行命令支持以下可選標誌(如果設置,將覆蓋config defaults):
-m , --model文本:指定用於完成的模型。默認值: gpt-3.5-turbo-t , --temperature浮點:設置模型的生成溫度。較低的值使模型更確定性。默認值: 0.2-r , --request-timeout Integer:為API請求以秒為單位定義超時。默認值: 60-b , --base-url文本:API調用的基本URL。默認值: https://api.openai.com/v1-tp , --target-repo-path路徑:目標存儲庫的文件系統路徑。用作文檔生成的根源。默認值: path/to/your/target/repository-hp , --hierarchy-path文本:用於組織文檔結構的項目層次結構文件的名稱或路徑。默認值: .project_doc_record-mdp , --markdown-docs-path文本:將存儲或生成標記文檔的文件夾路徑。默認值: markdown_docs-i , --ignore-list文本:在文檔生成期間要忽略的文件或目錄列表,被逗號分隔。-l , --language文本:文檔的ISO 639代碼或語言名稱。默認: Chinese-ll , --log-level [調試|信息|警告|錯誤|批評]:設置應用程序的記錄級別。默認值: INFO您也可以嘗試以下功能
repoagent clean # Remove repoagent-related cache
repoagent diff # Check what docs will be updated/generated based on current code change如果這是您第一次為目標存儲庫生成文檔,RepoAgent將自動創建一個JSON文件,該文件在目標存儲庫的根目錄中維護全局結構信息和名為Markdown_Docs的文件夾以存儲文檔。
一旦您最初生成了目標存儲庫的全局文檔,或者克隆的項目已經包含了全局文檔信息,則可以通過在目標存儲庫中配置預訂掛鉤來無縫並自動與團隊自動維護內部項目文檔!
pre-commitRepoAgent當前支持為項目生成文檔,這需要目標存儲庫中的某些配置。
首先,確保目標存儲庫是GIT存儲庫並已初始化。
git init在目標存儲庫中安裝預密碼,以檢測GIT存儲庫中的更改。
pip install pre-commit在目標存儲庫的根目錄中創建一個名為.pre-commit-config.yaml的文件。一個例子如下:
repos :
- repo : local
hooks :
- id : repo-agent
name : RepoAgent
entry : repoagent
language : system
pass_filenames : false # prevent from passing filenames to the hook
# You can specify the file types that trigger the hook, but currently only python is supported.
types : [python]有關鉤子的特定配置方法,請參考預先使用。配置YAML文件後,執行以下命令以安裝鉤子。
pre-commit install這樣,每個Git Commit將觸發RepoAgent的鉤子,自動檢測目標存儲庫中的變化並生成相應的文檔。接下來,您可以對目標存儲庫進行一些修改,例如將新文件添加到目標存儲庫,或修改現有文件。您只需要遵循普通的git工作流程:git add,git commit -m“您的提交消息”,git推動repoagent鉤將在git commit上自動觸發,檢測您在上一步中添加的文件並生成相應的文檔。
執行後,RepoAgent將自動修改目標存儲庫中的分階段文件並正式提交提交。執行完成後,將顯示綠色“通過”,如下圖所示:
生成的文檔將存儲在目標倉庫根目錄的指定文件夾中。生成文檔的渲染如下所示:
我們利用默認模型GPT-3.5-Turbo為Xagent Project生成文檔,該項目包括約270,000行代碼。您可以在GitHub上Xagent Project的Markdown_Docs目錄中查看這一代的結果。對於增強的文檔質量,我們建議考慮更高級的模型,例如GPT-4-1106或GPT-4-0125-Preview 。
最後,您可以通過自定義提示來靈活地調整文檔的輸出格式,模板和其他方面。我們對您對一種更科學的技術寫作和對社區的貢獻進行更科學的方法感到興奮。
我們將與Repo的聊天概念化為這些下游應用程序的統一網關,充當連接器,將重新代理與人類用戶和其他AI代理聯繫起來。我們未來的研究將著重於將界面調整到各種下游應用程序中,並對其進行自定義以滿足其獨特的特徵和實施要求。
在這裡,我們演示了我們下游任務之一的初步原型:自動問答,以解決問題和代碼說明。您可以通過運行以下代碼來啟動服務器。
pip install repoagent[chat-with-repo]
repoagent chat-with-repo這是採用重新加工的特色案例。
@misc { luo2024repoagent ,
title = { RepoAgent: An LLM-Powered Open-Source Framework for Repository-level Code Documentation Generation } ,
author = { Qinyu Luo and Yining Ye and Shihao Liang and Zhong Zhang and Yujia Qin and Yaxi Lu and Yesai Wu and Xin Cong and Yankai Lin and Yingli Zhang and Xiaoyin Che and Zhiyuan Liu and Maosong Sun } ,
year = { 2024 } ,
eprint = { 2402.16667 } ,
archivePrefix = { arXiv } ,
primaryClass = { cs.CL }
}