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 }
}