异步文本审核

接入说明

异步文本识别: 最大支持20,000个字符识别, 非实时回调接口。

请求地址:

http://api.text.tuputech.com/v3/recognition/text/async/'your_secretId'
'your_secretId'需替换为您的secretId,请联系我们为您开通secretId。

请求方法:

POST

请求头:

Content-Type: application/json

QPS限制

  • 1秒最多允许请求10次;
  • 测试期最多允许同时处理 3 个文本,正式使用请与我们沟通过协商

如有特殊并发需求,请联系我们。

请求及返回参数

请求示例:

{
  "contentId": "your_contentId",
  "content": "32132131",
  "callbackUrl": "http://your_cb.com",
  "userId": "your_userId",
  "forumId": "your_forumId",
  "timestamp": 1541499770,
  "nonce": 0.8469537531104208,
  "signature": "CsIMcHuWqn/QFEnHWcFEhrB7ydcg5xTKawpRpNqA9Nw2WlCVIDR5jDcyUF85"
}

curl请求示例

curl -X POST --header 'Content-Type: application/json' \
-d '{
  "content": "32132131",
  "contentId": "your_contentId",
  "userId": "your_userId",
  "forumId": "your_forumId",
  "timestamp": 1541499770,
  "nonce": 0.8469537531104208,
  "signature": "CsIMcHuWqn/QFEnHWcFEhrB7ydcg5xTKawpRpNqA9Nw2WlCVIDR5jDcyUF85"
}' \
'http://api.text.tuputech.com/v3/recognition/text/async/your_secretId'

请求参数说明:

参数名 类型 是否必填 说明
content String 待检测的文本内容,可以为词语或句子, 最大支持20,000字符
contentId String 客户自定义信息,方便根据该id找到相关的文本,建议可设置为secretId + 当前时间 + 随机数,参考请求示例
userId String 用户Id
forumId String 板块Id
timestamp Number 当前的服务器的Unix时间戳
nonce Number 随机数
signature String 我们采用的数字证书签名算法是:"RSA-SHA256",签名输出类型是:"base64",具体步骤如下:
1、所有参与签名的参数为:secretId,timestamp,nonce,用英文半角逗号“,”相连,得到sign_string;
2、利用您的私钥,使用算法"RSA-SHA256"签名,输出为 "base64" 格式,得到参数signature的值。
点击管理公钥证书查看如何生成私钥,及如何上传您的公钥用于数字签名的认证;

响应及回调

服务返回信息的公共结构

参数名 类型 是否必有 说明
signature String 我们采用的数字证书签名算法是:"RSA-SHA256",签名输出类型是:"base64",首先下载图普科技的公钥证书,然后按如下步骤认证:
1、收到的JSON数据经过JSON.parse(),得到JSON对象,记为data;
2、data含两个字段:signature、json;signature是数字签名,json是真正的有效数据的字符串格式;
3、用signature对json进行签名认证,算法:RSA-SHA256,输出类型:base64,得到认证结果;
4、认证通过后,对json进行JSON.parse(),得到JSON数据,详见"json"字段说明。
json String json 字段经过JSON.parse(json)后,得到具体的结果,含:
message:与code相关的文本信息
timestamp:当前的服务器的Unix时间戳。
nonce:随机数。
json内容解析后的结构
参数名 类型 是否必有 说明
code Number 请求的状态码,参考服务公共状态码解析
message String 请求的状态信息
timestamp Number 当前的服务器的Unix时间戳
nonce Number 随机数
[taskId] Object 识别任务的结果,不同识别任务会有特定的taskId和[taskId]信息结构
... ... 其它识别及请求响应结果信息
json示例
{
    "signature": "signature_from_tupu_service", 
    "json": "{\"code\":0,\"message\":\"success\",\"nonce\":\"0.5442530125172196\",\"timestamp\":1595318082309}"
}

任务结果信息

注意:同步响应及异步回调结果都是此结构,不同的是 json 里的信息

请求的同步响应

json 字段数据示例:

{
    "requestId": "611b896c0d2b6305747aeb55",  
    "code": 0,
    "message": "success",
    "nonce": "0.01627771095362096",
    "timestamp": 1552391372490
}

响应参数说明

参数名 类型 是否必有 说明
requestId String 客户提交的文本审核的唯一请求 id,后续可以通过该 id 查到文本的相关信息

异步回调参数说明

参数名 类型 是否必有 说明
requestId String 客户提交的文本审核的唯一请求 id,后续可以通过该 id 查到文本的相关信息
[taskId] Object 任务 id 对应的审核结果
taskId

57c4036c557603652aeeb222

