文本内容同步审核

最近更新时间:2024-10-28 16:06:21

我的收藏

功能描述

本接口用于进行文本内容的直接审核,请求方式为同步请求。该接口的支持情况如下:
直接审核纯文本信息,需要先经过 base64 编码(仅支持 UTF8 编码)。
支持识别多种违规场景,包括:色情、违法、广告等场景。
支持根据不同的业务场景 配置自定义的审核策略

授权说明

通过子账号使用时,需要授予 ci:CreateAuditingTextJob权限,详情请参见 数据万象 action

服务开通

使用该功能需提前开通数据万象,并绑定存储桶。详情请参见 绑定存储桶

使用限制

使用该接口时,请先确认相关限制条件。详情请参见 使用限制
长度限制:当审核的内容为纯文本信息,需要先经过 base64 编码,文本编码前的原文长度不能超过10000个 UTF8 编码字符。
文本审核语言支持:目前支持中文、中英混合、阿拉伯数字的检测。
接口默认并发数量:100。

费用说明

每个审核场景单独计费,例如您选择审核色情、广告两种场景,则审核1个文本,计2次审核费用。
调用接口会产生 文本审核费用COS 读请求费用
如果文本属于 COS 上的低频存储类型,调用审核会产生 COS 低频数据取回费用


推荐使用 SDK

数据万象 SDK 提供了完整的 Demo、自动集成、计算签名等能力。您可通过 SDK 方便快捷地调用接口。点此查看 SDK 文档

请求

请求示例

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>
<Content></Content>
<DataId></DataId>
</Input>
<Conf>
<Callback></Callback>
<CallbackVersion></CallbackVersion>
<CallbackType></CallbackType>
<BizType></BizType>
<Freeze>
<PornScore></PornScore>
</Freeze>
</Conf>
</Request>
具体的数据描述如下:
节点名称(关键字)
父节点
描述
类型
是否必选
Request
文本审核的具体配置项。
Container
Container 类型 Request 的具体数据描述如下:
节点名称(关键字)
父节点
描述
类型
是否必选
Input
Request
需要审核的内容。
Container
Conf
Request
审核规则配置。
Container
Container 类型 Input 的具体数据描述如下:
节点名称(关键字)
父节点
描述
类型
是否必选
Content
Request.Input
当传入的内容为纯文本信息,需要先经过 base64 编码,文本编码前的原文长度不能超过 10000 个 UTF8 编码字符。若超出长度限制,接口将会报错。
注意:目前支持中文、中英混合、阿拉伯数字的检测与审核。如有其他语言需要,请 联系我们
String
DataId
Request.Input
该字段在审核结果中会返回原始内容,长度限制为512字节。您可以使用该字段对待审核的数据进行唯一业务标识。
String
UserInfo
Request.Input
用户业务字段。
Container
Container 节点 UserInfo 的内容:
节点名称(关键字)
描述
类型
是否必选
TokenId
一般用于表示账号信息,长度不超过128字节。
String
Nickname
一般用于表示昵称信息,长度不超过128字节。
String
DeviceId
一般用于表示设备信息,长度不超过128字节。
String
AppId
一般用于表示 App 的唯一标识,长度不超过128字节。
String
Room
一般用于表示房间号信息,长度不超过128字节。
String
IP
一般用于表示 IP 地址信息,长度不超过128字节。
String
Type
一般用于表示业务类型,长度不超过128字节。
String
ReceiveTokenId
一般用于表示接收消息的用户账号,长度不超过128字节。
String
Gender
一般用于表示性别信息,长度不超过128字节。
String
Level
一般用于表示等级信息,长度不超过128字节。
String
Role
一般用于表示角色信息,长度不超过128字节。
String
Container 类型 Conf 的具体数据描述如下:
节点名称(关键字)
父节点
描述
类型
是否必选
BizType
Request.Conf
表示审核策略的唯一标识,您可以通过控制台上的审核策略页面,配置您希望审核的场景,如色情、广告、违法等,配置指引: 设置公共审核策略。您可以在控制台上获取到 BizType。BizType 填写时,此条审核请求将按照该审核策略中配置的场景进行审核。BizType 不填写时,将自动使用默认的审核策略。
String
Callback
Request.Conf
审核结果可以回调形式发送至您的回调地址,支持以 http:// 或者 https:// 开头的地址,例如:http://www.callback.com。当 Input 使用 Content 时,该参数不生效,结果会直接返回。
String
CallbackVersion
Request.Conf
回调内容的结构,有效值:Simple(回调内容包含基本信息)、Detail(回调内容包含详细信息)。默认为 Simple。
String
CallbackType
Request.Conf
回调片段类型,有效值:1(回调全部文本片段)、2(回调违规文本片段)。默认为 1。
Integer
Freeze
Request.Conf
可通过该字段,设置根据审核结果给出的不同分值,对文本文件进行自动冻结,仅当 input 中审核的文本为object时有效。
Container
Container 类型 Freeze 的具体数据描述如下:
节点名称(关键字)
父节点
描述
类型
是否必选
PornScore
Request.Conf.Freeze
取值为[0,100],表示当色情审核结果大于或等于该分数时,自动进行冻结操作。不填写则表示不自动冻结,默认值为空。
Integer
AdsScore
Request.Conf.Freeze
取值为[0,100],表示当广告审核结果大于或等于该分数时,自动进行冻结操作。不填写则表示不自动冻结,默认值为空。
Integer
IllegalScore
Request.Conf.Freeze
取值为[0,100],表示当违法审核结果大于或等于该分数时,自动进行冻结操作。不填写则表示不自动冻结,默认值为空。
Integer
AbuseScore
Request.Conf.Freeze
取值为[0,100],表示当谩骂审核结果大于或等于该分数时,自动进行冻结操作。不填写则表示不自动冻结,默认值为空。
Integer
其他审核场景的冻结参数,请 联系服务人员 咨询。

