AutoPR 是一个 GitHub 仓库,名称来自 irgolic/AutoPR。根据仓库说明,AutoPR 能够自主地根据 issue 编写 pull request,构建时使用了 Guardrails。
用途
AutoPR 旨在自动化响应 GitHub issue 的过程:当用户在某个 issue 上添加包含 AutoPR 的标签时,AutoPR 会被触发,然后打开一个 pull request。它试图让机器人代替开发者完成从 issue 到代码变更的初步工作。仓库描述提到,撰写良好的 issue 通常能带来更好的结果。
主要能力
据资料显示,AutoPR 可以:
- 根据 issue 自主生成 pull request。
- 在触发后打开 pull request。
- 使用 Guardrails 来提示大语言模型生成结构化数据(JSON Schema),并在不符合时重新询问。
仓库还列出了一些由 AutoPR 生成的示例,包括:创建掷骰子机器人、创建“技术术语生成器”、创建用户友好的天气应用、编写三个编程面试挑战、将 GPT2FastTokenizer 替换为 tiktoken。
使用方式
触发方式:在 issue 上添加包含 AutoPR 的标签。
该工具以 GitHub Action 的形式存在,资料称其“处于开发中,且为 alpha 版本”。更多信息可查看仓库中的 USAGE.md 和 CONTRIBUTING.md。
适用场景
AutoPR 适用于 GitHub 上的 issue 自动化处理场景,尤其是希望由机器人根据 issue 内容自动生成 pull request 的初步尝试。
限制
仓库明确列出以下已知问题:
- 可能错误地引用其他文件中的代码。
- 可能产生重复行。
- 可能调用不存在的函数。
- 仅适用于 GitHub(见 issue #46)。
此外,作者表示它“大约只有 20% 的时间能正常工作”。
背景
资料提到,AutoPR 是作者在 2023 年 3 月的一个周末编码冲刺中创建的,当时 OpenAI 刚推出首个“ChatGPT API”。作者认为 AutoPR 是首个自主生成 pull request 的机器人。灵感来自 Guardrails,后者通过 JSON Schema 提示大语言模型生成结构化数据,并在不符合时重新询问,这发生在语法驱动的结构化数据生成出现之前。