异步图片识别
异步图片识别服务支持批量提交图片任务进行识别,通过查询和回调的方式异步获取结果,适用于需要异步处理数据的场景。
注意:
当您通过回调地址接收回调结果时,需要在 5 秒内返回 HTTP 状态码 200 的响应,回调最多重试 2 次,建议您在回调接口中考虑幂等操作。
识别结果缓存 2 小时,在此期间您可以通过图片的
requestId
查询结果。目前异步图片识别支持通过图片链接或 base64 提交。
1. 通过图片链接进行异步识别
1.1 请求地址
区域 | 请求地址 |
---|---|
国内 | http://api.open.tuputech.com/v3/recognition/image/async/<SecretId> |
SecretId
需替换为您的应用 ID(SID)。
1.2 请求方法
POST
1.3 请求头
Content-Type: application/json
1.4 并发及文件大小说明
默认每秒请求数不超过 50 次,单次请求图片数量不超过 10 张,图片大小不超过 10MB。请联系我们调整并发及文件限制。
1.5 请求参数
参数名称 | 类型 | 是否必需 | 说明 |
---|---|---|---|
timestamp |
Number | 是 | 当前的服务器的 Unix 时间戳,可以是毫秒或秒级 |
nonce |
Number | 是 | 随机数 |
signature |
String | 是 | RSA-SHA256 算法签名。签名步骤:1. 将参与签名的参数( secretId ,timestamp ,nonce )用英文半角逗号 , 拼接,得到 SignString ;2. 使用您的私钥以 RSA-SHA256 算法对 SignString 签名,然后进行 Base64 编码,得到 signature 字符串。点击 数字证书 下载私钥; 点击 签名及验证示例 查看签名示例 |
images |
Array<image> | 是 | 图片链接数组。 1. 支持的图片格式:png、jpg、jpeg、tif、webp、bmp、gif、heif; 2. 为了加快网络传输速度,图片大小默认限制在 10MB 以内,建议对图片进行压缩处理,等比压缩到 [256, 512] 之间 |
tasks |
Array[String] | 否 | TaskId 数组。通过此参数指定应用(SID)下需要调用的识别任务,如:["54bcfc6c329af61034f7c2fc"] ;不传该参数时,调用该应用(SID)下的全部识别任务 |
Image
参数名称 | 类型 | 是否必需 | 说明 |
---|---|---|---|
url |
String | 是 | 图片链接 |
callbackUrl |
String | 否 | 回调地址。若为空,不进行结果回调 |
tag |
String | 否 | 图片额外的业务信息,例如直播房间 ID,消息 ID 或 JSON 字符串,调用完成后可以在控制台根据 tag 搜索调用记录。 |
sequenceId |
String | 否 | 连续帧图的组别 ID,例如直播间 ID 等,基于此 ID 进行该 ID 组别下的连续帧相似度识别(调用连续帧相似度识别任务时必传)。 1. 需要保证同一 sequenceId 下的图片帧,在同一请求中唯一,并且在不同请求间按照时间顺序有一定的间隔(防止乱序) |
1.6 响应内容
参数名称 | 类型 | 说明 |
---|---|---|
json |
String | 响应内容 JSON 转义后的字符串 |
signature |
String | 响应内容签名 |
1.6.1 响应参数
参数名称 | 类型 | 是否可能为空 | 说明 |
---|---|---|---|
images |
Array<image> | 否 | 图片提交结果,与请求参数 images 一一对应 |
Image
参数名称 | 类型 | 是否可能为空 | 说明 |
---|---|---|---|
code |
Number | 否 | 状态码,标识该图片是否提交成功,参考 服务公共状态码解析 |
message |
String | 否 | 错误信息 |
requestId |
String | 否 | 图片请求 ID,唯一标识该图片。字符串长度 24 ~ 255 (可能随着应用演进产生变化) |
tag |
String | 是 | 图片额外的业务信息 |
sequenceId |
String | 是 | 连续帧图的组别 ID |
1.7 请求示例
{
"timestamp": "<timestamp>",
"nonce": "<nonce>",
"signature": "<signature>",
"tasks": [
"54bcfc6c329af61034f7c2fc"
],
"images": [
{
"content": "http://example.com/sample.jpeg",
"callbackUrl": "http://example.com/callback?roomId=test",
"tag": "<tag>",
"sequenceId": "<sequenceId>"
}
]
}
1.8 响应示例
{
"json": "{\"code\":0,\"images\":[{\"code\":0,\"message\":\"success\",\"requestId\":\"1656562127-62bd21cfb502a595c17a0d29\",\"tag\":\"test\"},{\"code\":0,\"message\":\"success\",\"requestId\":\"1656562127-62bd21cfb502a595c17a0d2a\",\"tag\":\"test\"},{\"code\":0,\"message\":\"success\",\"requestId\":\"1656562127-62bd21cfb502a595c17a0d2b\",\"tag\":\"test\"}],\"message\":\"success\",\"nonce\":0.7824416824349484,\"timestamp\":1656562127}",
"signature": "iq72eJlFhYrbMJQxwPOG9my9kGSAVZnnW5GeH8kTOUaxj1sn0J2nDMSBi/5EnOU6nhUm2sgEWEoR4C/Oou4CD3++jV4BYfg/wAq5Vs953IaPJESGt+k9bgkxtijlYhKWyMtWecl41A9JkQAt+Vh2I7JxCy5n5/MRfRlqw49XSac="
}
2. 通过图片 Base64 进行异步识别
2.1 请求地址
区域 | 请求地址 |
---|---|
国内 | http://api.open.tuputech.com/v3/recognition/image/async/base64/<SecretId> |
SecretId
需替换为您的应用 ID(SID)。
2.2 请求方法
POST
2.3 请求头
Content-Type: application/json
2.4 并发及文件大小说明
默认每秒请求数不超过 50 次,单次请求图片数量不超过 10 张,图片大小不超过 10MB。请联系我们调整并发及文件限制。
2.5 请求参数
参数名称 | 类型 | 是否必需 | 说明 |
---|---|---|---|
timestamp |
Number | 是 | 当前的服务器的 Unix 时间戳,可以是毫秒或秒级 |
nonce |
Number | 是 | 随机数 |
signature |
String | 是 | RSA-SHA256 算法签名。签名步骤:1. 将参与签名的参数( secretId ,timestamp ,nonce )用英文半角逗号 , 拼接,得到 SignString ;2. 使用您的私钥以 RSA-SHA256 算法对 SignString 签名,然后进行 Base64 编码,得到 signature 字符串。点击 数字证书 下载私钥; 点击 签名及验证示例 查看签名示例 |
images |
Array<image> | 是 | 图片 Base64 数组。 1. 支持的图片格式:png、jpg、jpeg、tif、webp、bmp、gif、heif; 2. 为了加快网络传输速度,图片大小默认限制在 10MB 以内,建议对图片进行压缩处理,等比压缩到 [256, 512] 之间 |
tasks |
Array[String] | 否 | TaskId 数组。通过此参数指定应用(SID)下需要调用的识别任务,如:["54bcfc6c329af61034f7c2fc"] ;不传该参数时,调用该应用(SID)下的全部识别任务 |
Image
参数名称 | 类型 | 是否必需 | 说明 |
---|---|---|---|
content |
String | 是 | 图片 Base64 |
callbackUrl |
String | 否 | 回调地址。若为空,不进行结果回调 |
tag |
String | 否 | 图片额外的业务信息,例如直播房间 ID,消息 ID 或 JSON 字符串,调用完成后可以在控制台根据 tag 搜索调用记录。 |
sequenceId |
String | 否 | 连续帧图的组别 ID,例如直播间 ID 等,基于此 ID 进行该 ID 组别下的连续帧相似度识别(调用连续帧相似度识别任务时必传)。 1. 需要保证同一 sequenceId 下的图片帧,在同一请求中唯一,并且在不同请求间按照时间顺序有一定的间隔(防止乱序) |
2.6 响应内容
参数名称 | 类型 | 说明 |
---|---|---|
json |
String | 响应内容 JSON 转义后的字符串 |
signature |
String | 响应内容签名 |
2.6.1 响应参数
参数名称 | 类型 | 是否可能为空 | 说明 |
---|---|---|---|
images |
Array<image> | 否 | 图片提交结果,与请求参数 images 一一对应 |
Image
参数名称 | 类型 | 是否可能为空 | 说明 |
---|---|---|---|
code |
Number | 否 | 状态码,标识该图片是否提交成功,参考 服务公共状态码解析 |
message |
String | 否 | 错误信息 |
requestId |
String | 否 | 图片请求 ID,唯一标识该图片。字符串长度 24 ~ 255 (可能随着应用演进产生变化) |
tag |
String | 是 | 图片额外的业务信息 |
sequenceId |
String | 是 | 连续帧图的组别 ID |
2.7 请求示例
{
"timestamp": "<timestamp>",
"nonce": "<nonce>",
"signature": "<signature>",
"tasks": [
"54bcfc6c329af61034f7c2fc"
],
"images": [
{
"content": "4AAQSkZJRgABAQAA...SEBIXFRQYHjIhHhwc==",
"callbackUrl": "http://example.com/callback?roomId=test",
"tag": "<tag>",
"sequenceId": "<sequenceId>"
}
]
}
2.8 响应示例
{
"json": "{\"code\":0,\"images\":[{\"code\":0,\"message\":\"success\",\"requestId\":\"1656562127-62bd21cfb502a595c17a0d29\",\"tag\":\"test\"},{\"code\":0,\"message\":\"success\",\"requestId\":\"1656562127-62bd21cfb502a595c17a0d2a\",\"tag\":\"test\"},{\"code\":0,\"message\":\"success\",\"requestId\":\"1656562127-62bd21cfb502a595c17a0d2b\",\"tag\":\"test\"}],\"message\":\"success\",\"nonce\":0.7824416824349484,\"timestamp\":1656562127}",
"signature": "iq72eJlFhYrbMJQxwPOG9my9kGSAVZnnW5GeH8kTOUaxj1sn0J2nDMSBi/5EnOU6nhUm2sgEWEoR4C/Oou4CD3++jV4BYfg/wAq5Vs953IaPJESGt+k9bgkxtijlYhKWyMtWecl41A9JkQAt+Vh2I7JxCy5n5/MRfRlqw49XSac="
}
3. 查询异步识别结果
3.1 请求地址
区域 | 请求地址 |
---|---|
国内 | http://api.open.tuputech.com/v3/recognition/image/async/result/<SecretId> |
SecretId
需替换为您的应用 ID(SID)。
3.2 请求方法
POST
3.3 请求头
Content-Type: application/json
3.4 并发说明
默认每秒请求数不超过 10 次。请联系我们调整并发限制。
3.5 请求参数
参数名称 | 类型 | 是否必需 | 说明 |
---|---|---|---|
timestamp |
Number | 是 | 当前的服务器的 Unix 时间戳,可以是毫秒或秒级 |
nonce |
Number | 是 | 随机数 |
signature |
String | 是 | RSA-SHA256 算法签名。签名步骤:1. 将参与签名的参数( secretId ,timestamp ,nonce )用英文半角逗号 , 拼接,得到 SignString ;2. 使用您的私钥以 RSA-SHA256 算法对 SignString 签名,然后进行 Base64 编码,得到 signature 字符串。点击 数字证书 下载私钥; 点击 签名及验证示例 查看签名示例 |
requestIds |
Array[String] | 是 | 图片 RequestId 数组,单次请求不超过 10 个 |
3.6 响应内容
参数名称 | 类型 | 说明 |
---|---|---|
json |
String | 响应内容 JSON 转义后的字符串 |
signature |
String | 响应内容签名 |
3.6.1 响应参数
参数名称 | 类型 | 是否可能为空 | 说明 |
---|---|---|---|
images |
Array<image> | 否 | 图片识别结果,与请求参数 images 一一对应 |
Image
参数名称 | 类型 | 是否可能为空 | 说明 |
---|---|---|---|
code |
Number | 否 | 状态码,标识该图片是否识别成功,参考 服务公共状态码解析 |
message |
String | 否 | 错误信息 |
requestId |
String | 否 | 图片请求 ID,唯一标识该图片。字符串长度 24 ~ 255 (可能随着应用演进产生变化) |
tag |
String | 是 | 图片额外的业务信息 |
sequenceId |
String | 是 | 连续帧图的组别 ID |
summary |
Summary | 否 | 图片所有识别任务的汇总结果,数组长度与入参图片数量对应 |
[TaskId] |
Object | 是 | 图片识别任务的结果,每个识别任务会有 全局固定不变 的 TaskId 和对应数据结构。具体各识别任务的数据结构,请参考任务页面,例如 色情识别 |
Summary
参数名 | 类型 | 是否可能为空 | 说明 |
---|---|---|---|
code |
Number | 否 | 图片识别状态码,参考 服务公共状态码解析 |
name |
String | 是 | 图片链接或文件名 |
suggestion |
Number | 是 | 建议的操作,参考 汇总结果解析 |
riskType |
Number | 是 | 风险类型,参考 汇总结果解析 |
riskTask |
String | 是 | 风险任务 ID |
tag |
String | 是 | 图片额外的业务信息 |
3.7 请求示例
{
"timestamp": "<timestamp>",
"nonce": "<nonce>",
"signature": "<signature>",
"requestIds": [
"1656520958-62bc80fe52b2a9f9f694d822",
"1656507668-62bc4d148611743c8788265b",
"1656507668-62bc4d148611743c8788265c"
]
}
3.8 响应示例
{
"json": "{\"code\":0,\"images\":[{\"54bcfc6c329af61034f7c2fc\":{\"fileList\":[{\"label\":2,\"name\":\"1656507668-62bc4d148611743c8788265a-0.jpg\",\"rate\":0.9511421918869019,\"review\":true,\"subLabels\":[]}],\"reviewCount\":1,\"statistic\":[0,0,1]},\"code\":0,\"message\":\"success\",\"requestId\":\"1656507668-62bc4d148611743c8788265a\",\"riskType\":0,\"suggestion\":0,\"summary\":[{\"code\":0,\"name\":\"1656507668-62bc4d148611743c8788265a-0.jpg\",\"riskType\":0,\"suggestion\":0}]},{\"54bcfc6c329af61034f7c2fc\":{\"fileList\":[{\"label\":2,\"name\":\"1656507668-62bc4d148611743c8788265b-0.jpg\",\"rate\":0.9501341581344604,\"review\":true,\"subLabels\":[]}],\"reviewCount\":1,\"statistic\":[0,0,1]},\"code\":0,\"message\":\"success\",\"requestId\":\"1656507668-62bc4d148611743c8788265b\",\"riskType\":0,\"suggestion\":0,\"summary\":[{\"code\":0,\"name\":\"1656507668-62bc4d148611743c8788265b-0.jpg\",\"riskType\":0,\"suggestion\":0}]},{\"54bcfc6c329af61034f7c2fc\":{\"fileList\":[{\"label\":2,\"name\":\"1656507668-62bc4d148611743c8788265c-0.jpg\",\"rate\":0.8764230012893677,\"review\":true,\"subLabels\":[]}],\"reviewCount\":1,\"statistic\":[0,0,1]},\"code\":0,\"message\":\"success\",\"requestId\":\"1656507668-62bc4d148611743c8788265c\",\"riskType\":0,\"suggestion\":0,\"summary\":[{\"code\":0,\"name\":\"1656507668-62bc4d148611743c8788265c-0.jpg\",\"riskType\":0,\"suggestion\":0}]}],\"message\":\"success\",\"nonce\":0.4117626883450162,\"timestamp\":1656510461}",
"signature": "Aeafuc3mydTCL/Hou+U9mb6PiLsxJ5xBZOCRGlxnkzWMl0IzmxqLxdRhAnlmB38nff+oqMim0UpWWlqAk+Sqn/ypwV/bbT1v4TElcp9MeYrQSa+q0qk6VFIhQ4PQ3XJ3gg3f/T8yROjkq6R0Y7VoUbRIfE9VAGMGMmyW6Pk2L4k="
}
4. 识别结果回调请求
4.1 请求方法:
POST
4.2 请求头:
Content-Type: application/json
4.3 回调说明
当您通过回调地址接收回调结果时,需要在 5 秒内返回 HTTP 状态码 200 的响应,回调最多重试 2 次,建议您在回调接口中考虑幂等操作。
4.4 回调内容
参数名称 | 类型 | 说明 |
---|---|---|
json |
String | 回调内容 JSON 转义后的字符串 |
signature |
String | 回调内容签名 |
4.4.1 回调参数
参数名称 | 类型 | 是否可能为空 | 说明 |
---|---|---|---|
code |
Number | 否 | 状态码,标识该图片是否识别成功,参考 服务公共状态码解析 |
message |
String | 否 | 错误信息 |
requestId |
String | 否 | 图片请求 ID,唯一标识该图片。字符串长度 24 ~ 255 (可能随着应用演进产生变化) |
summary |
Array[Summary] | 否 | 图片所有识别任务的汇总结果,在此回调场景中长度始终为 1 |
tag |
String | 是 | 图片额外的业务信息 |
sequenceId |
String | 是 | 连续帧图的组别 ID |
[TaskId] |
Object | 是 | 图片识别任务的结果,每个识别任务会有 全局固定不变 的 TaskId 和对应数据结构。具体各识别任务的数据结构,请参考任务页面,例如 色情识别 |
Summary
参数名 | 类型 | 是否可能为空 | 说明 |
---|---|---|---|
code |
Number | 否 | 图片识别状态码,参考 服务公共状态码解析 |
name |
String | 是 | 图片链接或文件名 |
suggestion |
Number | 是 | 建议的操作,参考 汇总结果解析 |
riskType |
Number | 是 | 风险类型,参考 汇总结果解析 |
riskTask |
String | 是 | 风险任务 ID |
tag |
String | 是 | 图片额外的业务信息 |
4.5 回调示例
{
"json": "{\"code\":0,\"message\":\"success\",\"nonce\":0.272136242,\"requestId\":\"1662345263-6315602f30d01d799fe6702f\",\"riskType\":0,\"suggestion\":0,\"summary\":[{\"code\":0,\"name\":\"https://static.tuputech.com/api/image/original/cloud-api/storage-233/2022-09-05/10-1/6311be21b6dc05001e63f4a5/1662345263.8674665223082153551.jpg\",\"riskType\":0,\"suggestion\":0,\"tag\":\"test\"}],\"timestamp\":1662345264272,\"54bcfc6c329af61034f7c2fc\":{\"fileList\":[{\"label\":2,\"name\":\"https://static.tuputech.com/api/image/original/cloud-api/storage-233/2022-09-05/10-1/6311be21b6dc05001e63f4a5/1662345263.8674665223082153551.jpg\",\"rate\":0.9321324717952923,\"review\":false,\"subLabel\":{\"label\":27,\"rate\":0.8816077208194688,\"review\":false},\"tag\":\"test\"}],\"reviewCount\":0,\"statistic\":[0,0,1]}}",
"signature": "Aeafuc3mydTCL/Hou+U9mb6PiLsxJ5xBZOCRGlxnkzWMl0IzmxqLxdRhAnlmB38nff+oqMim0UpWWlqAk+Sqn/ypwV/bbT1v4TElcp9MeYrQSa+q0qk6VFIhQ4PQ3XJ3gg3f/T8yROjkq6R0Y7VoUbRIfE9VAGMGMmyW6Pk2L4k="
}