以人为中心且连贯的完整程序合成,也就是你的专属初级开发者。
构建那个能构建事物的东西! 为每个开发者、每种场景配备一个
smol dev。
这是一个“初级开发者”智能体(又名 smol dev),它能够:
与创建和维护特定、僵化、一次性的启动器(如 create-react-app 或 create-nextjs-app)不同,这本质上就是或能帮助你创建 create-anything-app,你可以与你的 smol 开发者进行紧密的循环迭代,来开发你的脚手架提示词。
在成功发布初始 v0 版本之后,smol developer 被重写为更小,并且可以从库中导入!
# 安装
git clone https://github.com/smol-ai/developer.git
cd developer
poetry install # 安装依赖。如果需要,请先运行 pip install poetry
# 运行
python main.py "一个 HTML/JS/CSS 井字棋游戏" # 默认使用 gpt-4-0613
# python main.py "一个 HTML/JS/CSS 井字棋游戏" --model=gpt-3.5-turbo-0613
# 其他命令行标志
python main.py --prompt prompt.md # 对于较长的提示词,可以将它们移动到 markdown 文件中
python main.py --prompt prompt.md --debug True # 用于调试
通过这种方式,你可以使用此仓库的克隆版本来原型化/开发你的应用程序。
这是 smol developer v1 的新功能!将 smol developer 添加到您自己的项目中!
pip install smol_dev
在这里,你基本上可以将 main.py 的内容视为我们关于如何在您自己的应用程序中使用这些函数和提示词的“文档”:
from smol_dev.prompts import plan, specify_file_paths, generate_code_sync
prompt = "一个 HTML/JS/CSS 井字棋游戏"
shared_deps = plan(prompt) # 返回一个代表编码计划的长字符串
# 如果你愿意,可以对 shared_deps 计划做一些事情,例如请求用户确认/编辑并在循环中迭代
file_paths = specify_file_paths(prompt, shared_deps) # 返回一个字符串数组,代表它需要根据你的提示词和 shared_deps 编写的文件名。依赖于 OpenAI 的新函数调用 API 来保证 JSON 格式。
# 如果你愿意,可以对 file_paths 做一些事情,例如展示一个计划
# 遍历 file_paths 数组并为每个文件生成代码
for file_path in file_paths:
code = generate_code_sync(prompt, shared_deps, file_path) # 生成每个文件的源代码
# 对文件的源代码做一些事情,例如写入磁盘或在 UI 中显示
# 这个函数也有一个异步版本 `generate_code()`
要启动服务器,请运行:
poetry run api
或
python smol_dev/api.py
然后你可以使用以下命令调用 API:
要创建一个任务,请运行:
curl --request POST \
--url http://localhost:8000/agent/tasks \
--header 'Content-Type: application/json' \
--data '{
"input": "用 Python 写一个简单的脚本。它应该将 '\''Hello world!'\'' 写入 hi.txt"
}'
你将收到类似这样的响应:
{"input":"用 Python 写一个简单的脚本。它应该将 'Hello world!' 写入 hi.txt","task_id":"d2c4e543-ae08-4a97-9ac5-5f9a4459cb19","artifacts":[]}
然后要执行任务的一个步骤,请复制你从上一次请求中得到的 task_id 并运行:
curl --request POST \
--url http://localhost:8000/agent/tasks/<task-id>/steps
或者你可以使用 Python 客户端库:
from agent_protocol_client import AgentApi, ApiClient, TaskRequestBody
...
prompt = "用 Python 写一个简单的脚本。它应该将 'Hello world!' 写入 hi.txt"
async with ApiClient() as api_client:
# 创建 API 类的实例
api_instance = AgentApi(api_client)
task_request_body = TaskRequestBody(input=prompt)
task = await api_instance.create_agent_task(
task_request_body=task_request_body
)
task_id = task.task_id
response = await api_instance.execute_agent_task_step(task_id=task_id)
...
smol-plugin - 提示词生成 ChatGPT 插件(推文, 分支)我正在积极寻找更多示例,请提交你的 PR!
抱歉示例不多,我知道这很令人沮丧,但我没料到会有这么多用户,哈哈。
请提交替代实现方案,以及在替代技术栈上的部署策略!
请订阅 https://latent.space/ 以获取更完整的文章、洞见和反思。
variable_names 还是整个 ``` 代码块)。curl 的输入和输出,教程序理解如何围绕一个新 API(Anthropic 的 API 在 GPT3 的知识截止日期之后)进行编码。cat 整个代码库并附上错误信息来调试并获得具体的修复建议——特别令人愉快!shared_dependencies.md,然后在生成每个文件时坚持使用它。这基本上意味着 GPT 能够与自己对话……shared_dependencies.md 有时不能全面理解文件之间的硬依赖关系。所以我们只是通过在提示词中指定一个特定的 name 来解决。起初感觉有点取巧,但它有效,而且说到底,这其实就是清晰无歧义的沟通。prompt.md 了解最新的 smol-dev 提示词。请订阅 https://latent.space/ 以获取更完整的文章、洞见和反思。
我们当时正在开发一个 Chrome 扩展程序,它需要生成图像,因此我们在其中添加了一些特定于用例的代码来跳过销毁/重新生成它们,我们还没有决定如何将其通用化。
我们无法访问 GPT4-32k,但如果我们能访问,我们会探索将整个 API/SDK 文档放入上下文中。
目前的反馈循环非常慢(time 显示即使用 Modal 并行化,生成一个 GPT4 程序也需要大约 2-4 分钟,偶尔会更高),但可以稳妥地预测,随着时间的推移,这个时间会减少(另见下面的“未来方向”)。
可以尝试/愿意接受公开 issue 讨论和 PR 的方向:
popup.html.md 和 content_script.js.md 等等。prompt.md - 编写一个脚本来读取代码库并编写一个描述性的、带项目符号的提示词,该提示词可以生成它。smol pm 完成,但效果还不是很好——希望有一些集中的改进/努力,直到我们拥有可以生成自身的 quine smol developer,哈哈。modal run anthropic.py --prompt prompt.md --outputdir=anthropic 来尝试。