You need to enable JavaScript to run this app.
文档中心
AI 数据湖服务

AI 数据湖服务

复制全文
下载 pdf
API 参考:算子调用 API
批任务(Batch Task) API
复制全文
下载 pdf
批任务(Batch Task) API

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 接口提交批任务时,您可以指定本次批任务包含哪些算子处理的子任务,将子任务的任务详情通过 input.json 文件上传到 TOS,Batch Task 读取 TOS 中需要批量处理的子任务列表后,批量提交子任务,并将任务处理结果写回 TOS 指定的输出路径中。
Image

术语

  • 批任务(Batch Task):一次离线批处理作业的顶层实体,包含输入文件、输出目录、目标算子、状态、统计计数与运行参数等。
  • 子任务(Subtask):批任务拆分后的最小执行单元,通常对应输入 JSONL 的一行;每个子任务最终会关联一个底层 task_id(复用现有 submit/poll 异步任务)。
  • 结果文件(Result File):批任务完成后写入 TOS 的 results.jsonlerrors.jsonl

接口性能

  • 每个批任务的子任务并发限制:默认为10,如果您希望提高子任务并发数,可提交工单联系技术支持人员,提高子任务并发度。
  • 批任务的并发限制:默认 10

输入与输出规范

输入:input.jsonl

批任务以“文件驱动”的方式运行:您需要上传输入文件到 TOS,服务端负责拆分、编排、聚合。

细分

详细说明

格式规范

输入文件为 JSONL,每行是一个 JSON 对象(一个算子子任务)。以 PDF 算子为例:

{"custom_id":"000001","data":{"url": "https://las-ai-cn-shanghai-online.tos-cn-shanghai.volces.com/v1/pdf-sample.pdf", "parse_mode": "normal" }}
{"custom_id":"000002","data":{"url": "https://las-ai-cn-shanghai-online.tos-cn-shanghai.volces.com/v1/pdf-sample-02.pdf", "parse_mode": "normal" }}

字段说明:

  • custom_id:文件内唯一,用于将本次批任务中的每个子任务的输入行与输出行关联。
  • data:当前子任务对应的“算子调用参数体”(算子 API 的 submit 接口中 data 部分的请求参数)。其结构以具体 operator 为准。

输入文件限制

  • 单文件大小:不超过 1G
  • 总行数:不超过 100 万行

输入 TOS 路径

通过批任务的 input_tos_url 请求参数指定输入文件的 TOS 路径。

  • 您需要将子任务文件上传至与当前 LAS 服务同主账号、同地域的 TOS Bucket 后,提供输入文件的 TOS 路径,格式参考:tos://bucket_name/demo/

输出:results.jsonl / errors.jsonl

批任务完成后在指定 TOS 输出目录下写入标准化结果文件。

细分

详细说明

格式规范

results.jsonl:成功结果集合,每行是一个成功子任务的处理结果。

{"id": "batch-task-123", "custom_id": "000001", "metadata": {"task_id": "xxx", "task_status": "COMPLETED", "business_code": 0}, "data": {"markdown": "我的小狗 \\n我家有一只可爱的小狗,它的名字叫小白。", "detail": [{"page_id": 1, "page_md": "我的小狗 \\n我家有一只可爱的小狗,它的名字叫小白。",  "page_image_hw": {"h": 3508, "w": 2480}, "text_blocks":[]}]}}
{"id": "batch-task-123", "custom_id": "000002", "metadata": {"task_id": "xxx", "task_status": "COMPLETED", "business_code": 0}, "data": {"markdown": "我的小狗 \\n我家有一只可爱的小狗,它的名字叫小白。", "detail": [{"page_id": 1, "page_md": "我的小狗 \\n我家有一只可爱的小狗,它的名字叫小白。",  "page_image_hw": {"h": 3508, "w": 2480}, "text_blocks":[]}]}}

