本文介绍如何通过 REST API 新建审核任务。新建审核任务需要指定规则库和抽取任务ID列表。系统会自动将规则库中的规则与抽取任务进行匹配,对匹配的规则执行审核。
审核任务是将规则库应用到抽取任务上的一次审核执行。新建审核任务后,系统会自动执行审核并生成审核结果。
新建审核任务
新建审核任务,对指定的抽取任务进行审核:
# 使用 extract_task_ids
curl -X POST \
-H "Content-Type: application/json" \
-H "x-ti-app-id: <your-app-id>" \
-H "x-ti-secret-code: <your-secret-code>" \
-d '{
"workspace_id": "<your-workspace-id>",
"name": "审核任务1",
"repo_id": "31415926",
"extract_task_ids": ["1234567890", "1234567891"]
}' \
"https://docflow.textin.com/api/app-api/sip/platform/v2/review/task/submit"
# 使用 batch_number
# curl -X POST \
# -H "Content-Type: application/json" \
# -H "x-ti-app-id: <your-app-id>" \
# -H "x-ti-secret-code: <your-secret-code>" \
# -d '{
# "workspace_id": "<your-workspace-id>",
# "name": "审核任务1",
# "repo_id": "31415926",
# "batch_number": "202412190001"
# }' \
# "https://docflow.textin.com/api/app-api/sip/platform/v2/review/task/submit"
请求参数:
workspace_id (必填): 工作空间ID
name (必填): 任务名称,最大长度100
repo_id (必填): 审核规则库ID
extract_task_ids (可选): 抽取任务ID数组,需要审核的抽取任务ID列表
batch_number (可选): 批次号,系统会取该批次下的所有任务,与 extract_task_ids 做并集(去重)
响应示例:
{
"code": 200,
"msg": "success",
"result": {
"task_id": "31415926"
}
}
参数说明
规则库ID (repo_id)
规则库ID是您创建的审核规则库的标识。系统会使用该规则库中的所有规则对抽取任务进行审核。
获取规则库ID:
- 通过创建规则库接口创建规则库时返回
- 通过界面查看规则库列表获取
抽取任务ID是已完成文档抽取的任务标识。只有已完成抽取的任务才能作为审核对象。
重要说明:
- 如果传入的是父任务ID(如文件拆分或多图切分产生的父任务),系统会自动查出该父任务的所有子任务作为输入
- 如果同时提供了
batch_number 和 extract_task_ids,系统会取批次下的所有任务与 extract_task_ids 做并集(自动去重)
获取抽取任务ID:
- 通过文件上传接口返回的
task_id
- 通过文件查询接口 (
/api/app-api/sip/platform/v2/file/fetch) 获取文件信息,其中的 task_id 即为抽取任务ID
批次号 (batch_number)
批次号用于批量指定需要审核的任务。当传入 batch_number 时,系统会获取该批次下的所有任务用于审核。
使用场景:
- 批量审核同一批次上传的所有文件
- 与
extract_task_ids 配合使用,实现更灵活的任务选择
示例:获取抽取任务ID
import requests
ti_app_id = "<your-app-id>"
ti_secret_code = "<your-secret-code>"
workspace_id = "<your-workspace-id>"
batch_number = "<your-batch-number>"
host = "https://docflow.textin.com"
url = "/api/app-api/sip/platform/v2/file/fetch"
resp = requests.get(
url=f"{host}{url}",
params={
"workspace_id": workspace_id,
"batch_number": batch_number
},
headers={
"x-ti-app-id": ti_app_id,
"x-ti-secret-code": ti_secret_code,
},
timeout=60,
)
result = resp.json()
if result.get("code") == 200:
files = result.get("result", {}).get("files", [])
extract_task_ids = []
for file in files:
# 确保文件已完成抽取(recognition_status == 1)
if file.get("recognition_status") == 1:
task_id = file.get("task_id")
if task_id:
extract_task_ids.append(task_id)
print(f"可用的抽取任务ID: {extract_task_ids}")
审核任务执行流程
新建审核任务后,系统会按以下流程执行审核:
-
规则匹配:系统根据规则库中的规则,与抽取任务的分类进行匹配
- 检查规则的
category_ids 是否包含抽取任务的分类
- 检查抽取任务是否包含规则关联的字段
-
字段关联:对于匹配的规则,系统从抽取结果中获取规则关联的字段值
-
AI审核:基于规则提示词和字段值,AI进行审核判断
-
结果生成:生成审核结果,包括审核状态、审核依据、位置回溯等信息
完整示例
完整的审核任务新建流程:
import requests
import time
ti_app_id = "<your-app-id>"
ti_secret_code = "<your-secret-code>"
workspace_id = "<your-workspace-id>"
host = "https://docflow.textin.com"
# 1. 获取抽取任务ID
fetch_url = "/api/app-api/sip/platform/v2/file/fetch"
fetch_resp = requests.get(
url=f"{host}{fetch_url}",
params={
"workspace_id": workspace_id,
"batch_number": "<your-batch-number>"
},
headers={
"x-ti-app-id": ti_app_id,
"x-ti-secret-code": ti_secret_code,
},
timeout=60,
)
fetch_result = fetch_resp.json()
if fetch_result.get("code") != 200:
print(f"获取文件列表失败: {fetch_result.get('msg')}")
exit(1)
files = fetch_result.get("result", {}).get("files", [])
extract_task_ids = []
for file in files:
if file.get("recognition_status") == 1: # 确保已完成抽取
task_id = file.get("task_id")
if task_id:
extract_task_ids.append(task_id)
if not extract_task_ids:
print("没有可用的抽取任务")
exit(1)
print(f"找到 {len(extract_task_ids)} 个抽取任务: {extract_task_ids}")
# 2. 新建审核任务
submit_url = "/api/app-api/sip/platform/v2/review/task/submit"
submit_payload = {
"workspace_id": workspace_id,
"name": f"审核任务_{int(time.time())}",
"repo_id": "31415926", # 规则库ID
"extract_task_ids": extract_task_ids
}
submit_resp = requests.post(
url=f"{host}{submit_url}",
json=submit_payload,
headers={
"x-ti-app-id": ti_app_id,
"x-ti-secret-code": ti_secret_code,
},
timeout=60,
)
submit_result = submit_resp.json()
if submit_result.get("code") == 200:
task_id = submit_result.get("result", {}).get("task_id")
print(f"审核任务新建成功,任务ID: {task_id}")
print("请使用任务ID查询审核结果")
else:
print(f"新建审核任务失败: {submit_result.get('msg')}")
删除审核任务
如果需要删除审核任务:
curl -X POST \
-H "Content-Type: application/json" \
-H "x-ti-app-id: <your-app-id>" \
-H "x-ti-secret-code: <your-secret-code>" \
-d '{
"workspace_id": "<your-workspace-id>",
"task_ids": ["31415926", "31415927"]
}' \
"https://docflow.textin.com/api/app-api/sip/platform/v2/review/task/delete"
请求参数:
workspace_id (必填): 工作空间ID
task_ids (必填): 审核任务ID数组
注意事项
- 抽取任务状态:只有已完成抽取的任务(
recognition_status == 1)才能作为审核对象
- 父任务处理:如果传入的是父任务ID(如文件拆分或多图切分产生的父任务),系统会自动查出该父任务的所有子任务作为输入进行审核
- 批次号与任务ID组合:如果同时提供了
batch_number 和 extract_task_ids,系统会取批次下的所有任务与 extract_task_ids 做并集(自动去重)
- 规则匹配:系统会根据规则的
category_ids 和抽取任务的分类进行匹配,只有匹配的规则才会执行审核
- 字段关联:确保规则关联的字段在抽取结果中存在,否则可能影响审核的准确性
- 异步执行:审核任务是异步执行的,创建任务后需要通过获取审核结果接口查询审核状态和结果
相关页面