文档

批量推理(Batch API)

批量推理(Batch API)是无需实时响应需求的离线大批量数据处理方案,接口兼容 OpenAI,适合执行模型评测、数据标注、批量回归等场景,支持通过 SDK 或 控制台创建异步任务处理请求。批量推理(Batch API)的优势如下:

  • 成本相对更低:批量推理(Batch API) 价格为实时 API 的 50%

批量推理支持的模型为 mimo-v2.6-promimo-v2.6-flash,使用模型调用批量推理服务时,模型名需小写

  • 闲时智能调度:任务提交后由系统自动调度到闲时执行,充分利用低峰算力

  • 使用方式灵活:提供接口、控制台2种使用方式,可通过接口、开放平台控制台完成任务全流程管理

  • OpenAI 兼容:接口协议与 OpenAI 一致,从 OpenAI Batch 迁移改造简单

适用场景

场景 说明
数据标注 大批量文本、图片打标签
模型评测 Benchmark 测试、回归验证
内容审核 离线批量分类、过滤
批量生成 摘要、翻译、结构化提取
学术研究 大规模数据实验、论文数据处理

批量推理API价格

Xiaomi MiMo API 的按量计费使用开放平台普通 API Key,并按实际 Token 用量消耗账户余额,与 Token Plan 套餐额度不互通。

计费说明

  • 批量推理(Batch API) 价格 = 实时 API 价格 × 50%

  • 计费单位:国内:元 / 百万 tokens ;海外:美元 / 百万 tokens

  • 缓存命中:当请求的前缀内容命中 Prompt Cache 时,按命中缓存价格计费

  • 批量推理目前支持mimo-v2.6-promimo-v2.6-flash模型,下列出 2 款模型批量推理在国内、海外的定价

模型国内定价

推理类型 实时推理API 批量推理API
MiMo-V2.6 系列 输入(命中缓存) 输入(未命中缓存) 输出 输入(命中缓存) 输入(未命中缓存) 输出
mimo-v2.6-pro ¥0.025 ¥3.00 ¥6.00 ¥0.0125 ¥1.50 ¥3.00
mimo-v2.6-flash ¥0.02 ¥1.00 ¥2.00 ¥0.01 ¥0.50 ¥1.00

模型海外定价

推理类型 实时推理API 批量推理API
MiMo-V2.6 系列 输入(命中缓存) 输入(未命中缓存) 输出 输入(命中缓存) 输入(未命中缓存) 输出
mimo-v2.6-pro $0.0036 $0.435 $0.87 $0.0018 $0.2175 $0.435
mimo-v2.6-flash $0.0028 $0.14 $0.28 $0.0014 $0.07 $0.14

快速上手批量推理

前置准备

使用 批量推理( Batch API ) 前,需完成以下步骤:

步骤 说明
1. 注册账号 注册 Xiaomi MiMo 开放平台账号
2. 实名认证 完成实名认证
3. 账户充值 充值账户余额( Batch API 需从余额扣费)
4. 获取 API Key 创建可用的 API Key
- 接口创建的 Batch 任务:使用你创建的API Key
- 页面控制台创建的 Batch 任务:默认挂靠到平台默认的API Key,无需使用自己创建的API Key,
5.获取Base URL 获取Base URL,前往批量推理页面获取

步骤一:准备文件

请参考文件格式要求准备文件格式为 JSONL (JSON Lines,一行一个 JSON 对象)的数据文件,其中每行包含对 API 的单个请求的详细信息。

文件示例

下面分别是包含 2 个请求的输入文件的示例(.jsonl文件),分别对应批量推理支持的 3 种url,需注意,通过页面控制台使用批量推理,目前仅支持 OpenAI | completions 文件格式上传,使用接口使用批量推理则更加灵活,支持 3 种文件格式

Base URL:前往批量推理页面获取

OpenAI | completions, 下载示例文件

{"custom_id": "request-1", "method": "POST", "url": "/v1/chat/completions", "body": {"model": "mimo-v2.6-flash", "messages": [{"role": "user", "content": "Hello"}]}}
{"custom_id": "request-2", "method": "POST", "url": "/v1/chat/completions", "body": {"model": "mimo-v2.6-pro", "messages": [{"role": "user", "content": "World"}]}}

OpenAI | responses, 下载示例文件

{"custom_id": "request-1", "method": "POST", "url": "/v1/responses", "body": {"model": "mimo-v2.6-pro", "input": "Hello"}}
{"custom_id": "request-2", "method": "POST", "url": "/v1/responses", "body": {"model": "mimo-v2.6-flash", "input": "please introduce yourself"}}