处理结果文件中包含:

  • id:当前批任务的任务id。
  • 本次批任务中,对应子任务的处理结果,包含custom_id(子任务的id标识) + data(子任务处理结果) + metadata(子任务元数据信息)。

errors.jsonl:失败结果集合,每行是一个失败任务的失败返回。

{"id": "batch-task-123", "custom_id": "000001", "metadata": {"task_id": "xxx", "task_status": "FAILED", "business_code": "Parameter.Invalid", "error_msg": "Url is invalid"}}

处理结果文件中包含:

  • id:当前批任务的任务id。
  • 失败任务的返回结果,包含: custom_id (子任务的id标识)+ metadata(含 task_statusbusiness_codeerror_msg 等)。

输出 TOS 路径

通过批任务的 output_tos_url 请求参数指定输出文件的 TOS 路径。

  • 需要提供与 LAS 服务同主账号、同地域的 TOS Bucket 路径,格式参考:tos://bucket_name/demo/
  • 实际生成结果文件时,会在指定路径下分别创建成功结果、失败结果目录,并写入结果文件:
  • results.jsonl{OutputDir}/{batch_task_id}/output/results.jsonl
  • errors.jsonl{OutputDir}/{batch_task_id}/error/errors.jsonl

准备工作

细分项

准备工作说明

获取 LAS API Key

提交批任务前,您需要先生成算子调用的API Key,并建议将API Key配置为环境变量,便于更安全地调用算子,详情请参见获取 API Key 并配置

获取 BaseURL

提交批任务前,您需要先根据您当前使用的LAS服务所在地域,了解算子调用的BaseURL,用于配置算子调用路径参数取值。
详情请参见获取 Base URL,下文中的调用示例仅作为参考,实际调用时需替换为您对应地域的路径取值。

规划输入与输出 JSON 文件的 TOS 路径

提交批任务前,您需要先将本次批任务涉及的子任务,参考对应算子的 API 参数要求,整理好子任务的输入文件,并上传至 TOS;并规划好输出结果文件的输出 TOS 路径,用于提交批任务时配置。

API 接口调用

创建批任务(submit)

使用 submit 创建任务,返回 batch_task_id

请求参数

参数

类型

必填

说明

name

String

批任务名称

description

String

描述信息

operator_id

String

算子 ID

operator_version

String

算子版本

input_tos_url

String

批量任务输入文件(TOS 地址)

output_tos_url

String

批量任务输出目录(TOS 目录/前缀)

extra_params

Object

批量任务公共参数;若 JSONL 中有相同参数,按约定由单行参数覆盖公共参数。

project_name

String

项目名,默认 default

返回参数

参数名

参数类型

参数描述

batch_task_id

String

批任务 ID

请求示例

# submit
curl --location "${BASE_URL}/api/v1/batch-task/submit" \
  --header "Content-Type: application/json" \
  --header "Authorization: Bearer ${API_KEY}" \
  --data '{
    "name": "demo_batch_task",
    "description": "batch task demo",
    "operator_id": "las_long_video_understand",
    "operator_version": "v1",
    "input_tos_url": "tos://liuliu-test/batch_task_test/input_1.jsonl",
    "output_tos_url": "tos://liuliu-test/batch_task_test/output/",
    "extra_params": {
      "model_name": "doubao-seed-2-0-lite-260215"
    },
    "project_name": "default"
  }'

返回示例

{
  "batch_task_id": "bt-1234567890"
}

查询任务进度(get)

  1. 调用 get,并传入 batch_task_id
  2. 关注返回的 statusrequest_counts(total/completed/failed/terminated)。
  3. 当任务进入终态后,结合 output_tos_url 获取结果文件。

请求参数

参数名称

参数类型

是否必须

默认值

说明

batch_task_id

String

批任务 ID

返回参数

参数名

参数类型

参数描述

batch_task_detail

BatchTaskDetail

批任务详情

BatchTaskDetail 结构