响应

响应头

此接口仅返回公共响应头部,详情请参见 公共响应头部 文档。

响应体

该响应体返回为 application/xml 数据,包含完整节点数据的内容展示如下:
<Response>
<JobsDetail>
<DataId></DataId>
<JobId></JobId>
<State></State>
<CreationTime></CreationTime>
<Code>Success</Code>
<Message>Success</Message>
<SectionCount></SectionCount>
<Result>1</Result>
<ContextText></ContextText>
<PornInfo>
<HitFlag></HitFlag>
<Count></Count>
</PornInfo>
<Section>
<StartByte></StartByte>
<PornInfo>
<HitFlag></HitFlag>
<Score></Score>
<Keywords></Keywords>
</PornInfo>
</Section>
</JobsDetail>
<RequestId></RequestId>
</Response>
具体的数据内容如下:
节点名称(关键字)
父节点
描述
类型
Response
文本审核返回的具体响应内容。
Container
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
ContextText
Response.JobsDetail
当启用了文本上下文关联审核能力时,会返回该字段,同时返回当前审核的文本内容及关联的文本内容,以原文形式返回。
注意:使用上下文关联能力,在发起文本审核时需要结合UserInfo字段来使用,表示关联的上下文仅属于某个用户ID,不同用户ID上传的文本内容不会互相关联。
如需开启上下文关联能力,请 联系服务人员 开通。
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
UserInfo
Response.JobsDetail
用户业务字段。
Container
ListInfo
Response.JobsDetail
账号黑白名单结果。
Container
Container 节点 PornInfo,AdsInfo,IllegalInfo,AbuseInfo 的内容:
节点名称(关键字)
父节点
描述
类型
HitFlag
Response.JobsDetail.*Info
用于返回该审核场景的审核结果,返回值:0:正常。1:确认为当前场景的违规内容。2:疑似为当前场景的违规内容。
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
用于返回该审核场景的审核结果,返回值:0:正常。1:确认为当前场景的违规内容。2:疑似为当前场景的违规内容。
Integer
Score
Response.JobsDetail.Section.*Info
该分片中审核的结果分数,分数越高表示越敏感。
Integer
Keywords
Response.JobsDetail.Section.*Info
在当前审核场景下命中的关键词,多关键词以,分隔。
String
LibResults
Response.JobsDetail.Section.*Info
该字段用于返回基于风险库识别的结果。注意:未命中风险库中样本时,此字段不返回。
Container Array
SubLabel
Response.JobsDetail.Section.*Info
该字段表示审核命中的具体子标签,例如:Porn 下的 SexBehavior 子标签。注意:该字段可能返回空,表示未命中具体的子标签
String
Container 节点 LibResults 的内容:
节点名称(关键字)
父节点
描述
类型
LibType
Response.JobsDetail.Section.*Info.LibResults
命中的风险库类型,取值为1(预设黑白库)和2(自定义风险库)。
Integer
LibName
Response.JobsDetail.Section.*Info.LibResults
命中的风险库名称。
String
Keywords
Response.JobsDetail.Section.*Info.LibResults
命中的库中关键词。该参数可能会有多个返回值,代表命中的多个关键词。
String Array
Container 节点 UserInfo 的内容:
节点名称(关键字)
描述
类型
是否必选
TokenId
一般用于表示账号信息,长度不超过128字节。
String
Nickname
一般用于表示昵称信息,长度不超过128字节。
String
DeviceId
一般用于表示设备信息,长度不超过128字节。
String
AppId
一般用于表示 App 的唯一标识,长度不超过128字节。
String
Room
一般用于表示房间号信息,长度不超过128字节。
String
IP
一般用于表示 IP 地址信息,长度不超过128字节。
String
Type
一般用于表示业务类型,长度不超过128字节。
String
ReceiveTokenId
一般用于表示接收消息的用户账号,长度不超过128字节。
String
Gender
一般用于表示性别信息,长度不超过128字节。
String
Level
一般用于表示等级信息,长度不超过128字节。
String
Role
一般用于表示角色信息,长度不超过128字节。
String
Container 节点 ListInfo 的内容:
节点名称(关键字)
父节点
描述
类型
ListResults
Response.JobsDetail.ListInfo
命中的所有名单结果。
Container Array
Container 节点 ListResults 的内容:
节点名称(关键字)
父节点
描述
类型
ListType
Response.JobsDetail.ListInfo.ListResults
命中的名单类型,取值为0(白名单)和1(黑名单)。
Integer
ListName
Response.JobsDetail.ListInfo.ListResults
命中的名单名称。
String
Entity
Response.JobsDetail.ListInfo.ListResults
命中了名单中的哪条内容。
String

错误码

该请求操作无特殊错误信息,常见的错误信息请参见 错误码 文档。

实际案例

请求

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>
<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>