LAS 为您提供多个在线算子 API,您可单个调用对应算子 API,同时,LAS 也为您提供了批量提交算子任务的批任务(Batch Task) API,通过 Batch Task API,您可通过一次批任务同时提交多个算子子任务,可减少 submit/poll API 使用次数,减少等待时 client 端资源占。本文为您介绍 Batch Task 涉及的 API 列表、参数介绍及使用示例。
背景信息
Batch Task 处理链路
Batch Task 为您提供了 submit、get、list 等接口,通过 Batch Task 的 submit 接口提交批任务时,您可以指定本次批任务包含哪些算子处理的子任务。批任务支持 JSONL 和 Lance 两种输入类型:使用 JSONL 时,Batch Task 读取 TOS 中的子任务列表,并将处理结果写回指定的 TOS 输出路径;使用 Lance 时,Batch Task 根据字段映射读取 Lance 表中的数据,并将算子处理结果写回 Lance 表的指定列。
术语
- 批任务(Batch Task):一次离线批处理作业的顶层实体,包含输入文件、输出目录、目标算子、状态、统计计数与运行参数等。
- 子任务(Subtask):批任务拆分后的最小执行单元,通常对应输入 JSONL 或 Lance 表中的一行;每个子任务最终会关联一个底层 task_id(复用现有 submit/poll 异步任务)。
- 结果文件(Result File):批任务完成后写入 TOS 的 results.jsonl 与 errors.jsonl。
- Lance 字段映射:用于建立 Lance 字段与算子参数之间的对应关系。输入字段映射将 Lance 字段转换为算子请求参数,输出字段映射将算子返回结果写入 Lance 表的指定列。
批任务优先级调度
创建批任务时,可通过 priority 设置任务在当前账号内的调度优先级。优先级从高到低依次为 HIGH、NORMAL、LOW,不传时默认为 NORMAL。
- 当账号内存在更高优先级的非终态批任务时,低优先级批任务暂停分发新的子任务;已经提交的子任务不会被终止,仍会执行至终态并正常写入结果。
- 同一优先级的批任务互不抢占,共享当前账号的并发额度。
- 更高优先级任务进入终态后,被暂停的低优先级任务自动恢复分发。
- 重跑失败子任务时沿用原批任务的优先级。批任务创建后暂不支持通过 update 接口修改优先级。
接口性能
- 每个批任务的子任务并发限制:默认为10,如果您希望提高子任务并发数,可提交工单联系技术支持人员,提高子任务并发度。
输入与输出规范
输入:input.jsonl
批任务以“文件驱动”的方式运行:您需要上传输入文件到 TOS,服务端负责拆分、编排、聚合。
输出:results.jsonl / errors.jsonl
批任务完成后在指定 TOS 输出目录下写入标准化结果文件。
输入与输出:Lance
使用 Lance 数据集作为批任务输入时,将 input_type 设置为 LANCE,并通过 lance_params 配置唯一键、输入字段映射和输出字段映射。Lance 数据集需要存储在当前账号可访问的 TOS 路径中。
Lance 参数校验
提交 Lance 批任务时,系统会预检 Lance 数据集是否可访问、唯一键列和映射字段是否存在,以及输出字段是否可写。lance_params 缺少必填字段、字段映射格式不正确或引用的字段不存在时,请求校验不通过。读取数据时,如果 lance_key_field 对应列包含空值或重复值,批任务无法继续初始化。
- 唯一键:lance_key_field 指定的列必须存在,且列值唯一、非空。系统将该列的值作为子任务的 custom_id,用于结果写回、幂等去重和断点续写。
- 输入字段映射:input_field_mappings 将 Lance 字段映射为算子 Submit 接口 data 中的请求参数。lance_field 和 operator_field 均支持使用 . 访问嵌套字段,使用 [num] 访问数组中的指定元素。
- 输出字段映射:output_field_mappings 将算子返回结果写入 Lance 表的指定列。输出列不存在时由系统创建;输出列已存在时,系统按照唯一键更新对应行。
- 失败信息写回:配置 lance_error_field 后,失败子任务的错误信息会写入该列;该列不存在时由系统创建。
- 结果文件:Lance 模式仍会在 output_tos_url 指定的路径中生成 results.jsonl 和 errors.jsonl,用于结果审计和异常排查。
字段映射示例:
数组子字段映射
字段路径中的数组下标从 0 开始。您可以将 . 与 [num] 组合使用,精确读取 Lance 数组字段、构造算子请求中的数组子字段,或提取算子返回结果中的数组元素。[num] 表示固定位置的单个元素,不会自动遍历或展开整个数组。
以下示例同时演示 Lance 数组元素读取和算子参数数组子字段构造。实际使用时,operator_field 必须符合目标算子 Submit API 的参数结构。
准备工作
API 接口调用
创建批任务(submit)
使用 submit 创建任务,返回 batch_task_id。
请求参数
name string 必选 示例值: demo_batch_task
批任务名称。
description string Optional 示例值: batch task demo
批任务描述信息。
priority string Optional 示例值: HIGH
批任务在当前账号内的调度优先级,可选 HIGH、NORMAL、LOW,默认 NORMAL。当存在更高优先级的非终态批任务时,当前任务暂停分发新的子任务。
operator_id string 必选 示例值: las_long_video_understand
算子 ID。
operator_version string 必选 示例值: v1
算子版本。
input_type string Optional 示例值: JSONL
批任务输入类型,支持 JSONL、LANCE,默认值为 JSONL。
input_tos_url string 必选 示例值: tos://example-bucket/dataset/input.jsonl
批量任务输入数据的 TOS 地址。使用 JSONL 时填写输入文件地址;使用 Lance 时填写 Lance 数据集地址。
output_tos_url string 必选 示例值: tos://example-bucket/batch-task/output/
批量任务输出目录的 TOS 地址。
extra_params object Optional 示例值: {"model_name":"doubao-seed-2-0-lite-260215"}
批量任务公共参数。使用 JSONL 时,单行 data 中的同名参数优先;使用 Lance 时,字段映射生成的同名参数优先。
lance_params lance_params Optional
Lance 数据集的读取、字段映射和结果写回配置。input_type 为 LANCE 时必填。
lance_key_field string 必选 示例值: doc_id
Lance 表中用于定位行的唯一键列。列值必须唯一且非空,系统将其值作为子任务的 custom_id。
lance_write_batch_size integer Optional 示例值: 1000
写回 Lance 的分批大小,单位为行,默认值为 1000。批次越大,版本提交次数越少,但单次写入耗时越长。
input_field_mappings list of field_mapping 必选 示例值: [{"lance_field":"tos_url","operator_field":"url"}]
输入字段映射列表。
lance_field string 必选 示例值: parse_config.mode
Lance 字段路径,支持使用 . 访问嵌套字段,使用 [num] 访问数组中的指定元素。
operator_field string 必选 示例值: parse_mode
算子 Submit 接口 data 中的请求参数路径,支持使用 . 访问嵌套字段,使用 [num] 访问数组中的指定元素。
output_field_mappings list of field_mapping 必选 示例值: [{"lance_field":"parse_result","operator_field":"data.detail"}]
输出字段映射列表。
lance_field string 必选 示例值: parse_result
写回 Lance 表的列名。该列不存在时由系统创建,已存在时按照唯一键更新对应行。
operator_field string 必选 示例值: data.detail
算子返回字段路径,支持使用 . 访问嵌套字段,使用 [num] 访问数组中的指定元素;使用 * 表示完整算子返回结果。
lance_error_field string Optional 示例值: parse_error
用于写回失败子任务错误信息的 Lance 列名。该列不存在时由系统创建。
project_name string Optional 示例值: default
项目名,默认 default。
返回参数
请求示例
JSONL 输入示例
Lance 输入示例
返回示例
查询任务进度(get)
- 调用 get,并传入 batch_task_id。
- 关注返回的 status 与 request_counts(total/completed/failed/terminated)。
- 当任务进入终态后,结合 output_tos_url 获取结果文件。
请求参数
返回参数
batch_task_detail BatchTaskDetail 必选
批任务详情。
batch_task_id string 必选 示例值: bt-1234567890
批任务 ID。
name string 必选 示例值: demo_batch_task
批任务名称。
description string 必选 示例值: batch task demo
描述信息。
input_tos_url string 必选 示例值: tos://example-bucket/batch-task/input.jsonl
批量任务输入数据的 TOS 地址。
output_tos_url string 必选 示例值: tos://example-bucket/batch-task/output/
批量任务输出目录的 TOS 地址。
status string 必选 示例值: RUNNING
批任务状态,取值说明参见批任务状态参考。
priority string 必选 示例值: HIGH
批任务的调度优先级,可选 HIGH、NORMAL、LOW。
preemptionState string 必选 示例值: NORMAL
批任务的抢占状态。NORMAL 表示正常分发子任务;PREEMPTED 表示当前被同账号内更高优先级的批任务抢占,暂不分发新的子任务。已提交的子任务仍继续执行。
request_counts RequestCounts 必选
批任务请求数量统计。
total integer 必选 示例值: 100
请求总数。
completed integer 必选 示例值: 80
已完成请求数。
failed integer 必选 示例值: 2
失败请求数。
terminated integer 必选 示例值: 0
已终止请求数。
create_time string 必选 示例值: 2026-07-13T03:10:11Z
创建时间。
update_time string 必选 示例值: 2026-07-13T03:20:00Z
更新时间。
stop_time string 必选
停止时间;任务未停止时为空字符串。
end_time string 必选
结束时间;任务未结束时为空字符串。
error_message string 必选
错误信息;没有错误时为空字符串。
owner_id integer 必选 示例值: 12345678
创建者 ID。
请求示例
返回示例
列表查询(list)
用于批量查看任务列表。
请求参数
返回参数
items list of BatchTaskSummary 必选
批任务简要信息列表。
batch_task_id string 必选 示例值: bt-1234567890
批任务 ID。
name string 必选 示例值: demo_batch_task
批任务名称。
description string 必选 示例值: batch task demo
描述信息。
output_tos_url string 必选 示例值: tos://example-bucket/batch-task/output/
批量任务输出目录的 TOS 地址。
status string 必选 示例值: RUNNING
批任务状态,取值说明参见批任务状态参考。
priority string 必选 示例值: NORMAL
批任务的调度优先级,可选 HIGH、NORMAL、LOW。
preemptionState string 必选 示例值: PREEMPTED
批任务的抢占状态。NORMAL 表示正常分发子任务;PREEMPTED 表示当前被同账号内更高优先级的批任务抢占,暂不分发新的子任务。
completion_window integer 必选 示例值: 24
批量任务的最大等待时间,单位小时。
request_counts RequestCounts 必选
批任务请求数量统计。
total integer 必选 示例值: 100
请求总数。
completed integer 必选 示例值: 80
已完成请求数。
failed integer 必选 示例值: 2
失败请求数。
terminated integer 必选 示例值: 0
已终止请求数。
create_time string 必选 示例值: 2026-07-13T03:10:11Z
创建时间。
stop_time string 必选
停止时间;任务未停止时为空字符串。
end_time string 必选
结束时间;任务未结束时为空字符串。
error_message string 必选
错误信息;没有错误时为空字符串。
owner_id integer 必选 示例值: 12345678
创建者 ID。
total_count integer 必选 示例值: 1
总记录数。
max_results integer 必选 示例值: 10
单次查询可返回的最大记录数。
next_token string 必选 示例值: 0
下一次查询起始 ID(不包含)或页码。
请求示例
返回示例
停止任务(stop)
当需要终止执行时:
- 调用 stop,传入 batch_task_id。
- 任务会进入 TERMINATING,最终到 TERMINATED。
说明
如果任务已生成部分结果,建议仍按 custom_id 规则消费已产出的 results.jsonl / errors.jsonl。
请求参数
返回参数
请求示例
返回示例
重跑失败子任务(resume-failed)
当批任务中存在执行失败的子任务时,可调用 resume-failed 接口重新执行失败子任务。已成功的子任务不会重复执行,失败子任务继续使用原 custom_id 与输入数据关联。对于 Lance 批任务,重跑结果按照 lance_key_field 指定的唯一键幂等写回对应行。
请求参数
返回参数
请求示例
返回示例
更新任务元信息(update)
update 用于更新批任务的元信息(如 name、description)。批任务创建后暂不支持修改 priority;重跑失败子任务时沿用原批任务的优先级。
请求参数
返回参数
请求示例
返回示例
删除任务(delete)
delete 用于删除批任务(控制面操作),通常用于清理不再需要的任务记录。
请求参数
返回参数
请求示例
返回示例
参考
批任务状态参考
常见问题与异常处理