Anthropic | messages, 下载示例文件

{"custom_id": "request-1", "method": "POST", "url": "/anthropic/v1/messages", "body": {"model": "mimo-v2.6-pro", "messages": [{"role": "user", "content": [{"type": "text", "text": "Hello"}]}]}}
{"custom_id": "request-2", "method": "POST", "url": "/anthropic/v1/messages", "body": {"model": "mimo-v2.6-flash", "messages": [{"role": "user", "content": [{"type": "text", "text": "please introduce yourself"}]}]}}

文件规范要求

  • 文件基础要求

默认最大文件大小 128 MB;单个文件只能包含一个批量推理接入点的请求。

  • 字段规则

    • 每个请求都必须包含 custom_id 字段,类型为字符串且在文件内唯一,用于关联请求与对应结果。

    • 每条请求独立发送、独立收到结果。若多个请求提示词相同,需在请求中都加上相同的提示词。

    • 每个请求 body 字段参数需与底层模型调用 API 的 request body 一致,为合法 JSON Object。

步骤二:创建批量推理任务

  1. 批量推理页面,单击创建批量推理任务

  2. 在创建任务页面,上传 JSONL 文件,填写任务描述,设置最长等待时间(1–14 天)。

通过页面控制台使用批量推理,目前仅支持 OpenAI | completions 文件格式上传,使用接口使用批量推理则更加灵活,支持 3 种文件格式。

  • OpenAI | completions

  • OpenAI | responses

  • Anthropic | messages

  1. 填写完成后,单击创建

步骤三:管理任务

  1. 查看

    • 在任务列表页,查看任务的进度(已处理请求数/总请求数)和状态。或进入任务详情页,查看更多信息。

    • 按任务描述或ID搜索,快速定位目标任务。

  2. 管理

    • 取消:“执行中”的任务可在操作列取消。

    • 排查错误:“失败”的任务可下载错误文件查看详情。任务列表页-操作、任务详情页均可进行文件下载。

步骤四:下载结果

系统只保留您的数据 30 天。请及时下载和备份您的数据,过期后文件将自动删除,无法恢复。

任务完成后,在任务列表页-操作、任务详情页均可进行文件下载:

  • 成功文件:记录所有成功请求及其 response 结果。

  • 错误文件(如有) :记录所有失败请求及其 error 详情。

两个文件均包含 custom_id 字段,用于与原始输入数据匹配,关联结果或定位错误。

步骤五:查看用量统计(可选)

账单明细页面,筛选并查看批量推理的用量统计。

查看数据概览选择时间,将推理类型选为批量推理,选择API Key,查看批量推理的模型调用概览。

  • 接口创建的任务:使用你创建的API Key,可选择该 Key 查看用量

  • 页面控制台创建的任务:默认挂靠到平台默认的API Key,无需使用自己创建的API Key,可选择【其他】查看用量

API参考

步骤一:上传任务文件至文件服务

可以通过 Curl 上传任务文件至 文件服务的 bucket 中,后续网关平台会读取文件里的请求信息进行批量推理。

请求示例

curl https://batch-api-${region}.xiaomimimo.com/v1/files \
-H "Authorization: Bearer $ARK_API_KEY" \
-F 'purpose=batch' \ 
-F 'file=@/Users/doc/demo.jsonl' \     #文件路径

请求参数

  • purpose —— 上传文件目录分类

    • batch(批量推理文件)
  • file=@ —— 需要上传文件的本地路径

目前文件存储默认文件过期时间为30天

请求返回结果示例

{
    "id": "file-8a761b15a195",
    "object": "file",
    "purpose": "batch",
    "filename": "input.jsonl",
    "bytes": 327,
    "status": "active",
    "error": null,
    "metadata": null,
    "mime_type": "application/jsonl",
    "created_at": 1780034477,
    "expire_at": 1780038877,
    "preprocess_configs": null
}

字段 描述
id 文件唯一标识符,格式为 file- + UUID 前缀
object 对象类型,固定值 "file",标识这是一个文件资源
purpose 文件分类。"batch" 表示用于批量处理(batch processing)
filename 原始文件名
bytes 文件大小,单位为字节
status 文件状态。"active" 表示文件可用;其他可能值有 "pending"(处理中)、"error"(失败)等
error 错误信息,无错误时为 null;出错时包含具体错误描述
metadata 自定义元数据,用户可附加的键值对信息,暂未使用到
mime_type MIME 类型
created_at 创建时间,Unix 时间戳(秒)
expire_at 过期时间,Unix 时间戳。到期后文件可能被自动清理