参数名

参数类型

参数描述

batch_task_id

String

批任务 ID

name

String

批任务名称

description

String

描述信息

input_tos_url

String

批量任务输入文件的 TOS 地址

output_tos_url

String

批量任务输出目录的 TOS 地址

status

String

批任务状态

request_counts

RequestCounts

批任务请求数量统计

create_time

String

创建时间

update_time

String

更新时间

stop_time

String

停止时间

end_time

String

结束时间

error_message

String

错误信息

owner_id

Integer

创建者 ID

RequestCounts 结构

参数名

参数类型

参数描述

total

Long

请求总数

completed

Long

已完成请求数

failed

Long

失败请求数

terminated

Long

已终止请求数

请求示例

# get
curl --location "${BASE_URL}/api/v1/batch-task/get" \
  --header "Content-Type: application/json" \
  --header "Authorization: Bearer ${API_KEY}" \
  --data "{\n    \"batch_task_id\": \"${BATCH_TASK_ID}\"\n  }" 

返回示例

{
  "batch_task_detail": {
    "batch_task_id": "bt-1234567890",
    "name": "demo_batch_task",
    "description": "batch task demo",
    "input_tos_url": "tos://liuliu-test/batch_task_test/input_100.jsonl",
    "output_tos_url": "tos://liuliu-test/batch_task_test/output/",
    "status": "RUNNING",
    "request_counts": {
      "total": 100,
      "completed": 80,
      "failed": 2,
      "terminated": 0
    },
    "create_time": "2026-07-13T03:10:11Z",
    "update_time": "2026-07-13T03:20:00Z",
    "stop_time": "",
    "end_time": "",
    "error_message": "",
    "owner_id": 12345678
  }
}

列表查询(list)

用于批量查看任务列表。

请求参数

参数名称

参数类型

是否必须

默认值

说明

batch_task_ids

Array

批任务 ID 过滤

batch_task_name

String

批任务名称过滤,支持模糊查询

statuses

Array

状态过滤

owner_ids

Array

创建者 ID 过滤

sort_order

String

Desc

排序顺序

sort_by

String

排序字段

max_results

Integer

10

单页记录数

next_token

String

0

下一次查询起始 ID(不包含)或页码

返回参数

参数名

参数类型

参数描述

items

Array

批任务简要信息列表

total_count

Long

总记录数

max_results

Integer

单次查询可返回的最大记录数

next_token

String

下一次查询起始 ID(不包含)或页码

BatchTaskSummary结构

参数名

参数类型

参数描述

batch_task_id

String

批任务 ID

name

String

批任务名称

description

String

描述信息

output_tos_url

String

批量任务输出目录的 TOS 地址

status

String

批任务状态

completion_window

Integer

批量任务的最大等待时间,单位小时

request_counts

RequestCounts

批任务请求数量统计

create_time

String

创建时间

stop_time

String

停止时间

end_time

String

结束时间

error_message

String

错误信息

owner_id

Integer

创建者 ID

RequestCounts 结构

参数名

参数类型

参数描述

total

Long

请求总数

completed

Long

已完成请求数

failed

Long

失败请求数

terminated

Long

已终止请求数

请求示例

# list
curl --location "${BASE_URL}/api/v1/batch-task/list" \
  --header "Content-Type: application/json" \
  --header "Authorization: Bearer ${API_KEY}" \
  --data "{\n    \"batch_task_ids\": [\"batch_001\", \"batch_002\"],\n    \"batch_task_name\": \"demo\",\n    \"statuses\": [\"QUEUED\", \"RUNNING\", \"FAILED\"],\n    \"owner_ids\": [12345678],\n    \"sort_order\": \"Desc\",\n    \"sort_by\": \"update_time\",\n    \"max_results\": 10,\n    \"next_token\": \"0\"\n  }" 

返回示例

