SuperAPI AI 工具集

batchai

batchai 是 Copilot 和 Cursor 的补充工具,用 AI 批量处理整个项目代码。只需运行一条命令即可扫描并处理整个代码库,让 AI 自动查找和修复常见缺陷,或生成单元测试代码,类似 AI 驱动的 SonarQube 错误检查。它旨在省去在聊天窗口与打开文件之间复制粘贴、或手动将文件加入 AI 上下文的操作,提升效率。支持批量代码检查、批量生成单元测试代码、自定义提示词、文件忽略、目标指定等功能;使用 Go 实现,提供可在 Mac OSX、Linux、Windows 上运行的单一可执行文件。支持 OpenAI 兼容的 LLM(包括 Ollama)。

访问官网

工具介绍

batchai 是 Copilot 和 Cursor 的补充工具,用 AI 批量处理整个项目代码。其目标是:运行一条命令即可扫描并处理整个代码库,让 AI 执行批量任务,例如自动查找并修复常见缺陷,或生成单元测试代码。它类似于 AI 驱动的 SonarQube 错误检查。本质上,batchai 通过免除在聊天窗口之间复制粘贴、打开文件或手动将文件加入 AI 上下文的操作,来补充 Copilot 和 Cursor 这类工具,使流程更高效。

主要能力:

  • 批量代码检查:将问题报告到控制台,保存为检查报告,之后可选择直接修复代码。
  • 批量测试代码生成。
  • 自定义提示词。
  • 文件忽略:指定要忽略的文件,同时遵循 .gitignore 和额外的 .batchai_ignore 文件。
  • 目标指定:允许指定 Git 仓库内的目标目录和文件。
  • 使用 Go 实现:产出可在 Mac OSX、Linux 和 Windows 上运行的单一可执行二进制文件。
  • Diff:在控制台显示彩色差异。
  • LLM 支持:支持 OpenAI 兼容的 LLM,包括 Ollama。
  • I18N:支持国际化注释/说明生成。

计划中的功能:目前 batchai 仅支持批量代码检查和生成单元测试代码,计划功能包括代码解释和注释生成、重构等,均以批量方式处理。另一个目标是构建跨文件代码符号索引,让 batchai 更广泛地理解项目,帮助 AI 更有效地工作。

使用方式:从发布页下载最新的可执行二进制文件并加入 $PATH。Linux 和 Mac OSX 需要 chmod +x 使其可执行。克隆演示项目(示例目录为 /data/spring-petclinic),在该目录创建 .env 文件并设置 OPENAI_API_KEY;Ollama 可参考示例 docker-compose.yml。

CLI 示例: 报告问题到控制台(同时保存到 build/batchai): cd /data/spring-petclinic batchai check . src/main/java/org/springframework/samples/petclinic/vet/Vets.java

通过 --fix 选项直接修复目标文件: cd /data/spring-petclinic batchai check --fix . src/main/java/org/springframework/samples/petclinic/vet/Vets.java

仅在主 Java 代码上运行: cd /data/spring-petclinic batchai check . src/main/java/

在整个项目上运行: cd /data/spring-petclinic batchai check .

为整个项目生成单元测试代码: cd /data/spring-petclinic batchai test .

已测试并支持的模型:

  • OpenAI 系列:openai/gpt-4o、openai/gpt-4o-mini;其他 OpenAI 模型应该也可用。
  • 阿里通义千问 Qwen 系列(也可通过 Ollama 使用):qwen2.5-coder-7b-instruct、qwen2.5-coder:7b-instruct-fp16;其他 Qwen 模型应该也可用。

要添加更多 LLM,只需按照 res/static/batchai.yaml 中的配置进行,只要该 LLM 暴露 OpenAI 兼容 API 即可。

可选配置文件:可以提供可选配置文件 ${HOME}/batchai/batchai.yaml,完整示例参见 res/static/batchai.yaml。

环境文件:也可以通过位于目标 Git 仓库目录中的 .env 环境文件配置 batchai。所有可用环境变量参见 res/static/batchai.yaml,默认值参见 res/static/batchai.env。

忽略特定文件:batchai 会忽略遵循 .gitignore 文件的目录和文件,通常已足够;如果还有额外文件或目录无法被 Git 忽略但不应由 batchai 处理,可以在 .batchai_ignore 文件中指定,规则写法与 .gitignore 相同。

自定义提示词:参考 res/static/batchai.yaml 中的 BATCHAI_CHECK_RULE_* 和 MY_CHECK_RULE_*。

适用场景:适合在 Git 仓库中批量执行代码检查、修复常见问题、生成单元测试代码等任务,尤其适合希望减少手动复制粘贴、提高批量处理效率的开发者。

限制:LLM 幻觉问题不可避免,为防止 AI 错误覆盖已有更改,batchai 设计为仅在干净的 Git 仓库中工作;如果有未暂存文件,batchai 将拒绝执行。这样可以通过 git diff 确认 batchai 所做的更改,如有错误可直接还原。此外,演示站因 OpenAI 成本较高,使用开源模型 qwen2.5-coder:7b-instruct-fp16 运行在自有 Ollama 实例上,效果不如 gpt-4o-mini,且因资源限制任务将排队执行。其他收费、价格、平台等具体信息暂未提供。