gpt-pilot - 可扩展开发工具的 PoC,该工具从头开始编写整个应用程序,同时开发人员监督实施

Created at: 2023-08-16 19:56:07
Language: Python
License: MIT

🧑 ✈️ GPT 飞行员

毕达哥拉-io%2Fgpt-pilot |趋势转变

GPT Pilot 是一个真正的 AI 开发人员,他会编写代码、调试代码、在需要帮助时与你交谈等。

你可以指定要构建的应用类型。然后,GPT Pilot 会提出澄清问题,创建产品和技术要求,设置环境,并开始逐步对应用程序进行编码,就像在现实生活中一样,同时你监督开发过程。它要求你查看它完成的每项任务,或者在它遇到困难时提供帮助。这样,GPT Pilot 充当编码员,而你是审查代码并在需要时提供帮助的首席开发人员。


毕达哥拉-io%2Fgpt-pilot |趋势转变

GPT Pilot 是 VS Code 扩展的核心技术,旨在提供第一个真正的 AI 开发人员伴侣。不仅仅是一个自动完成或 PR 消息的助手,而是一个真正的 AI 开发人员,可以编写完整的功能、调试它们、与你讨论问题、要求审查等。


📫 如果你想获得未来版本的更新或只是联系,请加入我们的 Discord 服务器,或者你可以在此处添加你的电子邮件。📬



GPT Pilot 旨在研究在开发人员监督实施的同时,可以利用多少 GPT-4 来生成完全工作、生产就绪的应用程序。

主要思想是,人工智能可以为应用程序编写大部分代码(可能是 95%),但对于其余的 5%,在我们获得完整的 AGI 之前,开发人员是并且将需要的。

如果你对我们在这个项目中的学习感兴趣,可以查看我们最新的博客文章



https://github.com/Pythagora-io/gpt-pilot/assets/10895136/0495631b-511e-451b-93d5-8a42acf22d3d

🔌 要求

  • Python 3.9+
  • PostgreSQL(可选,默认数据库为 SQLite)
    • 需要 DB 的原因有很多,例如继续开发应用程序。如果你必须在任何时候停止或应用程序崩溃,请返回特定步骤,以便你可以更改开发中的一些后续步骤,并更轻松地进行调试,将来我们将添加功能来更新项目(更改现有项目中的某些内容或向项目添加新功能等)。

🚦如何开始使用 gpt-pilot?

👉 如果使用 VS Code 作为 IDE,最简单的入门方法是下载 GPT Pilot VS Code 扩展。👈

否则,你可以使用 CLI 工具。

安装 Python 和(可选)PostgreSQL 后,请按照下列步骤操作:

  1. git clone https://github.com/Pythagora-io/gpt-pilot.git
    (克隆存储库)
  2. cd gpt-pilot
  3. python -m venv pilot-env
    (创建虚拟环境)
  4. source pilot-env/bin/activate
    (或在 Windows 上)(激活虚拟环境)
    pilot-env\Scripts\activate
  5. pip install -r requirements.txt
    (安装依赖项)
  6. cd pilot
  7. mv .env.example .env
    (或在 Windows 上)(创建 .env 文件)
    copy .env.example .env
  8. 将环境添加到文件中:
    .env
    • LLM 提供程序 (OpenAI/Azure/Openrouter)
    • 你的 API 密钥
    • 数据库设置:SQLite/PostgreSQL(要从 SQLite 更改为 PostgreSQL,只需将
      DATABASE_TYPE=postgres
      )
    • (可选)为工作区中不应由 GPT Pilot 跟踪的文件夹设置IGNORE_PATHS,可用于忽略编译器创建的文件夹(即
      IGNORE_PATHS=folder1,folder2,folder3
      )
  9. python db_init.py
    (初始化数据库)
  10. python main.py
    (启动 GPT Pilot)

之后,你可以按照终端中的说明进行操作。

所有生成的代码都将存储在以启动试点时输入的应用名称命名的文件夹内的文件夹中。

workspace

🐳 如何在docker中启动gpt-pilot?

  1. git clone https://github.com/Pythagora-io/gpt-pilot.git
    (克隆存储库)
  2. 更新环境变量,这可以通过 来完成。如果你想使用本地模型,请前往 https://localai.io/basics/getting_started/
    docker-compose.yml
    docker compose config
  3. 默认情况下,GPT Pilot 将在你的机器上读取和写入,你也可以在
    ~/gpt-pilot-workspace
    docker-compose.yml
  4. 跑。这将为你构建一个 GPT-Pilot 容器。
    docker compose build
  5. 跑。
    docker compose up
  6. 访问 Web 终端
    port 7681
  7. python db_init.py
    (初始化数据库)
  8. python main.py
    (启动 GPT Pilot)

这将启动两个容器,一个是由 和 Postgres 数据库构建的新映像。新映像还安装了 ttyd,以便你可以轻松地与 gpt-pilot 交互。节点也安装在映像上,端口 3000 公开。

Dockerfile

🧑 💻️ CLI 参数

--get-created-apps-with-steps

列出所有现有应用。

python main.py --get-created-apps-with-steps

