batchlane:统一接口调度多平台 LLM 异步批量任务
开源工具 batchlane 通过统一接口支持 8 家 LLM 提供商的异步批量推理,自动分块、轮询并合并结果。
近日,一款名为 batchlane 的开源工具在 Hacker News 上发布(Show HN),旨在为开发者提供一个统一接口,用以提交跨多家 LLM 厂商的异步批量推理任务。该工具覆盖 Anthropic、Google AI Studio、OpenAI、Groq、Mistral、Fireworks、Together 与 DeepInfra 共 8 家提供商的批量通道(batch lane),自动处理分块、轮询和结果合并等流程,目标是把开发者从各家 API 差异中解放出来。
核心能力
batchlane 把「一次 prompt 对多条输入」这种最常见的批量场景抽象成一组简单调用:开发者只需指定模型和 prompts,库内部会按各提供商的速率与体积上限自动拆分作业、提交多个批次、轮询状态、最后按输入顺序把结果拼回去。失败的行会被标记为 None,而每条输入的所有原始字段都会被原样复制到输出行中,便于后续对齐分析。
工具同时提供命令行入口 batchlane run rows.jsonl --model ... -o answers.jsonl,适合「文件到文件」的离线批处理场景;--dry-run 则可在不发起真实请求的情况下预览分块计划与预估成本。
支持的提供商与限制
batchlane 通过 8 个适配器(adapter)分别对接不同提供商的批量 API,包括 Anthropic Batch、Google Gemini 批量、OpenAI Batch(含原生 Responses 端点)等。需要指出的是,作者明确说明目前只有 Anthropic 一家完成了端到端的真实 API 验证,其余 7 家仅通过 mock 合约测试。这意味着工具在多数通道上尚未经过生产级验证,开发者使用前需自行评估。
各通道的批量折扣、可用模型与回传时延因厂商而异。Gemini 在请求体小于 20MB 时走 inline 通道,超过则切换到带密钥的 JSONL 文件输入,并受 2GB 文件上限约束。Together 由于不同模型折扣不一致,工具无法给出成本估算。
可恢复与成本可见
工具引入了 checkpoint 机制:调用 bl.run(rows, checkpoint="job.jsonl") 时,会在每次提交前先记录意图,并立即保存返回的句柄(handle)。重复执行相同调用可以重新挂载已提交的作业,但若请求内容、模型参数、顺序或作业设置发生变化则会拒绝,以避免混淆。值得注意的是,checkpoint 仅保存句柄而不保存答案,因此仍需本地及时落盘结果,因为各提供商对结果的保留时间有限。
成本方面,plan(rows).cost 会基于 LiteLLM 价格表给出预估,actual_cost() 则按提供商返回的实际用量计价,差异通常源于服务等级不同导致的折扣不同。
使用门槛与注意事项
batchlane 的设计强调「诚实暴露局限」:当某一通道暂不支持某类请求时,工具会直接报错,而不是模拟一个不可靠的回退;bl.plan(rows).caveats 会在执行前列出与所选通道相关的注意事项,例如输入体积上限、token 估算限制、文件上传通道切换条件等。当前版本将请求与下载结果缓存在内存中,超大规模作业需自行控制规模以适配机器内存。
整体而言,batchlane 是一个面向多提供商 LLM 批量场景的轻量编排层,适合需要在不同模型/价格档位之间切换、又希望保留统一代码路径的工程团队。但鉴于多数适配器仍处于 mock 测试阶段,建议读者在生产使用前先对目标通道做小规模验证。
