项目简介
Autopilot 是一个利用人工智能(AI)技术的开发工具,它通过使用 GPT 模型来读取代码库、创建上下文并完成用户请求的任务。它能够自动分析和处理代码库中的文件,帮助开发者高效地完成代码更改和项目维护。Autopilot 还作为 GitHub 应用提供,方便用户在 GitHub 上自动解决问题并处理拉取请求。
功能特点
- 预处理代码文件:Autopilot 能够分析代码库文件,生成并维护包含这些文件的元数据信息的数据库。
- 代码更改执行:依据用户任务自动进行代码更改,适用于复杂项目开发情景。
- 并行任务执行:在可能的情况下,Autopilot 会同时运行多个任务来提高效率。
- 更新日志展示:展示每次 AI 互动的完整过程日志,让用户了解具体的更改详情。
- 交互模式:提供交互模式,用户可以选择重试、继续或中止操作,增强灵活性。
任务支持
-
参考现有代码:
- 支持通过项目相对路径或文件名引用特定文件。
- 能够在不指定文件名的情况下,引用文件中的特定函数。
- 支持引用项目中专用于某一业务概念的文件。
- 支持对整个项目文件的引用。
-
代码更改执行:
- 能够根据已有文件创建新文件。
- 更新单个或多个现有文件。
- 尚不支持删除现有文件或添加新库。
- 正在开发中:级联更新相关文件(如测试)。
使用说明
系统要求
需安装 nodejs v18 或更高版本。
安装步骤
- 克隆代码仓库:
git clone https://github.com/fjrdomingues/autopilot.git
- 进入仓库目录并安装依赖:
cd autopilot npm ci
- 创建并设置
.env
文件:- 复制模板文件:
cp .env.template .env
- 设置 OpenAI API 密钥:
OPENAI_API_KEY=<your-api-key>
- 指定代码路径:
CODE_DIR=<path-to-your-code>
- 复制模板文件:
运行
- 使用命令
node ui -t "YOUR_TASK"
开始,任务解决方案将自动应用于代码,并展现差异。 - 可以通过设定
--auto-apply=false
禁用自动应用功能。 - 使用
node ui -i
进入交互模式,使用户在每个步骤时进行输出审查再决定下一步操作。
贡献
欢迎各位开发者对 Autopilot 提交改进建议和功能更新。在 GitHub 仓库提交 Pull Request 并确保修改符合项目目标和规范是欢迎的贡献方式。通过集思广益,Autopilot 将会变得更加强大和高效。
测试执行
- 运行所有测试:
npm run test
- 运行单元测试:
npm run unit-test
- 运行端到端测试:
npm run e2e-test
代码结构
agents
:负责与语言模型的交互。modules
:大多数内部库。ui.js
:主文件。logs
:记录任务运行日志。
通过这些结构和流程,Autopilot 为开发者提供了一种高效、自动化的代码管理和维护工具,可以显著提高开发效率和代码质量。