app_id
workspace

使用 app_id 继续处理现有应用

python main.py app_id=<ID_OF_THE_APP>

工作区路径:

python main.py workspace=<PATH_TO_PROJECT_WORKSPACE>

每个用户都可以为每个应用创建自己的工作区路径。

step

从特定步骤继续处理现有应用程序(例如:

development_planning
)

python main.py app_id=<ID_OF_THE_APP> step=<STEP_FROM_CONST_COMMON>

skip_until_dev_step

从特定开发步骤继续处理现有应用

python main.py app_id=<ID_OF_THE_APP> skip_until_dev_step=<DEV_STEP>

这与开发过程中的相同,但在开发过程中。如果你想玩 gpt-pilot,这可能是你经常使用的标志。

step

删除之前完成的所有开发步骤,并从开发开始继续处理现有应用程序。

python main.py app_id=<ID_OF_THE_APP> skip_until_dev_step=0

theme

python main.py theme=light

屏幕截图 2023-10-15 103907

python main.py theme=dark
  • 深色模式。屏幕截图 2023-10-15 104120

🔎 例子

用于计费、管理和用户管理的后端系统

SQLite 数据库分析应用

简单示例

📱 实时聊天应用程序

📝 Markdown 编辑器

  • 💬 提示:
    Build a simple markdown editor using HTML, CSS, and JavaScript. Allow users to input markdown text and display the formatted output in real-time.
  • ▶️ 应用创建过程的视频
  • 💻️ GitHub 存储库

⏱️ 计时器应用程序

  • 💬 提示:
    Create a simple timer app using HTML, CSS, and JavaScript that allows users to set a countdown timer and receive an alert when the time is up.
  • ▶️ 应用创建过程的视频
  • 💻️ GitHub 存储库

🏗 GPT Pilot 如何工作?

以下是 GPT Pilot 创建应用程序所采取的步骤:

GPT Pilot 工作流程

  1. 输入应用名称和说明。
  2. 产品负责人代理就像在现实生活中一样,什么都不做。:)
  3. 如果项目描述不够好,规范编写器代理会问几个问题,以便更好地理解需求。
  4. 架构师代理编写将用于应用程序的技术,并检查计算机上是否安装了所有技术,如果没有安装它们。
  5. 技术主管代理编写开发人员必须实现的开发任务。
  6. 开发人员代理接受每个任务,并写下实现它需要做什么。描述采用人类可读的形式。
  7. Code Monkey 代理获取开发人员的描述和现有文件并实现更改。
  8. 审阅者代理会审查任务的每个步骤,如果做错了什么,审阅者会将其发送回 Code Monkey。
  9. 故障排除代理可帮助你在出现问题时向 GPT Pilot 提供良好的反馈。
  10. 调试器代理讨厌见到他,但当事情向南发展时,他是你最好的朋友。
  11. Technical Writer 代理为项目编写文档。

GPT 飞行员编码工作流程


🕴GPT Pilot 与 Smol 开发人员GPT 工程师有何不同?

  • GPT Pilot 与开发人员合作创建一个完全可用的生产就绪应用程序——我认为 AI 不能(至少在不久的将来)在没有开发人员参与的情况下创建应用程序。因此,GPT Pilot 会像开发人员在现实生活中一样逐步对应用程序进行编码。这样,它可以在整个开发过程中出现问题时对其进行调试。如果它卡住了,你,负责的开发人员,可以查看代码并解决问题。其他类似的工具可以同时为你提供整个代码库 - 这样一来,对于 AI 和开发人员来说,错误更难修复。

  • 大规模工作 - GPT Pilot 并不意味着创建简单的应用程序,而是它可以在任何规模下工作。它具有过滤掉代码的机制,因此在每个 LLM 对话中,它不需要将整个代码库存储在上下文中,但它只向 LLM 显示它正在处理的当前任务的相关代码。应用程序完成后,你可以通过编写有关要添加的功能的说明来继续处理它。

🍻 贡献

如果你有兴趣为 GPT Pilot 做出贡献,我将非常乐意让你加入并帮助你入门。请随时 ping zvonimir@pythagora.ai,我会帮助你入门。

🔬️ 研究

由于这是一个研究项目,因此有许多领域需要在实践和理论层面上进行研究。我们很高兴听到如何改进整个 GPT Pilot 概念。例如,如果我们以不同的方式构建功能需求,或者可能需要以不同的方式指定技术需求,也许效果会更好。

🖥 发展

除了研究之外,GPT Pilot 还需要进行调试才能在不同的场景中工作。例如,我们意识到生成的代码的质量对开发任务的大小非常敏感。当任务太宽时,代码有太多难以修复的错误,但当开发任务太窄时,GPT 似乎也很难将任务实现到现有代码中。

📊 遥测

为了改进 GPT Pilot,我们正在跟踪一些事件,你可以随时选择退出这些事件。你可以在这里阅读更多关于它的信息。

🔗 联系我们

🌟 作为一个开源工具,如果你给 GPT-pilot 存储库🌟加星标,这对我们来说意味着世界

💬 加入 Discord 服务器取得联系。

🌟 明星历史

星历图