步骤二:创建批量推理任务

支持自定义任务超时时间,范围在 1-14 天

请求示例

curl -X POST https://batch-api-${region}.xiaomimimo.com/v1/batches \
  -H "Authorization: Bearer $ARK_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "input_file_id": "$FILE_ID",
    "endpoint": "/v1/chat/completions",
    "completion_window": "24h"
  }'

返回示例

{
  "id": "batch_c089f12dde664f07aeadd8c7",
  "object": "batch",
  "endpoint": "/v1/chat/completions",
  "errors": null,
  "input_file_id": "file-0f4add6a5001",
  "completion_window": "24h",
  "status": "validating",
  "output_file_id": null,
  "error_file_id": null,
  "created_at": 1711402400,
  "in_progress_at": null,
  "expires_at": 1711488800,
  "finalizing_at": null,
  "completed_at": null,
  "failed_at": null,
  "expired_at": null,
  "cancelling_at": null,
  "cancelled_at": null,
  "request_counts": { "total": 0, "completed": 0, "failed": 0 }
}

字段 类型 说明
id string Batch Job 唯一标识,格式为 batch_ + 随机 ID
object string 对象类型,固定为 "batch"
endpoint string 本次 Batch 调用的 API 端点,如 /v1/chat/completions
errors object/null 错误信息,无错误时为 null
input_file_id string 输入文件 ID,指向上传的 .jsonl 文件
completion_window string 完成时间窗口,当前固定 "24h",超时则变为 expired
status string 当前状态,9 种取值(见上一条消息)
output_file_id string/null 输出文件 ID,完成后才有值,可下载处理结果
error_file_id string/null 错误文件 ID,存在失败请求时才有值,记录每条失败原因
created_at int 创建时间(Unix 时间戳,秒)
in_progress_at int/null 进入处理中的时间,尚未开始处理时为 null
expires_at int 过期时间,即 created_at + completion_window
finalizing_at int/null 进入收尾阶段的时间
completed_at int/null 完成时间,仅 completed 状态时有值
failed_at int/null 失败时间,仅 failed 状态时有值
expired_at int/null 过期时间,仅 expired 状态时有值
cancelling_at int/null 发起取消的时间
cancelled_at int/null 取消完成的时间,仅 cancelled 状态时有值
request_counts object 请求计数器
request_counts.total int 总请求数
request_counts.completed int 已完成请求数
request_counts.failed int 失败请求数

步骤三:查询批量推理任务状态

请求示例

curl https://batch-api-${region}.xiaomimimo.com/v1/batches/$BATCH_ID \
  -H "Authorization: Bearer $ARK_API_KEY"

批量推理任务状态与对应描述如下:

状态 状态码 描述
初始化中 validating 任务在初始化中。
运行中 in_progress 任务运行中。
完成 Completed 任务已全部完成。
失败 Failed 任务执行失败,原因可能是超时等原因。
取消中 cancelling 用户主动取消任务
已取消 cancelled 用户主动取消成功,任务已终止

步骤四:下载批量推理任务结果

成功文件(output_file)

每行一个结果对象,通过 custom_id 关联到输入:

{"id":"batch_req_xxx","custom_id":"request-1","response":{"status_code":200,"body":{"id":"chatcmpl-xxx","choices":[{"message":{"content":"Hello!"}}]}},"error":null}
{"id":"batch_req_yyy","custom_id":"request-2","response":{"status_code":200,"body":{"id":"chatcmpl-yyy","choices":[{"message":{"content":"World!"}}]}},"error":null}

错误文件(error_file)

仅在有失败请求时生成:

{"id":"batch_req_zzz","custom_id":"request-3","response":null,"error":{"code":"inference_failed","message":"400 Bad Request"}}

输入的 **custom_id** 会原样出现在输出结果里,用于对齐输入输出。

批量推理任务运行结束后,可以通过 curl 方式下载结果文件。其中结果文件包含 2 类文件:

下载输出文件

curl https://batch-api-${region}.xiaomimimo.com/v1/files/${结果文件id}/content \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -o output.jsonl

输出文件格式(JSONL,每行一个结果):

{"id":"f7ed2","custom_id":"request-1","response":{"status_code":200,"body":{"id":"chatcmpl-xxx","choices":[{"message":{"content":"Hello!"}}]}},"error":null}
{"id":"a3b21","custom_id":"request-2","response":{"status_code":200,"body":{"id":"chatcmpl-yyy","choices":[{"message":{"content":"World!"}}]}},"error":null}

下载错误文件

