⚠️ 此为实验版本。⚠️
![]() 产品经理 |
![]() 开发者 |
![]() DevOps |
告诉您的 AI 团队您想构建什么微服务,他们就会为您实现。 唯一的限制是您的想象力!
欢迎来到 Dev-GPT,我们利用先进的人工智能技术将您的想法变为现实!
我们的自动化开发团队旨在创建满足您特定需求的微服务,让您的软件开发过程无缝且高效。
团队由虚拟的产品经理、开发者和 DevOps 工程师组成,确保您的项目从概念到部署的每个环节都得到妥善处理。
pip install dev-gpt
dev-gpt generate
gpt-3.5-turbo 或 gpt-4 权限的 OpenAI API 密钥。GOOGLE_API_KEY 和 GOOGLE_CSE_ID 环境变量。dev-gpt configure --openai_api_key <您的 openai api 密钥>
dev-gpt configure --google_api_key <google api 密钥> (可选,用于谷歌自定义搜索)
dev-gpt configure --google_cse_id <google cse id> (可选,用于谷歌自定义搜索)
如果您设置了环境变量 OPENAI_API_KEY,则可以跳过配置步骤。
您的 API 密钥必须能访问 gpt-4 才能使用此工具。
我们正在研究如何支持使用 gpt-3.5-turbo。
dev-gpt generate \
--description "<微服务功能描述>" \
--model <gpt-3.5-turbo 或 gpt-4> \
--path </本地文件夹路径>
生成个人微服务需要以下信息:
- 您想要实现的任务 描述。(可选)
- 您想要使用的 模型 - gpt-3.5-turbo 或 gpt-4。gpt-3.5-turbo 价格便宜约 10 倍,但无法生成太复杂的微服务。(默认:您有权限访问的最大模型)
- 微服务生成到本地的 路径。(默认:./microservice)
创建过程通常需要 5 到 15 分钟。
在此期间,GPT 会迭代构建您的微服务,直到找到能让测试场景通过的策略。
请注意,使用 GPT-4 生成每个微服务的 OpenAI 费用大约在 $0.50 到 $3.00 之间,使用 GPT-3.5-Turbo 则在 $0.05 到 $0.30 之间。
在本地 Docker 中运行微服务。如果您的机器上未运行 Docker,它将尝试在不使用 Docker 的情况下运行。
此命令会在浏览器中打开一个游乐场,供您测试微服务。
dev-gpt run --path <微服务路径>
如果您想将微服务部署到云端,需要一个 Jina 账户。
创建 Jina 账户时,您会获得一些免费额度,可用于部署微服务($0.025/小时)。
如果额度用完,您可以购买更多。
dev-gpt deploy --microservice_path <微服务路径>
为了节省额度,您可以通过以下命令删除微服务:
jc list # 获取微服务 ID
jc delete <微服务 ID>
本节展示了使用 Dev-GPT 可以生成的微服务类型,帮助您了解其能力。
dev-gpt generate \
--description "用户输入一些内容,获得一个相关的深度赞美。" \
--model gpt-4

dev-gpt generate \
--description "使用 Newspaper3k 库从新闻文章 URL 中提取文本,并使用 GPT 生成摘要。示例输入:http://fox13now.com/2013/12/30/new-year-new-laws-obamacare-pot-guns-and-drones/" \
--model gpt-4

dev-gpt generate \
--description "将化学式转换为 2D 化学结构图。示例输入:C=C, CN=C=O, CCC(=O)O" \
--model gpt-4

dev-gpt generate \
--description "使用 trimesh 和 pyrender.OffscreenRenderer 以及 os.environ['PYOPENGL_PLATFORM'] = 'egl' 和 freeglut3-dev 库,创建整个 3D 对象及其 x、y、z 轴旋转的 2D 渲染。示例输入:https://graphics.stanford.edu/courses/cs148-10-summer/as3/code/as3/teapot.obj" \
--model gpt-4

dev-gpt generate \
--description "根据用户产品浏览历史和产品类别(时尚、电子产品、运动)生成个性化产品推荐。示例:输入:浏览历史:prod1(电子产品),prod2(时尚),prod3(时尚),输出:p4(时尚)" \
--model gpt-4

dev-gpt generate \
--description "给定搜索查询,使用 Hacker News API 查找文章,并返回(标题、作者、网站链接、网站首张图片)的列表。" \
--model gpt-4

dev-gpt generate \
--description "给定一张图片,返回带有所有动物边界框的图片(使用 https://pjreddie.com/media/files/yolov3.weights, https://raw.githubusercontent.com/pjreddie/darknet/master/cfg/yolov3.cfg)。示例输入:https://images.unsplash.com/photo-1444212477490-ca407925329e" \
--model gpt-4

dev-gpt generate \
--description "根据图片和标题生成表情包。示例输入:https://media.wired.com/photos/5f87340d114b38fa1f8339f9/master/w_1600%2Cc_limit/Ideas_Surprised_Pikachu_HD.jpg, 顶部文字:When you discovered GPT Dev" \
--model gpt-4