{
  "items": [
    {
      "batch_task_id": "bt-1234567890",
      "name": "demo_batch_task",
      "description": "batch task demo",
      "output_tos_url": "tos://liuliu-test/batch_task_test/output/",
      "status": "RUNNING",
      "completion_window": 24,
      "request_counts": {
        "total": 100,
        "completed": 80,
        "failed": 2,
        "terminated": 0
      },
      "create_time": "2026-07-13T03:10:11Z",
      "stop_time": "",
      "end_time": "",
      "error_message": "",
      "owner_id": 12345678
    }
  ],
  "total_count": 1,
  "max_results": 10,
  "next_token": "0"
}

停止任务(stop)

当需要终止执行时:

  1. 调用 stop,传入 batch_task_id
  2. 任务会进入 TERMINATING,最终到 TERMINATED

说明

如果任务已生成部分结果,建议仍按 custom_id 规则消费已产出的 results.jsonl / errors.jsonl

请求参数

参数名称

参数类型

是否必须

说明

batch_task_id

String

批任务 ID

返回参数

参数名

参数类型

参数描述

batch_task_id

String

已接受停止操作的批任务 ID

请求示例

# stop
curl --location "${BASE_URL}/api/v1/batch-task/stop" \
  --header "Content-Type: application/json" \
  --header "Authorization: Bearer ${API_KEY}" \
  --data "{\n    \"batch_task_id\": \"${BATCH_TASK_ID}\"\n  }" 

返回示例

{
  "batch_task_id": "bt-1234567890"
}

更新任务元信息(update)

update 用于更新批任务的元信息(如 name、description)。

请求参数

参数名称

参数类型

是否必须

说明

batch_task_id

String

批任务 ID

name

String

批任务名称

description

String

描述信息

返回参数

参数名

参数类型

参数描述

batch_task_id

String

批任务 ID

请求示例

# update
curl --location "${BASE_URL}/api/v1/batch-task/update" \
  --header "Content-Type: application/json" \
  --header "Authorization: Bearer ${API_KEY}" \
  --data "{\n    \"batch_task_id\": \"${BATCH_TASK_ID}\",\n    \"name\": \"demo_batch_task_updated\",\n    \"description\": \"updated description\"\n  }" 

返回示例

{
  "batch_task_id": "bt-1234567890"
}

删除任务(delete)

delete 用于删除批任务(控制面操作),通常用于清理不再需要的任务记录。

请求参数

参数名称

参数类型

是否必须

说明

batch_task_id

String

批任务 ID

返回参数

参数名

参数类型

参数描述

batch_task_id

String

已接受删除操作的批任务 ID

请求示例

# delete
curl --location "${BASE_URL}/api/v1/batch-task/delete" \
  --header "Content-Type: application/json" \
  --header "Authorization: Bearer ${API_KEY}" \
  --data "{\n    \"batch_task_id\": \"${BATCH_TASK_ID}\"\n  }" 

返回示例

{
  "batch_task_id": "bt-1234567890"
}

参考

批任务状态参考

status

含义

QUEUED

批任务当前在排队中

INITIALIZING

初始化中(拆分 JSONL 等准备阶段)

RUNNING

运行中(提交/回调/轮询/聚合)

FAILED

批任务失败(系统级失败或达到停止条件),例如 TOS 路径不存在等

TERMINATING

终止中

TERMINATED

已终止

DELETING

删除中

DELETED

已删除

常见问题与异常处理

现象

可能原因

处理建议

任务失败(status=FAILED)

输入文件不可读、TOS 权限错误、持续超时等系统级失败

检查 input_tos_url 是否可读、output_tos_url 是否可写;必要时重新创建任务。

部分子任务失败(errors.jsonl 有记录)

单行参数非法、资源不可达、业务侧失败等

errors.jsonlcustom_id 定位失败行

最近更新时间:2026.09.02 21:50:12
这个页面对您有帮助吗?
有用
有用
无用
无用