DuetGPT
🎉 新闻: DuetGPT 不再使用 langchain 而是使用 OpenAI 功能。这意味着可靠性和性能有了显著提升。
DuetGPT 是一个实验性的 AI 驱动的 CLI 工具和半自主代理,能够帮助开发者完成编码任务和文件系统任务。开发者将任务描述给 AI,AI 随后发出命令或跟进问题进行澄清。在开发者批准后,DuetGPT 会自动执行 AI 发出的命令。
DuetGPT 作为一个通用的 bash 助手表现也非常出色。
支持的 OpenAI 模型:
- gpt-3.5-turbo-0613(代码生成效果不佳)
- gpt-4-0613
示例任务:
- 重构 index.js:添加内联注释,改进变量命名。
- 撰写一个列出数据库中所有汽车的 bash 脚本。
- 查找当前目录及子目录中包含 "DuetGPT" 一词的所有文件。
- 基于 PR 中的提交消息撰写 PR 描述。
DuetGPT 基于 OpenAI 的 GPT-4 语言模型,利用其对话能力与开发者进行双向互动。它使用了 OpenAI API 的新功能,允许 AI 进行函数调用。
⚠️ DuetGPT 没有防护措施!在执行 AI 给出的命令前,确保你了解这些命令的含义。⚠️
这里是一个 30 秒的演示,使用 DuetGPT 构建一个 Node.js 应用,该应用使用 ASCII 字符在控制台中绘制曼德博集合:
https://github.com/kristoferlund/duet-gpt/assets/9698363/147bdf9d-28df-4421-9297-05abfeb53142
设置
使用 npm 全局安装 DuetGPT CLI 工具:
npm install -g duet-gpt
使用
要启动 DuetGPT,运行以下命令:
duet-gpt
系统会提示你输入 OpenAI API 密钥。你可以在 OpenAI 仪表板上找到你的 API 密钥。
_ _ _
| | | | | |
__| |_ _ ___| |_ __ _ _ __ | |_
/ _` | | | |/ _ \ __/ _` | '_ \| __|
| (_| | |_| | __/ || (_| | |_) | |_
\__,_|\__,_|\___|\__\__, | .__/ \__|
__/ | |
|___/|_|
┌ DuetGPT
│
◆ 请输入你的 OpenAI API 密钥:
│ sk-XXX…
└
开发设置
-
克隆仓库。
-
安装依赖:
npm install
- 使用 yarn 运行 DuetGPT:
npm start
示例互动
为了说明互动过程,我们选择一个非常简单的任务。假设你想要将 .yarn/cache
添加到 .gitignore
中。以下是如何让 DuetGPT 帮助你的方法:
_ _ _
| | | | | |
__| |_ _ ___| |_ __ _ _ __ | |_
/ _` | | | |/ _ \ __/ _` | '_ \| __|
| (_| | |_| | __/ || (_| | |_) | |_
\__,_|\__,_|\___|\__\__, | .__/ \__|
__/ | |
|___/|_|
┌ DuetGPT
│
◇ LLM 和内存启动
│
┌ 🤖 ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐
│ │
│ │
│ 我的任务是通过提供具体的 bash 或文件修改命令,帮助你完成与开发相关的任务,同时有效进行双向互动。 │
│ │
│ │
└────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘
│
◇ 你想做点什么?
│ 将 .yarn/cache 添加到 .gitignore
│
◇ AI 响应已收到
│
┌ 🤖 ────────────────────────────────────────────────────────────────────────┐
│ │
│ │
│ 首先,我需要检查当前目录中是否存在 .gitignore 文件。 │
│ │
│ § BASH │
│ │
│ 1 ls .gitignore │
│ │
│ │
└────────────────────────────────────────────────────────────────────────────┘
│
◇ 你想做点什么?
│ 运行命令
│
┌ 💻 ────────────┐
│ │
│ .gitignore │
│ │
└────────────────┘
│
◇ AI 响应已收到
│
┌ 🤖 ────────────────────────────────────────────────────────────────────┐
│ │
│ │
│ 我将现在把 '.yarn/cache' 附加到你现有的 .gitignore 文件中。 │
│ │
│ § BASH │
│ │
│ 1 echo ".yarn/cache" >> .gitignore │
│ │
│ │
└────────────────────────────────────────────────────────────────────────┘
│
◇ 你想做点什么?
│ 运行命令
│
┌ 💻 ────┐
│ │
│ 好的 │
│ │
└────────┘
│
◆ 你想做点什么?
│ 不确定
└
已知问题
- 当对大型文件提出更改建议时,AI 可能返回不完整的结果。由于 gpt-4 上下文窗口有限,DuetGPT 最适合用于小型文件——每个文件一个函数是理想的情况。
贡献
欢迎贡献!请打开一个 issue 或提交 pull request。
作者
- kristofer@fmckl.se
- Twitter: @kristoferlund
- Discord: kristofer#1475