AutoCodeRover 使用教程
1. 项目介绍
AutoCodeRover 是一个基于大型语言模型(LLM)的自动化程序改进项目。该项目通过结合代码搜索API和调试能力,能够自动解决 GitHub 上的问题(包括错误修复和功能添加)。AutoCodeRover 在两个阶段工作:
- 上下文检索:LLM 利用代码搜索API导航代码库并收集相关上下文。
- 补丁生成:LLM 根据检索到的上下文尝试编写补丁。
AutoCodeRover 的独特之处在于其代码搜索API是程序结构感知的,而不是简单的字符串匹配,并且能够利用可用的测试用例通过统计故障定位来提高修复率。
2. 项目快速启动
环境准备
在开始之前,确保已经安装了 Docker 和 conda。如果没有安装,请参考相应的官方文档进行安装。
使用 Docker
-
克隆项目仓库:
git clone https://github.com/nus-apr/auto-code-rover.git cd auto-code-rover
-
构建 Docker 镜像:
docker build -f Dockerfile.minimal -t acr
-
运行 Docker 容器:
docker run -it -e OPENAI_KEY="${OPENAI_KEY:-OPENAI_API_KEY}" acr
请确保已经设置了
OPENAI_KEY
环境变量,将其替换为你的 OpenAI API 密钥。
本地模式
-
创建 conda 环境:
conda env create -f environment.yml
-
激活环境并设置 API 密钥:
source activate your_env_name export OPENAI_KEY=your_openai_api_key
-
运行 AutoCodeRover:
python main.py
3. 应用案例和最佳实践
以下是一个使用 AutoCodeRover 修复 Django 项目中问题的示例:
- 案例:Django Issue #32347
- 修复过程:AutoCodeRover 成功修复了该问题。可以查看修复过程的演示视频。
为了提高 AutoCodeRover 的修复率,建议提供测试用例,以便 AutoCodeRover 可以利用统计故障定位。
4. 典型生态项目
AutoCodeRover 可以与多个大型语言模型配合使用,例如 OpenAI、Anthropic、Groq 等。以下是支持的模型列表:
- OpenAI
- Claude
- Llama
- Anthropic
- Groq
这些模型可以通过环境变量进行配置,以适应不同的使用场景和需求。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考