dev-gpt generate \
--description "给定一个单词,使用 datamuse API 返回一个押韵词列表。" \
--model gpt-4

dev-gpt generate \
--description "根据给定文本生成词云。" \
--model gpt-4

dev-gpt generate \
--description "给定一个 3D 对象,返回顶点数和面数。示例:https://raw.githubusercontent.com/polygonjs/polygonjs-assets/master/models/wolf.obj" \
--model gpt-4

dev-gpt generate \
--description "给定一个 URL,提取所有表格为 CSV 格式。示例:http://www.ins.tn/statistiques/90" \
--model gpt-4

dev-gpt generate \
--description "从音频文件创建梅尔频谱图。示例:https://cdn.pixabay.com/download/audio/2023/02/28/audio_550d815fa5.mp3" \
--model gpt-4

dev-gpt generate \
--description "将文本转换为语音。" \
--model gpt-4
您的浏览器不支持音频元素。
dev-gpt generate \
--description "根据图片和一组相对坐标列表创建热力图。示例输入:https://images.unsplash.com/photo-1574786198875-49f5d09fe2d2, [[0.1, 0.2], [0.3, 0.4], [0.5, 0.6], [0.2, 0.1], [0.7, 0.2], [0.4, 0.2]]" \
--model gpt-4

dev-gpt generate \
--description "根据 URL 生成二维码。示例输入:https://www.example.com" \
--model gpt-4

dev-gpt generate \
--description "使用自定义参数可视化曼德博集合。示例输入:center=-0+1i, zoom=1.0, size=800x800, iterations=1000" \
--model gpt-4

dev-gpt generate --description "将 Markdown 转换为 HTML"

下图展示了创建微服务并将其部署到云端的过程,其中阐述了两种不同的实现策略。
graph TB
description[描述:根据 URL 生成二维码] --> make_strat{思考策略}
test[测试:https://www.example.com] --> make_strat[生成策略]
make_strat --> implement1[实施策略 1]
implement1 --> build1{构建镜像}
build1 -->|错误信息| implement1
build1 -->|失败 10 次| implement2[实施策略 2]
build1 -->|成功| registry[推送 Docker 镜像到注册表]
implement2 --> build2{构建镜像}
build2 -->|错误信息| implement2
build2 -->|失败 10 次| all_failed[所有策略均失败]
build2 -->|成功| registry[推送 Docker 镜像到注册表]
registry --> deploy[部署微服务]
deploy --> streamlit[生成 Streamlit 游乐场]
streamlit --> user_run[用户测试微服务]
microservice.py:这是微服务的主要实现。test_microservice.py:这些是确保微服务按预期工作的测试用例。requirements.txt:此文件列出了微服务及其测试所需的包。Dockerfile:此文件用于在容器中运行微服务,并在构建镜像时运行测试。使用自然语言界面来生成、部署和更新您的微服务基础设施。
如果您想为此项目做贡献,欢迎提交 PR 或 issue。
以下列出了一些待完成的事项。
后续步骤:
- [ ] 检查 Windows 和 Linux 支持是否正常工作
- [ ] 为 README.md 添加视频
- [ ] 修复 bug:代码生成可能无限挂起 - 此时应中止并重新生成
- [ ] 新用户有免费额度,但应提示其验证账户
锦上添花的功能:
- [ ] 响应结果的平滑渲染动画
- [ ] 如果用户运行 dev-gpt 时不带任何参数,显示帮助信息
- [ ] 不显示此消息:🔐 You are logged in to Jina AI as florian.hoenicke (username:auth0-unified-448f11965ce142b6). To log out, use jina auth logout.
- [ ] 将游乐场集成到自定义网关中(无需重建自定义网关)
- [ ] 在普通模式下隐藏提示,在详细模式下显示提示
- [ ] 测试
- [ ] 清理重复代码
- [ ] 支持主流云提供商 - Lambda、Cloud Run、Cloud Functions 等
- [ ] 支持本地 Docker 构建
- [ ] 启用自动扩缩容以节省成本
- [ ] 在 README.md 中添加更多示例
- [ ] 支持多端点 - 示例:具有添加、删除和列出待办事项端点的待办事项列表微服务
- [ ] 支持有状态微服务
- [ ] 当前游乐场即使未更改也会打印两次。确保仅在更改时打印两次。
- [ ] 允许通过提供反馈来更新您的微服务
- [ ] 支持其他大型语言模型,如 Open Assistant
- [ ] 为了节省成本,在生成主要功能代码时应减少上下文插入 - 不需要 Jina 相关知识
- [ ] 使用 dev-gpt list 显示所有部署
- [ ] dev-gpt delete 删除部署
- [ ] dev-gpt update 更新部署
- [ ] 测试参数可选 - 如果没有测试参数,首先询问 GPT 是否需要更多信息来编写测试 - 例如访问 PDF 数据
- [ ]