如果有失败的请求,error_file_id 不为空:

curl https://batch-api-${region}.xiaomimimo.com/v1/files/${错误文件id}/content \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -o errors.jsonl

错误文件格式:

{"id":"db7da","custom_id":"request-3","response":null,"error":{"code":"inference_failed","message":"400 Bad Request"}}

其他接口示例

取消批量推理任务

请求示例

curl -X POST https://batch-api-${region}.xiaomimimo.com/v1/batches/batch_c089f12dde664f07aeadd8c7/cancel \
  -H "Authorization: Bearer YOUR_API_KEY"

返回示例

{
  "id": "batch_c089f12dde664f07aeadd8c7",
  "object": "batch",
  "endpoint": "/v1/chat/completions",
  "errors": null,
  "input_file_id": "file-0f4add6a5001",
  "completion_window": "24h",
  "status": "cancelling",
  "output_file_id": null,
  "error_file_id": null,
  "created_at": 1711402400,
  "in_progress_at": 1711402410,
  "expires_at": 1711488800,
  "finalizing_at": null,
  "completed_at": null,
  "failed_at": null,
  "expired_at": null,
  "cancelling_at": 1711402600,
  "cancelled_at": null,
  "request_counts": { "total": 2, "completed": 1, "failed": 0 }
}

取消是异步操作,返回状态为 cancelling。再次查询时状态会变为 cancelled,此时 output_file_iderror_file_id 不为 null(已完成的部分会生成输出文件)。

OpenAI SDK 兼容

批量推理(Batch API) 兼容 OpenAI 协议,可直接使用 OpenAI Python SDK:

from openai import OpenAI

client = OpenAI(
    api_key="your-mimo-api-key",
    base_url="https://batch-api-${region}.xiaomimimo.com/v1"
)

# 上传文件
file = client.files.create(
    file=open("input.jsonl", "rb"),
    purpose="batch"
)

# 创建 Batch
batch = client.batches.create(
    input_file_id=file.id,
    endpoint="/v1/chat/completions",
    completion_window="24h"
)

# 查询状态
batch = client.batches.retrieve(batch.id)
print(f"状态: {batch.status}")
print(f"已完成: {batch.request_counts.completed}/{batch.request_counts.total}")

# 下载结果
if batch.output_file_id:
    result = client.files.content(batch.output_file_id)
    with open("output.jsonl", "wb") as f:
        f.write(result.content)

常见问题

任务提交后为什么没有立即运行?

批量推理(Batch API)采用闲时调度策略:系统会根据线上资源情况自动调度,无需您手动干预,资源紧张时,任务启动和执行可能延迟。

任务失败了如何重试?

批量推理(Batch API) 暂不支持任务内重试或续跑。如遇任务失败,您需要:

  1. 下载错误文件;

  2. 在错误文件中查看失败原因;

  3. 重新创建新任务提交。

任务状态为部分成功,这种情况怎么处理?

  1. 您的任务存在部分请求成功、部分请求失败,成功文件包含所有成功的请求结果,错误文件包含失败请求及错误原因。已成功的请求会正常计费。

  2. 您可以下载错误文件,在错误文件中查看失败原因,重新创建新任务提交。

余额不足会怎么样?

  1. 创建任务时余额为 0:您可正常浏览体验任务创建流程,任务会创建失败。

  2. 任务执行中余额不足:任务失败,已完成部分会生成成功文件,正常计费;未执行部分会生成失败文件,不收取费用。

未实名认证能用吗?

不能。使用 批量推理(Batch API) 前必须完成实名认证。未实名的用户进入批量推理页面时,会看到引导页并跳转到实名认证页面。

是否支持流式输出?

不支持。Batch 场景是异步处理,不适用流式协议。

是否支持 Token Plan 抵扣?

不支持。批量推理(Batch API) 仅按实际 Token 用量消耗账户现金余额,与 Token Plan 套餐额度不互通。

结果文件保留多久?

输入文件和结果文件默认保留 30 天,过期自动清理。请及时下载。

成功、失败、取消的任务分别怎么计费?

  • 只计成功请求,文件解析失败、任务执行中失败的请求不产生费用

  • 取消前已成功完成的请求正常计费

更新时间 2026 年 09 月 21 日

Copyright©2026 Xiaomi. All Rights Reserved | Cookie Policy | Cookie Preferences

We use cookies and similar technologies of our own to ensure the proper functioning of the website, customize content according to user preferences and analyze users' interactions on the website, as well as their browsing habits. You can find more information in our Cookie Policy. Select an option or go to Cookie Settings to manage your preferences. Learn More.