30 秒看懂
Matthew Berman 演示了 smol developer:这个工具根据自然语言规格生成项目文件。他展示了使用 Modal 的历史配置、Ruby 计数脚本,以及一个调用 ChatGPT API 的 Python 命令行程序。这些示例展示了小规模运行的成功,并不保证任意项目都正确;命令和 API 反映的是 2023 年 5 月的情况。
- 1多文件提示词Berman 指定了一个 Python 循环:从环境文件读取 API 密钥、调用模型端点,并包含依赖文件。
- 2代码库与配置他克隆 smol-ai/developer,配置环境文件,并介绍基于 Modal 的工作流程和本地替代方案。
- 3Ruby 测试一个简单提示词生成了用于数到 100 的 Ruby 文件,他在 generated 目录中检查了该文件。
- 4详细规格较长的需求可以放在 Markdown 提示词文件中。历史版 README 提醒,重新生成会重写生成文件。
- 5运行生成的项目在这次有限的演示中,生成的 Python 程序接受提示词并返回回答。
要点建议
- Smol developer 将自然语言项目规格转化为一组生成的文件。
- Python 演示包含主脚本、环境配置和依赖文件,并成功回应了一个简单提示。
- 2023 年教程使用 Modal 作为一种运行方式,也介绍了另一种本地运行方式。
- 画面中的历史版 README 说明,普通重新生成会重写 generated 目录,因此再次运行前应保存工作成果。
- 即使简单演示成功,生成的代码、依赖和密钥仍需审查。
按章节阅读整理后的全文
根据提示词生成项目
Berman 介绍工具并演示一个小型 Python 客户端,展示生成的程序如何回答示例问题。
Smol developer 是一个项目生成工具,我把它看作一位初级开发者:给它一份规格,它就为应用编写文件。我先展示一个小项目,再介绍配置过程。这是 2023 年 5 月的演示;代码库命令、依赖和 API 接口此后可能发生变化。
我的提示词要求编写一个 Python 程序:从环境文件读取 API 密钥,提示用户输入,向 ChatGPT 3.5 Turbo API 发送请求,显示回答后再次询问。我还要求生成 requirements.txt 文件,并提供了一个 API 调用示例。这个工具创建的是整个项目结构,而不只是返回一段代码。
我运行生成的客户端,要求它讲一个笑话并回答一个历史事实问题。它返回了回答,还接受下一次输入。这说明示例在这次有限运行中成功,并不意味着所有生成的代码都正确、安全或可用于生产。
历史配置与运行方式
他介绍克隆代码库、配置凭据以及使用 Modal 或本地替代方式运行的过程。教程反映的是 2023 年的版本。

GitHub 项目是 smol-ai/developer。我把详细提示词比作交给初级开发者的规格:预期文件和行为描述得越清楚,生成器获得的上下文就越多。我克隆代码库,在 VS Code 中打开文件夹,并配置用于存放 API 密钥的环境文件。
展示的版本使用 Modal 作为运行生成器的一种方式。我安装 Modal 客户端,并在提示时完成身份验证;代码库还介绍了不使用 Modal、通过安装依赖并运行 main_no_modal.py 的方式。这些是历史说明,尝试复现前应查看当前项目文档和服务商条款。
Ruby 与 Python 示例
一个简单提示词生成 Ruby 文件,随后更长的规格生成包含多个文件的 Python 项目。Berman 用提示词测试了后者。

作为简单的首次测试,我运行生成器,要求它编写一个数到 100 的 Ruby 脚本。它报告将创建的文件,使用 Modal 容器,并把结果写入 generated 目录。我检查了生成文件,发现它符合这个简单任务。

对于更长的规格,展示的 README 允许使用 Markdown 提示词文件,而不必把整段描述放进终端。README 还说,普通运行会删除并重写 generated 目录,图片除外;也可以通过文件专用选项针对单个文件操作。再次运行前请保存需要的工作,并核实所用版本的行为。

我展示了一份浏览器扩展的详细规格示例,该扩展使用 Claude 总结网页。重点是提示词可以更详细地描述文件、界面元素和行为,类似于向另一位开发者交接任务。这次演示不能证明扩展无需测试就能正常工作。
对于 Python 示例,我检查生成的环境文件、主脚本和依赖文件,配置密钥并运行程序。它回答了一个笑话请求,然后等待下一次输入。请妥善保管凭据,不要将其放入共享代码库,并在运行或分发之前审查生成的代码和依赖。

同频道的其他文章
34:21EN → 简体中文
0:36EN → 简体中文
25:50EN → 简体中文
32:20EN → 简体中文
1:03:37EN → 简体中文
0:53EN → 简体中文