taskId对象中的数据结构
参数名 类型 是否必有 说明
content String 检测的文本内容
action String 检测结果, 'pass': 通过, 'block': 不通过, 'review': 复审
label String 标签, 具体参考识别分类值
review Bool 是否需要复审,true:是, false: 否
rate Float 吻合分数,值越高机器对判定结果越有把握,取值为0到1之间或者空值null
details Array 命中的关键词详细信息,如果actions为pass,则details为空数组,详见以下数据结构
contentId String 客户自定义信息
userId String 用户Id
forumId String 版块Id


details数据结构
参数名 类型 是否必有 说明
keyword String 检测文本中的违规内容片段
hint String 命中的关键词。若命中算法模型,返回值为空。
mainLabel String 命中的风险主标签, 具体参考识别分类值
subLabel String 二级标签
startPos Number 违规片段所在文本区间的起始位置,从检测文本的第一个字符起,以0开始计数。关于文本区间,请参看下文“Q&A”部分。
endPos Number 违规片段所在文本区间的结束位置,从检测文本的第一个字符起,以0开始计数。关于文本区间,请参看下文“Q&A”部分。

文本识别结果数据示例

{
    "57c4036c557603652aeeb222":{
        "contentId":"test-contentId",
        "userId":"user-id",
        "forumId":"test-id",
        "content":"2014年6月15号的下午,3名手持凶器的暴徒在对新疆和田市一家棋牌室内的市民进行疯狂砍杀的时候,遭到市民的奋力反击,很快被警民联手制伏,3名暴徒当中,两人因伤重不治而亡,一人被擒。昨天,在当地的看守所,记者见到了被抓获的犯罪嫌疑人木尔扎提。 木尔扎提头上的伤是在案发时遭群众反击留下的。警察来了把他带到了医院,医生把他头上的伤缝好。 监控显示,案发前,木尔扎提3人曾在棋牌室门前逗留了一分半钟,密谋袭击行动。照他们原来的想法是在这里搞袭击,一是容易得手且不容易被警察发现,二是可以顺利逃跑。 木尔扎提先观察了5秒钟,随后跟一起进去的人拿着斧头开始砍,也朝一个人开始砍。 木尔扎提选择的第一个袭击对象是监控画面中唯一的一位女士。 木尔扎提同伙有跟他们说砍人要分年龄,见人就砍。 想着没机会逃跑了 袭击行动开始后,暴徒们却感到了一丝恐惧。 木尔扎提当时有一些怕,乘客用椅子桌子朝他们打过来,他表示发生这种事(激烈反抗)真的有一些害怕。看到人们并没有被他们吓到,三名暴徒企图逃跑,可当他们跑出棋牌室后却发现其实已经无路可逃。 在外面群众拿着棍子朝他们过来,当时他想的就是他们没有机会逃跑了。面对人们组成的包围圈,暴徒们慌不择路继续实施砍杀。可越来越多的群众加入到了围堵的行动中。这时,正在附近巡逻的武装力量也及时赶到了现场,3名暴徒被彻底制伏。 能活着被警察抓获 木尔扎提也很庆幸自己能被警察抓获。木尔扎提表示,现在还活着,如果我能出去的话,再不会干这种事了。我会好好地在家照顾父母。 据当地警方介绍,该团伙成员深受宗教极端思想影响,相信通过杀戮可以换取进入天堂的资格。 木尔扎提表示,他们跟我讲关于“圣战”的事情,说只要进行“圣战”而死,死后就可以不受“审判”直接进入天堂。",
        "action":"block",
        "label":"Abuse",
        "review":false,
        "rate":1,
        "details":[
            {
                "keyword":"昨天在当地的看守所记者见到了被抓获的犯罪嫌疑人木尔扎提",
                "hint":"",
                "mainLabel":"Sensitive",
                "startPos":91,
                "endPos":121
            },
            {
                "keyword":"警察",
                "hint":"警察",
                "mainLabel":"Sensitive",
                "subLabel":"Social_Negative_Events",
                "startPos":144,
                "endPos":167
            },
            {
                "keyword":"警察",
                "hint":"警察",
                "mainLabel":"Sensitive",
                "subLabel":"Social_Negative_Events",
                "startPos":205,
                "endPos":246
            },
            {
                "keyword":"砍人",
                "hint":"砍人",
                "mainLabel":"Sensitive",
                "subLabel":"Social_Negative_Events",
                "startPos":314,
                "endPos":338
            },
            {
                "keyword":"警察",
                "hint":"警察",
                "mainLabel":"Sensitive",
                "subLabel":"Social_Negative_Events",
                "startPos":570,
                "endPos":597
            },
            {
                "keyword":"警方",
                "hint":"警方",
                "mainLabel":"Sensitive",
                "subLabel":"Social_Negative_Events",
                "startPos":640,
                "endPos":683
            }
        ]
    },
    "requestId":"619205955c56844be4f7fbde",
    "code":0,
    "message":"success",
    "nonce":0.932176752285591,
    "timestamp":1636959639392
}

Q&A

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

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

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

results matching ""

    No results matching ""