# autopilot **Repository Path**: qubitai/autopilot ## Basic Information - **Project Name**: autopilot - **Description**: 自动管理代码库,通过自然语言的方式写代码。 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: develop - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2023-10-21 - **Last Updated**: 2023-10-24 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README

Autopilot - 一种AI开发者

Autopilot 是一种利用GPT从代码库中读取信息,创建上下文并解决你请求的任务的AI工具。

Autopilot演示

# 如何运作 1. 你向Autopilot指出一份代码库以及一个任务。 2. Autopilot产生并维护一个与代码库文件的元数据DB。(在代码库目录中) 3. Autopilot使用元数据DB决定它需要处理哪些现有的文件。 4. Autopilot尝试在每一个相关文件上实施所要求的任务。 ## 特性 - 📚 - 预处理代码库文件。 - 🤖 - 为你实现代码更改。 - 🚀 - 在可能的情况下进行并行调用。 - 📝 - 显示你被更新的内容。(也会提供包含每个AI交互过程的全程日志) - 🕹️ - 交互模式 - 看见过程并有重试,继续,中止选项。 ### 任务期望 - 引用当前代码: - ✅ 通过项目相对路径引用一个特定文件。 - ✅ 仅通过文件名引用一个特定文件,忽略子目录路径。 - ✅ 在不包括文件名的情况下引用文件中的一个特定函数。 - ✅ 引用一个主要的业务概念,该业务概念只在一个文件中使用。 - ✅ 引用所有项目文件。 - 🤔 一般逻辑请求。你的实际效果会因模型,代码库和任务而异。有些可以工作。(应该加入任务评分) - 执行的更改: - ✅基于现有文件创建一个新文件。 - ❌从头开始创建一个新文件。 - ✅更新一个现有文件。 - ✅更新多个现有文件。 - ❌删除现有文件。(目前只能清空它们,而不能删除它们) - ❌开始使用新的第三方库。(需要随意代码执行来安装库) - ❌级联更新相关文件例如测试。 (即将来临) - ❌测试它写的代码并自我修复。 ## 先决条件 nodejs v18或更高版本。 ## 🛠️ 安装 1. 克隆仓库:`git clone https://github.com/fjrdomingues/autopilot.git` 2. 输入 `cd autopilot` 去安装依赖:`npm ci` 3. 创建 `.env` 文件并设置环境变量: 1. 复制 .env.template 文件为 .env:`cp .env.template .env` 2. 设置一个OpenAI API键然后用键填写文件:`OPENAI_API_KEY=`。 [创建an OpenAI API key](https://platform.openai.com/account/api-keys) 3. 设置你的代码路径 `CODE_DIR=`(或使用 `-d path-to-your-code`) 4. 更新 `IGNORE_LIST=node_modules,coverage,public,__tests__` 5. 更新 `FILE_EXTENSIONS_TO_PROCESS=.js,.tsx,.ts,.jsx` ## 运行 * `node ui -t "YOUR_TASK"` - 这是最简单的开始方式。 * 解决方案将会自动应用到你的代码并显示git diff输出内容。 * 另外你也可以指定 `--auto-apply=false`。 * `node ui -h` - 将显示你所有的选项。 ## 交互模式 使用 `node ui -i` 来启动交互模式,你可以在进行下一步之前查看每个步骤的输出。 ## 🤝 作出贡献 **我们正在服务器上运行autopilot,连接到https://github.com/fjrdomingues/autopilot仓库。新的问题被创建时,autopilot会被触发并创建一个新的带有提案的Pull Request。现在正在运行gpt-4** 我们欢迎作出贡献!请向仓库提交pull request,并确保你的变更与项目的目标和指导方针相符。一起,我们能够让**Autopilot**成为更强大,更有效的开发者工具! ### 运行所有测试 `npm run test` - 运行所有测试 ### 运行单元测试 `npm run unit-test` - 运行单元测试 ### 运行基准测试 `npm run e2e-test` - 运行端到端测试 ### 代码结构 - agents - 与语言模型的交互。 - modules - 大部分其他内部库。 - ui.js - The main()。 - logs - 记录运行任务。 ### 运行流程 # 代码执行流程图 ```mermaid graph TD Start[开始] --> InitializeCodeBase[初始化或重新索引代码库] InitializeCodeBase --> GetTask[获取用户任务] GetTask --> GetCodeSummaries[获取代码摘要] GetCodeSummaries --> DetermineRelevantFiles[确定相关文件] GetCodeSummaries --> DetermineRelevantFiles DetermineRelevantFiles --> GetRelevantFiles[获取相关文件] GetRelevantFiles --> FilterUniqueFiles[过滤重复文件] FilterUniqueFiles --> FetchCodeFiles[获取代码文件] FetchCodeFiles --> ProcessFiles[处理文件] ProcessFiles --> SuggestChanges[建议更改] SuggestChanges --> ApplyChanges[应用更改] ApplyChanges --> SaveOutput[保存输出] ApplyChanges --> GetFinalAnswer[获取最终答案] SuggestChanges --> GetAdvice[获取建议] GetAdvice --> GetFinalAnswer GetFinalAnswer --> ProvideOutput[提供输出] ```