大语言模型异步复审(预览)
1. 接口介绍
该接口在图片识别结果基础上进行异步复审,适用于需对“复审类型结果”或特定风险类型进行二次判断的场景。平台按控制台配置自动触发 LLM 大语言模型复审,并通过回调将复审结论通知客户。
为何采用“传统模型初审 + LLM 异步复审”的架构?
- 成本优化:传统 CV 模型成本极低,适合全量处理;LLM 成本较高,仅针对疑似风险或复杂场景按需调用,大幅降低成本;
- 性能保障:传统模型响应在毫秒级,满足实时业务需求;LLM 响应较慢(秒级),采用异步回调机制可避免阻塞主业务流程,确保流畅的用户体验;
- 精准互补:传统模型擅长快速召回,LLM 擅长复杂语义理解与推理,两者结合可兼顾高吞吐与高准确率。
业务流程如下:
1.1 接入指南
- 联系客户经理开通账号
- 同客户经理沟通详细需求与审核标准。根据您的需求,客户经理将为您开通对应的应用(SID)
- 访问控制台 - 数字证书 获取用于接口鉴权的 API Key
- 查阅下方的接口参数文档,了解如何构建请求以及如何解析响应数据
- 使用 示例资源 调用接口,进行调试和测试
- 查阅 审核场景汇总结果说明,了解如何通过汇总结果判断内容是否违规,以及如何解析汇总结果
- 添加异常处理逻辑,以处理可能出现的错误和异常情况,增强代码的健壮性和稳定性
如果在接入过程中遇到任何技术问题,请联系客户经理以获取帮助。
当前接口处于预览状态,未来可能会有所调整,请以实际状态为准。
1.2 使用说明
- 复审触发源于识别结果,可叠加风险类型等条件进行筛选
- 复审仅对已识别成功的数据生效,识别失败或下载错误的数据不进入复审
- 回调模式支持 批量回调,批量参数可在控制台配置(最大批量、聚合窗口)
- 处理异步回调时,推荐基于
requestId进行幂等处理
2. 通过控制台配置复审策略
2.1 控制台配置项

