跳转到主要内容
当你需要使用大语言模型处理大规模、低实时性要求的任务时,Batch API 是理想选择。它支持通过文件批量提交任务,相比实时 API 调用可以节省 40% 的推理费用。
Batch API 支持 kimi-k2.6kimi-k2.5 模型,暂不支持 kimi-k3。这些模型的 temperaturetop_p 等参数不可修改,请勿在请求 body 中设置这些参数。

创建批处理任务

上传 JSONL 文件并创建批处理任务

列出批处理任务

获取当前组织的批处理任务列表

获取任务详情

查询指定批处理任务的状态和详细信息

取消批处理任务

取消正在进行的批处理任务

使用流程

本指南通过一个文本分类的实例,展示 Batch API 的完整使用流程:

1. 构造输入文件

JSONL 文件中每行是一个独立的 JSON 对象,代表一个推理请求:
body 中的 model 必须是 kimi-k2.6kimi-k2.5。这些模型的 temperaturetop_pnpresence_penaltyfrequency_penalty 参数均不可修改,请勿在 body 中设置这些参数。
输入文件要求:
  • 文件必须为 .jsonl 格式,大小不能为空且不超过 100MB
  • 每行必须是合法的 JSON 对象,且包含 custom_idmethodurlbody 四个字段
  • custom_id 在文件内必须唯一
  • 所有行的 model 必须相同,一个批次只允许一个模型
  • method 固定为 POSTurl 固定为 /v1/chat/completions
  • 指定的模型必须存在且用户有访问权限

2. 上传文件

通过文件上传接口上传 JSONL 文件,purpose 必须设置为 "batch"

3. 创建任务

调用创建批处理任务接口,传入 input_file_idcompletion_windowcompletion_window 建议根据数据量合理设置,较长的时间窗口可以提高任务完成率。

4. 等待完成

创建后任务进入 validating 状态,系统将异步校验输入文件。校验通过后进入 in_progress 状态开始执行。你可以通过获取任务详情接口轮询状态。

5. 处理结果

任务完成后,output_file_id 字段包含结果文件 ID,通过获取文件内容接口下载。如果有请求失败,error_file_id 包含错误文件 ID。
输出文件中每行对应一个请求的处理结果:

完整代码示例

以下是将上述步骤串联起来的完整脚本,可直接复制运行:

Batch 状态说明

任务管理

列出批处理任务

通过列出批处理任务接口查看当前组织下的所有批处理任务。

取消批处理任务

通过取消批处理任务接口取消正在进行的任务。仅 validatingin_progressfinalizing 状态的任务可以取消。取消后任务状态会先变为 cancelling,最终变为 cancelled

多模态 Batch 任务

Batch API 支持在输入文件中包含图片和视频内容。与文本任务的区别主要在于 构造输入文件 这一步,其余流程(上传、创建任务、轮询、处理结果)完全一致。
图片有两种传入方式:
  • base64 内嵌:将图片编码为 base64 直接写入 JSONL,适合小图片。注意 base64 会使体积膨胀约 33%,请关注 100MB 文件大小限制。
  • 文件引用:先通过文件接口上传图片(purpose="image"),然后在 JSONL 中通过 ms://<file_id> 引用,适合大图片或图片复用场景。
以下示例同时提供了两种构建方式,按需选择即可:
视频有两种传入方式:
  • base64 内嵌:将视频编码为 base64 直接写入 JSONL,适合小视频。注意 base64 会使体积膨胀约 33%,请关注 100MB 文件大小限制。
  • 文件引用:先通过文件接口上传视频(purpose="video"),然后在 JSONL 中通过 ms://<file_id> 引用,适合大视频或视频复用场景。
以下示例同时提供了两种构建方式,按需选择即可:

扩展建议

  • 根据实际数据量调整 completion_window,较大的数据集建议设置 3d7d
  • 轮询间隔建议 10-60 秒,避免频繁请求
  • 结果处理可以根据需求写入数据库或生成报告
  • 建议对大文件做分批处理,每个文件控制在合理大小