跳到主要内容

文本异步识别

1. 接口介绍

该接口对长文本中的色情、涉政、暴恐、敏感、广告、谩骂等违法低质内容进行识别及过滤,并将识别结果通过回调形式通知客户。 业务流程如下:

提示
  • 字数限制:异步文本识别接口最大支持 20,000 个字符识别;
  • 支持语种:文本审核默认识别中英文,如需识别其他语种(例如,日语、韩语、泰语、越南语、马来语、印尼语、 印地语、菲律宾语、阿拉伯语、土耳其语、俄语、德语、法语、意大利语、西班牙语、葡萄牙语等)中的风险内容, 请联系我们进行相应配置,以保证识别效果。
提示
  1. 异步文件接口对文件大小和时长没有限制,根据最佳实践,建议文件大小小于 10 GB;异步流接口对流的时长没有限制,建议客户在流关闭时主动调用任务关闭接口。

  2. 图普采用 任务并发数 对异步接口进行并发控制,即任一时刻最多允许 N 个任务同时处理。在测试期间,任务并发数为 30(允许同时处理 30 个任务),正式使用或需要增加时请联系客户经理调整。当超出任务并发数后继续提交任务时,根据接口类型略有不同:

    • 异步文件接口:可以正常提交任务,提交的任务排队等待处理;
    • 异步流接口:提交任务时返回超出并发状态码(由于流的实时性要求,无法排队等待处理,因此无法继续提交)。

2. 请求

2.1 请求地址

区域请求地址
国内https://api.text.tuputech.com/v3/recognition/text/async/<secretId>
国外https://api-oversea.text.tuputech.com/v3/recognition/text/async/<secretId>
提示

<secretId> 需替换为您的应用 SID,请联系客户经理为您开通及配置。关于 SID 详见 常见问题(FAQ)

2.2 请求方法

POST

2.3 请求头

Content-Type: application/json

2.4 超时时间及异常处理

建议配置超时时间 1 秒,在 HTTP 响应状态码非 200 或业务状态码不为 0 时进行重试。

2.5 请求参数说明 🔥

参数名称类型是否必填说明
contentString待检测的文本内容,可以为词语或句子, 最大支持 20,000 字符
callbackUrlString回调地址
contentIdString否(建议填入)自定义文本 ID(指定时可在控制台根据此字段搜索识别结果)
userIdString用户 ID(指定时可在控制台根据此字段搜索识别结果)
forumIdString板块 ID(指定时可在控制台根据此字段搜索识别结果)
timestampNumber当前服务器的 Unix 时间戳
nonceNumber随机数
signatureString

RSA-SHA256 算法签名。签名步骤:

  1. 将参与签名的参数(secretIdtimestampnonce)用英文半角逗号 , 拼接,得到 SignString
  2. 使用您的私钥以 RSA-SHA256 算法对 SignString 签名,然后进行 Base64 编码,得到 signature 字符串。
  • 点击 数字证书 下载私钥。私钥有 rsapkcs8 两种格式,通常 Golang,Python 使用 rsa 格式私钥,Java 使用 pkcs8 格式私钥
  • 点击 签名及验证示例 查看签名示例

2.6 请求示例

{
"content": "<文本内容>",
"callbackUrl": "<url>",
"contentId": "<文本 ID>",
"userId": "<用户 ID>",
"forumId": "<板块 ID>",
"nonce": 1685000000,
"timestamp": 1685000000,
"signature": "<signature>"
}

3. 同步响应

3.1 响应参数说明 🔥🔥

参数名称类型说明
signatureString

同步响应或回调请求签名,由图普使用私钥签名,在需要时,您可以通过 图普公钥 进行验签以确保此响应内容来自图普(与您调用接口时使用的公私钥不同)。验签步骤:

  1. json 字段内容为 SignString
  2. signature 字段内容进行 Base64 解码,得到 RawSignature
  3. 使用图普公钥以 SHA256 算法验证 RawSignatureSignString