图 1:控制台配置复审策略示例
- 应用(SID):指定应用 ID,仅对该应用生效
- 回调地址:用于接收大语言模型复审结果的回调地址
- 复审策略:
- 提示词版本 ID
- 是否开启思考模式
- 结果筛选条件
- 按图片汇总结果
suggestion进行聚合,仅对符合条件的图片进行复审,如suggestion==2需复审 - 按图片汇总结果
riskType进行聚合,仅对包含指定风险类型的图片进行复审 - 按图片某个任务的某些
label&review进行聚合
- 按图片汇总结果
- 批次配置:按 “最大批量大小 / 聚合时间窗口” 聚合后回调
- 接口协议版本:回调协议版本,可选 v4 或 v3.1,默认 v3.1
3. 复审结果回调请求
3.1 请求地址
控制台/配置接口中指定的 callback 地址。
3.2 请求方法
POST
3.3 请求头
Content-Type: application/json
3.4 超时时间及异常处理
回调超时时间 5 秒,在 HTTP 响应状态码非 200 时进行重试,最多重试 3 次。
建议客户在处理回调时进行异步处理,响应回调时可以返回字符串或 JSON,示例如下:
// JSON
{
"message": "ok"
}
// 字符串
success
3.5 批量回调请求参数说明 🔥🔥🔥
- v4(v3.1)
v3.1 说明
由于历史原因,在 v3.1 版本接口中,同步响应与回调请求的核心内容会先经过转义处理,最终以 json 字段(字符串类型)返回。因此,在解析该接口的业务数据时,需对 json 字段的取值额外执行一次转义还原逻辑,才能获取到原始的业务数据。除此之外,v3.1 与 v4 版本接口出入参数完全一致,相比之下 v4 版本接口更为直观。详见下方字段说明。
| 参数名称 | 类型 | 说明 |
|---|---|---|
signature | String | 同步响应或回调请求签名,由图普使用私钥签名,在需要时,您可以通过 图普公钥
进行验签以确保此响应内容来自图普(与您调用接口时使用的公私钥不同)。验签步骤:
|
json | String | 同步响应或回调请求经过 JSON 转义后的字符串,需进一步解析得到业务数据。
|
| 参数名称 | 类型 | 是否必有 | 说明 |
|---|---|---|---|
code | Int | 是 | 状态码,详见 业务状态码 |
message | String | 是 | 状态信息 |
secretId | String | 是 | 应用 ID,用于业务区分 |
requestId | String | 是 | 任务 ID(用于幂等与查询的 批次 ID) |
results | Array<ReviewResult> | 是 | 文件结果列表,每个元素为一个文件的复审结果,详见 ReviewResult 参数说明 |
ReviewResult 参数说明
| 参数名称 | 类型 | 是否必有 | 说明 |
|---|---|---|---|
requestId | String | 是 | 原始审核请求 ID(来自图片识别响应) |
name | String | 是 | 文件 url 或文件名 |
suggestion | Int | 是 | 汇总结果,文件整体的通过/拒绝情况,详见 审核场景汇总结果说明 |
riskType | Int | 是 | 汇总结果,文件整体的风险类型,详见 审核场景汇总结果说明 |
llmResult | String | 是 | 大语言模型的原始结果(未经过 JSON 序列化处理) |
customInfo | Object<String, Any> | 否 | 原始审核请求中透传的自定义信息,请求参数中的 customInfo |
3.6 批量回调请求示例
- v4(v3.1)
{
"code": 0,
"message": "success",
"secretId": "<secretId>",
"requestId": "<requestId>",
"results": [
{
"requestId": "<requestId>",
"name": "<url>",
"suggestion": 2,
"riskType": 1,
"llmResult": "<大语言模型原始结果>",
"customInfo": {
"tag": "<tag>"
}
},
{
"requestId": "<requestId>",
"name": "<url>",
"suggestion": 0,
"riskType": 0,
"llmResult": "<大语言模型原始结果>",
"customInfo": {
"tag": "<tag>"
}
}
],
"nonce": 1685000000,
"timestamp": 1685000000
}
4. 通过接口配置复审策略(可选)
为便于自动化,也可通过接口进行规则配置。
4.1 请求地址
- v4(v3.1)
| 区域 | 请求地址 |
|---|---|
| 国内 | https://api.open.tuputech.com/<version>/recognition/review/policy/<customerId> |
<customerId> 需替换为您的账户 ID,可在【控制台】-【账户管理】页面查看, 若对此有任何问题,请联系客户经理。
4.2 请求方法
POST
4.3 请求头
| 请求头名称 | 取值 | 是否必需 | 示例 | 说明 |
|---|---|---|---|---|
Content-Type | application/json | 是 | Content-Type: application/json | 请求数据类型为 JSON |
X-API-Key | <API Key> | 是 | X-API-Key: <API Key> | API Key 用于接口鉴权。请访问控制台 - 数字证书 获取 API Key |
4.4 请求参数说明 🔥
- v4(v3.1)
| 参数名称 | 类型 | 是否必填 | 说明 |
|---|---|---|---|
secretId | String | 是 | 应用 ID(SID) |
callback | String | 是 | 大语言模型复审结果回调地址 |
promptId | String | 是 | 提示词版本 ID |
enableThinking | Boolean | 否 | 是否开启思考模式 |
filters | Array<Filter> | 否 | 筛选条件,不同筛选条件之间为 OR 关系,单个筛选条件内为 AND 关系。详见 Filter 参数说明 |
version | String | 仅路径参数 | 回调协议版本,可选 v4 或 v3.1,默认 v3.1 |
batch | BatchConfig | 否 | 批次配置,包括最大批次、聚合窗口,详见 BatchConfig 参数说明 |
status | Int | 否 | 策略状态,1:生效,0: 停止,默认 1 |
Filter 参数说明
| 参数名称 | 类型 | 是否必填 | 说明 |
|---|---|---|---|
suggestions | Array<Int> | 否 | 触发的汇总类型(如 [2] 表示需复审) |
riskTypes | Array<Int> | 否 | 触发的风险类型集合 |
byTask | FilterByTask | 否 | 触发的细分任务标签,详见 FilterByTask 参数说明 |
rate | Int | 否 | 筛选比例,取值范围 [1, 100],默认 1(1%) |
FilterByTask 参数说明
| 参数名称 | 类型 | 是否必填 | 说明 |
|---|---|---|---|
<任务 ID> | Array<FilterByTaskRule> | 否 | 细分任务标签条件,各数组之间为 OR 关系。详见 FilterByTaskRule 数据结构 |
FilterByTaskRule 数据结构
| 参数名称 | 类型 | 是否必填 | 说明 |
|---|---|---|---|
label | Int | 是 | 仅筛选指定标签的结果 |
review | Boolean | 否 | 不为空时,仅筛选指定复审类型的结果 |
BatchConfig 参数说明
| 参数名称 | 类型 | 是否必填 | 说明 |
|---|---|---|---|
maxSize | Int | 否 | 最大批量大小,取值范围 [100, 1000],默认 100 |
windowSec | Int | 否 | 聚合窗口,单位秒,可选值为:60,180,300,600 |
4.5 请求示例
- v4(v3.1)
{
"secretId": "<secretId>",
"callback": "<url>",
"promptId": "<promptId>",
"enableThinking": true,
"filters": [
{
"suggestions": [2],
"riskTypes": [1, 3],
"byTask": {
"<taskId>": [
{
"label": 1,
"review": true
}
]
}
}
],
"batch": {
"maxSize": 100,
"windowSec": 60
}
}
4.6 响应参数说明 🔥🔥
- v4(v3.1)
v3.1 说明
由于历史原因,在 v3.1 版本接口中,同步响应与回调请求的核心内容会先经过转义处理,最终以 json 字段(字符串类型)返回。因此,在解析该接口的业务数据时,需对 json 字段的取值额外执行一次转义还原逻辑,才能获取到原始的业务数据。除此之外,v3.1 与 v4 版本接口出入参数完全一致,相比之下 v4 版本接口更为直观。详见下方字段说明。
| 参数名称 | 类型 | 说明 |
|---|---|---|
signature | String | 同步响应或回调请求签名,由图普使用私钥签名,在需要时,您可以通过 图普公钥
进行验签以确保此响应内容来自图普(与您调用接口时使用的公私钥不同)。验签步骤:
|
json | String | 同步响应或回调请求经过 JSON 转义后的字符串,需进一步解析得到业务数据。
|
| 参数名称 | 类型 | 说明 |
|---|---|---|
code | Int | 状态码,详见 业务状态码 |
message | String | 状态信息 |
result | ReviewPolicy | 策略提交结果,详见 ReviewPolicy 参数说明 |
nonce | Float | 随机数(建议使用 Unix 时间戳或若干位随机整数) |
timestamp | Int | 当前服务器的 Unix 时间戳 |
ReviewPolicy 参数说明
| 参数名称 | 类型 | 是否必有 | 说明 |
|---|---|---|---|
customerId | String | 是 | 账户 ID |
secretId | String | 是 | 应用 ID(SID) |
policyId | String | 是 | 复审策略 ID |
callback | String | 是 | 大语言模型复审结果回调地址 |
promptId | String | 是 | 提示词版本 ID |
enableThinking | Boolean | 否 | 是否开启思考模式 |
filters | Array<Filter> | 否 | 筛选条件,不同筛选条件之间为 OR 关系,单个筛选条件内为 AND 关系。详见 Filter 参数说明 |
version | String | 仅路径参数 | 回调协议版本,可选 v4 或 v3.1,默认 v3.1 |
batch | BatchConfig | 否 | 批次配置,包括最大批次、聚合窗口,详见 BatchConfig 参数说明 |
status | Int | 否 | 策略状态,1:生效,0: 停止,默认 1 |
4.7 响应示例
- v4(v3.1)
{
"code": 0,
"message": "success",
"result": {
"customerId": "<customerId>",
"secretId": "<secretId>",
"policyId": "<policyId>",
"callback": "<url>",
"promptId": "<promptId>",
"enableThinking": true,
"filters": [],
"batch": {
"maxSize": 100,
"windowSec": 60
},
"status": 1
},
"nonce": 1685000000,
"timestamp": 1685000000
}
5. 拉取复审策略列表(可选)
5.1 请求地址
- v4(v3.1)
| 区域 | 请求地址 |
|---|---|
| 国内 | https://api.open.tuputech.com/<version>/recognition/review/policy/list/<customerId> |
<customerId> 需替换为您的账户 ID,可在【控制台】-【账户管理】页面查看, 若对此有任何问题,请联系客户经理。
5.2 请求方法
POST
5.3 请求头
| 请求头名称 | 取值 | 是否必需 | 示例 | 说明 |
|---|---|---|---|---|
Content-Type | application/json | 是 | Content-Type: application/json | 请求数据类型为 JSON |
X-API-Key | <API Key> | 是 | X-API-Key: <API Key> | API Key 用于接口鉴权。请访问控制台 - 数字证书 获取 API Key |
5.4 请求参数说明
- v4(v3.1)
| 参数名称 | 类型 | 是否必填 | 说明 |
|---|---|---|---|
secretId | String | 否 | 应用 ID(SID),若不传查询当前账户下所有应用的策略 |
page | Int | 否 | 页码,默认 1 |
limit | Int | 否 | 每页数量,默认 20 |
5.5 响应参数说明
- v4(v3.1)
v3.1 说明
由于历史原因,在 v3.1 版本接口中,同步响应与回调请求的核心内容会先经过转义处理,最终以 json 字段(字符串类型)返回。因此,在解析该接口的业务数据时,需对 json 字段的取值额外执行一次转义还原逻辑,才能获取到原始的业务数据。除此之外,v3.1 与 v4 版本接口出入参数完全一致,相比之下 v4 版本接口更为直观。详见下方字段说明。
| 参数名称 | 类型 | 说明 |
|---|---|---|
signature | String | 同步响应或回调请求签名,由图普使用私钥签名,在需要时,您可以通过 图普公钥
进行验签以确保此响应内容来自图普(与您调用接口时使用的公私钥不同)。验签步骤:
|
json | String | 同步响应或回调请求经过 JSON 转义后的字符串,需进一步解析得到业务数据。
|
| 参数名称 | 类型 | 说明 |
|---|---|---|
code | Int | 状态码,详见 业务状态码 |
message | String | 状态信息 |
total | Int | 总记录数 |
policies | Array<ReviewPolicy> | 策略列表,结构同 ReviewPolicy 参数说明 |
nonce | Float | 随机数 |
timestamp | Int | 时间戳 |
5.6 请求示例
- v4(v3.1)
{
"secretId": "<secretId>",
"page": 1,
"limit": 20
}
5.7 响应示例
- v4(v3.1)
{
"code": 0,
"message": "success",
"total": 1,
"policies": [
{
"customerId": "<customerId>",
"secretId": "<secretId>",
"policyId": "<policyId>",
"callback": "<url>",
"promptId": "<promptId>",
"enableThinking": true,
"filters": [],
"batch": {
"maxSize": 100,
"windowSec": 60
},
"status": 1
}
],
"nonce": 1685000000,
"timestamp": 1685000000
}
6. 更新复审策略(可选)
6.1 请求地址
- v4(v3.1)
| 区域 | 请求地址 |
|---|---|
| 国内 | https://api.open.tuputech.com/<version>/recognition/review/policy/update/<customerId> |
<customerId> 需替换为您的账户 ID,可在【控制台】-【账户管理】页面查看, 若对此有任何问题,请联系客户经理。
6.2 请求方法
POST
6.3 请求头
| 请求头名称 | 取值 | 是否必需 | 示例 | 说明 |
|---|---|---|---|---|
Content-Type | application/json | 是 | Content-Type: application/json | 请求数据类型为 JSON |
X-API-Key | <API Key> | 是 | X-API-Key: <API Key> | API Key 用于接口鉴权。请访问控制台 - 数字证书 获取 API Key |
6.4 请求参数说明
| 参数名称 | 类型 | 是否必填 | 说明 |
|---|---|---|---|
policyId | String | 是 | 复审策略 ID(SID) |
secretId | String | 否 | 该参数有值时,更新应用 ID(SID) |
callback | String | 否 | 该参数有值时,更新大语言模型复审结果回调地址 |
promptId | String | 否 | 该参数有值时,更新提示词版本 ID |
enableThinking | Boolean | 否 | 该参数有值时,更新是否开启思考模式 |
filters | Array<Filter> | 否 | 该参数有值时,更新筛选条件,不同筛选条件之间为 OR 关系,单个筛选条件内为 AND 关系。详见 Filter 参数说明 |
version | String | 仅路径参数 | 该参数有值时,更新回调协议版本,可选 v4 或 v3.1,默认 v3.1 |
batch | BatchConfig | 否 | 该参数有值时,更新批次配置,包括最大批次、聚合窗口,详见 BatchConfig 参数说明 |
status | Int | 否 | 该参数有值时,更新策略状态,1:生效,0: 停止,默认 1 |
6.5 响应参数说明
同 配置复审策略响应参数。
6.6 请求示例
- v4(v3.1)
{
"policyId": "<policyId>",
"status": 0
}
6.7 响应示例
- v4(v3.1)
{
"code": 0,
"message": "success",
"result": {
"customerId": "<customerId>",
"secretId": "<secretId>",
"policyId": "<policyId>",
"callback": "<url>",
"promptId": "<promptId>",
"enableThinking": true,
"filters": [],
"batch": {
"maxSize": 100,
"windowSec": 60
},
"status": 0
},
"nonce": 1685000000,
"timestamp": 1685000000
}
7. 查询复审进度(可选)
7.1 请求地址
- v4(v3.1)
| 区域 | 请求地址 |
|---|---|
| 国内 | https://api.open.tuputech.com/<version>/recognition/review/progress/<customerId> |
<customerId> 需替换为您的账户 ID,可在【控制台】-【账户管理】页面查看, 若对此有任何问题,请联系客户经理。
7.2 请求方法
POST
7.3 请求头
| 请求头名称 | 取值 | 是否必需 | 示例 | 说明 |
|---|---|---|---|---|
Content-Type | application/json | 是 | Content-Type: application/json | 请求数据类型为 JSON |
X-API-Key | <API Key> | 是 | X-API-Key: <API Key> | API Key 用于接口鉴权。请访问控制台 - 数字证书 获取 API Key |
7.4 请求参数说明
- v4(v3.1)
| 参数名称 | 类型 | 是否必填 | 说明 |
|---|---|---|---|
policyId | String | 是 | 复审策略 ID |
7.5 响应参数说明
- v4(v3.1)
v3.1 说明
由于历史原因,在 v3.1 版本接口中,同步响应与回调请求的核心内容会先经过转义处理,最终以 json 字段(字符串类型)返回。因此,在解析该接口的业务数据时,需对 json 字段的取值额外执行一次转义还原逻辑,才能获取到原始的业务数据。除此之外,v3.1 与 v4 版本接口出入参数完全一致,相比之下 v4 版本接口更为直观。详见下方字段说明。
| 参数名称 | 类型 | 说明 |
|---|---|---|
signature | String | 同步响应或回调请求签名,由图普使用私钥签名,在需要时,您可以通过 图普公钥
进行验签以确保此响应内容来自图普(与您调用接口时使用的公私钥不同)。验签步骤:
|
json | String | 同步响应或回调请求经过 JSON 转义后的字符串,需进一步解析得到业务数据。
|
| 参数名称 | 类型 | 说明 |
|---|---|---|
code | Int | 状态码,详见 业务状态码 |
message | String | 状态信息 |
result | ReviewProgress | 状态信息,详见 ReviewProgress 参数说明 |
nonce | Float | 随机数 |
timestamp | Int | 时间戳 |
ReviewProgress 参数说明
| 参数名称 | 类型 | 说明 |
|---|---|---|
policyId | String | 复审策略 ID |
secretId | String | 应用 ID |
policyCreatedAt | Int | 策略创建时间 |
progressList | Array<ProgressInfo> | 状态信息,详见 ProgressInfo 参数说明 |
ProgressInfo 参数说明
| 参数名称 | 类型 | 说明 |
|---|---|---|
createdAt | Int | 任务创建时间 |
updatedAt | Int | 任务更新时间 |
finishedAt | Int | 任务结束时间 |
status | String | 状态信息 取值 pending init_failed running success failed |
errorMessage | String | 错误信息 |
current | Int | 当前大模型已处理的记录数 |
total | Int | 大模型请求的记数 |
fetchCount | Int | 查询到的记录数量 |
callbackResults | Array<CallbackResult> | 回调结果详见 CallbackResult 参数说明 |
CallbackResult 参数说明
| 参数名称 | 类型 | 说明 |
|---|---|---|
batchIndex | Int | 回调结果的批次序号 |
callbackResultUrl | String | 回调结果存储的地址 |
callbackAt | Int | 回调时间 |
7.6 请求示例
- v4(v3.1)
{
"policyId": "<policyId>"
}
7.7 响应示例
- v4(v3.1)
{
"code": 0,
"message": "success",
"progresses": [
{
"policyId": "<policyId>",
"current": 1685000000
}
],
"nonce": 1685000000,
"timestamp": 1685000000
}
8. 更新日志
| 日期 | 说明 |
|---|---|
| 2026-01-26 | 修改查询复审进度接口部分字段;增加参数及描述 |
| 2026-01-22 | 修改查询复审进度接口;更新查询复审进度接口部分参数及描述 |
| 2026-01-14 | 新增查询复审进度接口;调整章节顺序;更新部分参数及描述 |
| 2026-01-08 | 新增大语言模型异步复审接口文档供预览 |