功能描述
本接口用于提交一个文本审核任务。您可以通过提交文本审核任务审核您的文本文件,然后通过查询文本审核任务接口查询审核结果。
该接口支持情况如下:
说明:
- 支持审核腾讯云 COS 上的文本文件。
- 支持直接审核纯文本信息,需要先经过 base64 编码。
- 支持的文本审核方式:
- 直接传入文本内容进行审核(仅支持 UTF8 编码)
- 审核 COS 上的文本内容的文件(仅支持 UTF8 编码和 GBK 编码的内容)
- 传入文本文件的 URL 链接进行审核(仅支持 UTF8 编码和 GBK 编码的内容)
- 支持对文本文件进行自动检测,通过深度学习技术,识别可能令人反感、不安全或不适宜的违规文本内容。
- 支持设置回调地址 Callback 获取检测结果,或通过 查询文本审核任务结果接口 主动轮询获取审核结果详情。
- 支持识别多种违规场景,包括:色情、违法、广告等场景。
- 支持根据不同的业务场景 配置自定义的审核策略。
费用说明
- 每个审核场景单独计费,例如您选择审核涉黄、广告两种场景,则审核1个文本,计2次审核费用。
- 调用接口会产生 文本审核费用 和 COS 读请求费用。
- 如果文本属于 COS 上的低频存储类型,调用审核会产生 COS 低频数据取回费用。
- 不支持审核 COS 上的归档存储类型和深度归档存储类型的文本,如果需要审核此类型文本,请先 恢复归档文件。
- 审核第三方云存储厂商的图片 URL 时,将产生所在云厂商的下行流量费用。
限制说明
- 文本内容大小支持:当审核的内容为纯文本信息,需要先经过 base64 编码,文本编码前的原文长度不能超过10000个 utf8 编码字符。
- 文本文件大小支持:当传入的内容为文本文件时,文件大小不能超过1MB。
- 文本审核语言支持:目前支持中文、英文、阿拉伯数字的检测。
请求
请求示例
POST /text/auditing HTTP/1.1
Host: <BucketName-APPID>.ci.<Region>.myqcloud.com
Date: <GMT Date>
Authorization: <Auth String>
Content-Length: <length>
Content-Type: application/xml
<body>
说明:Authorization: Auth String(详情请参见 请求签名 文档)。
请求头
此接口仅使用公共请求头部,详情请参见 公共请求头部 文档。
请求体
该请求操作的实现需要有如下请求体:
<Request>
<Input>
<Object></Object>
<Content></Content>
<Url></Url>
<DataId></DataId>
</Input>
<Conf>
<DetectType>Porn,Ads,Illegal,Abuse</DetectType>
<Callback></Callback>
<BizType>b81d45f94b91a683255e9a9506f45a11</BizType>
</Conf>
</Request>
具体的数据描述如下:
节点名称(关键字) | 父节点 | 描述 | 类型 | 是否必选 |
---|---|---|---|---|
Request | 无 | 文本审核的具体配置项。 | Container | 是 |
Container 类型 Request 的具体数据描述如下:
节点名称(关键字) | 父节点 | 描述 | 类型 | 是否必选 |
---|---|---|---|---|
Input | Request | 需要审核的内容。 | Container | 是 |
Conf | Request | 审核规则配置。 | Container | 是 |
Container 类型 Input 的具体数据描述如下:
节点名称(关键字) | 父节点 | 描述 | 类型 | 是否必选 |
---|---|---|---|---|
Object | Request.Input | 当前 COS 存储桶中的文本文件名称,例如在目录 test 中的文件 test.txt,则文件名称为 test/test.txt,文本文件仅支持 UTF8 编码和 GBK 编码的内容,且文件大小不得超过1MB。 | String | 否 |
Content | Request.Input | 当传入的内容为纯文本信息,需要先经过 base64 编码,文本编码前的原文长度不能超过10000个 UTF8 编码字符。若超出长度限制,接口将会报错。 | String | 否 |
Url | Request.Input | 文本文件的完整链接,例如:https://www.test.com/test.txt 。 |
String | 否 |
DataId | Request.Input | 该字段在审核结果中会返回原始内容,长度限制为512字节。您可以使用该字段对待审核的数据进行唯一业务标识。 | String | 否 |
UserInfo | Request.Input | 用户业务字段。 | Container | 否 |
Container 节点 UserInfo 的内容:
节点名称(关键字) | 父节点 | 描述 | 类型 | 是否必选 |
---|---|---|---|---|
TokenId | Request.Input.UserInfo | 用户业务 TokenId,长度不超过128字节。 | String | 否 |
Nickname | Request.Input.UserInfo | 用户业务 Nickname,长度不超过128字节。 | String | 否 |
DeviceId | Request.Input.UserInfo | 用户业务 DeviceId,长度不超过128字节。 | String | 否 |
AppId | Request.Input.UserInfo | 用户业务 AppId,长度不超过128字节。 | String | 否 |
Room | Request.Input.UserInfo | 用户业务 Room,长度不超过128字节。 | String | 否 |
IP | Request.Input.UserInfo | 用户业务 IP,长度不超过128字节。 | String | 否 |
Type | Request.Input.UserInfo | 用户业务 Type,长度不超过128字节。 | String | 否 |
注意:
- 单次请求只能使用 Object 、Content、Url 中的一个。
- 当选择 Object、Url 时,审核结果为异步返回,可通过 查询文本审核任务结果 API 接口获取返回结果。
- 当选择 Content 时,审核结果为同步返回,可通过 响应体 查看返回结果。
- 目前仅支持中文、英文、阿拉伯数字的检测与审核。
Container 类型 Conf 的具体数据描述如下:
节点名称(关键字) | 父节点 | 描述 | 类型 | 是否必选 |
---|---|---|---|---|
BizType | Request.Conf | 表示审核策略的唯一标识,您可以通过控制台上的审核策略页面,配置您希望审核的场景,如涉黄、广告、违法违规等,配置指引: 设置公共审核策略。您可以在控制台上获取到 BizType。BizType 填写时,此条审核请求将按照该审核策略中配置的场景进行审核。 BizType 不填写时,将自动使用默认的审核策略。 |
String | 否 |
DetectType | Request.Conf | (后续不再维护)审核的场景类型,有效值:Porn(涉黄)、Ads(广告)等,可以传入多种类型,不同类型以逗号分隔,例如:Porn,Ads。如您有更多场景的审核需要,请使用 BizType 参数。 | String | 否 |
Callback | Request.Conf | 审核结果可以回调形式发送至您的回调地址,支持以http:// 或者https:// 开头的地址,例如:http://www.callback.com 。当 Input 使用 Content 时,该参数不生效,结果会直接返回。 |
String | 否 |
CallbackVersion | Request.Conf | 回调内容的结构,有效值:Simple(回调内容包含基本信息)、Detail(回调内容包含详细信息)。默认为 Simple。 | String | 否 |
响应
响应头
此接口仅返回公共响应头部,详情请参见 公共响应头部 文档。
响应体
该响应体返回为 application/xml 数据,包含完整节点数据的内容展示如下:
<Response>
<JobsDetail>
<DataId></DataId>
<JobId></JobId>
<State></State>
<CreationTime></CreationTime>
<Code>Success</Code>
<Message>Success</Message>
<SectionCount></SectionCount>
<Result>1</Result>
<PornInfo>
<HitFlag></HitFlag>
<Count></Count>
</PornInfo>
<Section>
<StartByte></StartByte>
<PornInfo>
<HitFlag></HitFlag>
<Score></Score>
<Keywords></Keywords>
</PornInfo>
</Section>
</JobsDetail>
<RequestId></RequestId>
</Response>
具体的数据内容如下:
节点名称(关键字) | 父节点 | 描述 | 类型 |
---|---|---|---|
Response | 无 | 文本审核返回的具体响应内容。 | Container |
接口请求中的Input
节点里,选择Object
和Content
会有不同的响应体:
- 选择
Object
时,接口响应为异步返回,可通过 查询文本审核任务结果 接口查看审核的结果。 - 选择
Content
时,接口响应为同步返回,可直接通过本接口的响应体内容查看审核结果。
(1)Input 为 Object 时
Container 节点 Response 的内容:
节点名称(关键字) | 父节点 | 描述 | 类型 |
---|---|---|---|
JobsDetail | Response | 文本审核任务的详细信息。 | Container |
RequestId | Response | 每次请求发送时,服务端将会自动为请求生成一个 ID,遇到问题时,该 ID 能更快地协助定位问题。 | String |
Container 节点 JobsDetail 的内容:
节点名称(关键字) | 父节点 | 描述 | 类型 |
---|---|---|---|
DataId | Response.JobsDetail | 请求中添加的唯一业务标识。 | String |
JobId | Response.JobsDetail | 本次文本审核任务的 ID。 | String |
State | Response.JobsDetail | 文本审核任务的状态,值为 Submitted(已提交审核)、Success(审核成功)、Failed(审核失败)、Auditing(审核中)其中一个。 | String |
CreationTime | Response.JobsDetail | 文本审核任务的创建时间。 | String |
(2)Input 为 Content 时
Container 节点 Response 的内容:
节点名称(关键字) | 父节点 | 描述 | 类型 |
---|---|---|---|
JobsDetail | Response | 文本审核任务的详细信息。 | Container |
RequestId | Response | 每次请求发送时,服务端将会自动为请求生成一个 ID,遇到问题时,该 ID 能更快地协助定位问题。 | String |
Container 节点 JobsDetail 的内容:
节点名称(关键字) | 父节点 | 描述 | 类型 |
---|---|---|---|
Code | Response.JobsDetail | 错误码,只有 State 为 Failed 时返回,详情请查看 错误码列表。 | String |
DataId | Response.JobsDetail | 请求中添加的唯一业务标识。 | String |
Message | Response.JobsDetail | 错误描述,只有 State 为 Failed 时返回。 | String |
JobId | Response.JobsDetail | 本次文本审核任务的 ID。 | String |
CreationTime | Response.JobsDetail | 文本审核任务的创建时间。 | String |
State | Response.JobsDetail | 文本审核任务的状态,值为 Success(审核成功)或者 Failed(审核失败)。 | String |
Content | Response.JobsDetail | 文本内容的 Base64 编码。 | String |
Label | Response.JobsDetail | 该字段用于返回检测结果中所对应的优先级最高的恶意标签,表示模型推荐的审核结果,建议您按照业务所需,对不同违规类型与建议值进行处理。 返回值:Normal:正常,Porn:色情,Ads:广告,以及其他不安全或不适宜的类型。 | String |
Result | Response.JobsDetail | 该字段表示本次判定的审核结果,您可以根据该结果,进行后续的操作;建议您按照业务所需,对不同的审核结果进行相应处理。 有效值:0(审核正常),1 (判定为违规敏感文件),2(疑似敏感,建议人工复核)。 |
Integer |
SectionCount | Response.JobsDetail | 审核的文本内容分片数,固定为1。 | Integer |
PornInfo | Response.JobsDetail | 审核场景为涉黄的审核结果信息。 | Container |
AdsInfo | Response.JobsDetail | 审核场景为广告引导的审核结果信息。 | Container |
IllegalInfo | Response.JobsDetail | 审核场景为违法的审核结果信息。 | Container |
AbuseInfo | Response.JobsDetail | 审核场景为谩骂的审核结果信息。 | Container |
Section | Response.JobsDetail | 文本审核的具体结果信息。 | Container Array |
Container 节点 PornInfo,AdsInfo,IllegalInfo,AbuseInfo 的内容:
节点名称(关键字) | 父节点 | 描述 | 类型 |
---|---|---|---|
HitFlag | Response.JobsDetail.*Info | 用于返回该审核场景的审核结果,返回值:
|
Integer |
Count | Response.JobsDetail.*Info | 命中该审核分类的分片数。 | Integer |
Container 节点 Section 的内容:
节点名称(关键字) | 父节点 | 描述 | 类型 |
---|---|---|---|
StartByte | Response.JobsDetail.Section | 该分片位于文本中的起始位置信息(即10代表第11个utf8文字)。从0开始。 | Integer |
Label | Response.JobsDetail.Section | 该字段用于返回检测结果中所对应的优先级最高的恶意标签,表示模型推荐的审核结果,建议您按照业务所需,对不同违规类型与建议值进行处理。 返回值:Normal:正常,Porn:色情,Ads:广告,以及其他不安全或不适宜的类型。 | String |
Result | Response.JobsDetail.Section | 该字段表示本次判定的审核结果,您可以根据该结果,进行后续的操作;建议您按照业务所需,对不同的审核结果进行相应处理。 有效值:0(审核正常),1 (判定为违规敏感文件),2(疑似敏感,建议人工复核)。 |
Integer |
PornInfo | Response.JobsDetail.Section | 审核场景为涉黄的审核结果信息。 | Container |
AdsInfo | Response.JobsDetail.Section | 审核场景为广告引导的审核结果信息。 | Container |
IllegalInfo | Response.JobsDetail.Section | 审核场景为违法的审核结果信息。 | Container |
AbuseInfo | Response.JobsDetail.Section | 审核场景为谩骂的审核结果信息。 | Container |
Container 节点 PornInfo,AdsInfo,IllegalInfo,AbuseInfo 的内容:
节点名称(关键字) | 父节点 | 描述 | 类型 |
---|---|---|---|
HitFlag | Response.JobsDetail.Section.*Info | 用于返回该审核场景的审核结果,返回值:
|
Integer |
Score | Response.JobsDetail.Section.*Info | 该分片中审核的结果分数,分数越高表示越敏感。 | Integer |
Keywords | Response.JobsDetail.Section.*Info | 在当前审核场景下命中的关键词,多关键词以, 分隔。 |
String |
Container 节点 UserInfo 的内容:
节点名称(关键字) | 父节点 | 描述 | 类型 |
---|---|---|---|
TokenId | Response.JobsDetail.UserInfo | 用户业务TokenId。 | String |
Nickname | Response.JobsDetail.UserInfo | 用户业务Nickname。 | String |
DeviceId | Response.JobsDetail.UserInfo | 用户业务DeviceId。 | String |
AppId | Response.JobsDetail.UserInfo | 用户业务AppId。 | String |
Room | Response.JobsDetail.UserInfo | 用户业务Room。 | String |
IP | Response.JobsDetail.UserInfo | 用户业务IP。 | String |
Type | Response.JobsDetail.UserInfo | 用户业务Type。 | String |
错误码
该请求操作无特殊错误信息,常见的错误信息请参见 错误码 文档。
实际案例
案例一:审核一个存储在对象存储 COS 中的文本文件
请求
POST /text/auditing HTTP/1.1
Authorization: q-sign-algorithm=sha1&q-ak=AKIDZfbOAo7cllgPvF9cXFrJD0a1ICvR****&q-sign-time=1497530202;1497610202&q-key-time=1497530202;1497610202&q-header-list=&q-url-param-list=&q-signature=28e9a4986df11bed0255e97ff90500557e0e****
Host: examplebucket-1250000000.ci.ap-beijing.myqcloud.com
Content-Length: 166
Content-Type: application/xml
<Request>
<Input>
<Object>a.txt</Object>
<DataId>123-fdrsg-123</DataID>
</Input>
<Conf>
<DetectType>Porn,Ads,Illegal,Abuse</DetectType>
<Callback>http://callback.com/</Callback>
<BizType>b81d45f94b91a683255e9a9506f45a11</BizType>
</Conf>
</Request>
响应
HTTP/1.1 200 OK
Content-Type: application/xml
Content-Length: 230
Connection: keep-alive
Date: Thu, 15 Jun 2017 12:37:29 GMT
Server: tencent-ci
x-ci-request-id: NTk0MjdmODlfMjQ4OGY3XzYzYzhf****
<Response>
<JobsDetail>
<DataId>123-fdrsg-123</DataID>
<JobId>vab1ca9fc8a3ed11ea834c525400863904</JobId>
<State>Submitted</State>
<CreationTime>2019-07-07T12:12:12+0800</CreationTime>
</JobsDetail>
<RequestId>xxxxxxxxxxxxxx</RequestId>
</Response>
案例二:审核一段文本内容
请求
POST /text/auditing HTTP/1.1
Authorization: q-sign-algorithm=sha1&q-ak=AKIDZfbOAo7cllgPvF9cXFrJD0a1ICvR****&q-sign-time=1497530202;1497610202&q-key-time=1497530202;1497610202&q-header-list=&q-url-param-list=&q-signature=28e9a4986df11bed0255e97ff90500557e0e****
Host: examplebucket-1250000000.ci.ap-beijing.myqcloud.com
Content-Length: 166
Content-Type: application/xml
<Request>
<Input>
<Content>54uZ5Ye75omL</Content>
</Input>
<Conf>
<DetectType>Porn,Ads,Illegal,Abuse</DetectType>
<BizType>b81d45f94b91a683255e9a9506f45a11</BizType>
</Conf>
</Request>
响应
HTTP/1.1 200 OK
Content-Type: application/xml
Content-Length: 230
Connection: keep-alive
Date: Thu, 15 Jun 2017 12:37:29 GMT
Server: tencent-ci
x-ci-request-id: NTk0MjdmODlfMjQ4OGY3XzYzYzhf****
<Response>
<JobsDetail>
<JobId>vab1ca9fc8a3ed11ea834c525400863904</JobId>
<Content>54uZ5Ye75omL</Content>
<State>Success</State>
<CreationTime>2019-07-07T12:12:12+0800</CreationTime>
<SectionCount>1</SectionCount>
<Label>Illegal</Label>
<Result>2</Result>
<PornInfo>
<HitFlag>0</HitFlag>
<Count>0</Count>
</PornInfo>
<Section>
<StartByte>0</StartByte>
<Label>Illegal</Label>
<Result>2</Result>
<PornInfo>
<HitFlag>0</HitFlag>
<Score>0</Score>
<Keywords/>
</PornInfo>
</Section>
</JobsDetail>
<RequestId>xxxxxxxxxxxxxx</RequestId>
</Response>