jsonString

同步响应或回调请求经过 JSON 转义后的字符串,需进一步解析得到业务数据。

  • 字段内容示例:{\"code\":0, \"message\":\"success\"}
  • 字段详见下述 JSON 参数说明
  • 为方便展示,同步响应及回调请求的示例中,均为解析后的 JSON

JSON 参数说明

参数名称类型是否必有说明
codeNumber状态码,详见 业务状态码
messageString状态信息
requestIdString任务唯一 ID,回调中携带该任务 ID。字符串长度 24~128

3.2 响应示例

{
"code": 0,
"message": "success",
"requestId": "<requestId>",
"nonce": 1685000000,
"timestamp": 1685000000
}

4. 回调请求

4.1 请求地址

callback 参数指定的地址。

4.2 请求方法

POST

4.3 请求头

Content-Type: application/json

4.4 超时时间及异常处理

回调超时时间 5 秒,在 HTTP 响应状态码非 200 时进行重试,最多重试 3 次。

建议客户在处理回调时进行异步处理,响应回调时可以返回字符串或 JSON,示例如下:

// JSON
{
"message": "ok"
}

// 字符串
success

4.5 请求参数说明 🔥🔥🔥

参数名称类型说明
signatureString

同步响应或回调请求签名,由图普使用私钥签名,在需要时,您可以通过 图普公钥 进行验签以确保此响应内容来自图普(与您调用接口时使用的公私钥不同)。验签步骤:

  1. json 字段内容为 SignString
  2. signature 字段内容进行 Base64 解码,得到 RawSignature
  3. 使用图普公钥以 SHA256 算法验证 RawSignatureSignString
jsonString

同步响应或回调请求经过 JSON 转义后的字符串,需进一步解析得到业务数据。

  • 字段内容示例:{\"code\":0, \"message\":\"success\"}
  • 字段详见下述 JSON 参数说明
  • 为方便展示,同步响应及回调请求的示例中,均为解析后的 JSON

JSON 参数说明

参数名称类型是否必有说明
codeNumber状态码,详见 业务状态码
requestIdString任务唯一 ID
contentIdString提交的文本 ID
userIdString提交的用户 ID
forumIdString提交的板块 ID
<任务 ID>Object识别任务的结果,每个识别任务会有 全局固定不变taskId 和对应数据结构,详见下述链接:

1. 图片类任务结果
2. 文本类任务结果
3. 语音类任务结果

4.6 请求示例

{
"code": 0,
"message": "success",
"requestId": "<requestId>",
"57c4036c557603652aeeb222": {
"texts": [
{
"action": "block",
"label": "Politics",
"review": false,
"rate": 1,
"content": "<文本内容>",
"details": [
{
"mainLabel": "Politics",
"subLabel": "Political_Negative_events",
"keyword": "<关键词>",
"hint": "<违规内容片段>",
"startPos": 0,
"endPos": 3
}
]
}
]
},
"nonce": 1685000000,
"timestamp": 1685000000,
"signature": "<signature>"
}

5. 常见问题

  1. Q:违规片段所在的文本区间是指什么?什么是文本区间位置?
    A:文本区间指的是违规片段所在的句子。返回的文本区间位置是指,违规片段所在句子在检测文本中的大致位置,用于定位违规片段。

  2. Q: 文本区间划分的依据是什么?
    A: 按句子进行区间划分。一般是以句号、问号、感叹号、分号作为句子结束标志,中英文字符均适用。若原句过短则可能呈现的是多个句子合并后的区间。

  3. Q: 为什么只能返回文本区间位置,不能返回违规片段在文本中的精确位置?
    A: 检测文本可能含有违规拼音或者谐音字等,nlp 识别会先对文本内容进行预处理,导致无法匹配到原文,所以只返回违规片段所在句子区间的大致位置。