tencent cloud

文档反馈

提交文本审核任务

最后更新时间:2024-01-20 11:24:09

    功能描述

    本接口用于提交一个文本审核任务。文本审核功能为异步任务方式,您可以通过提交文本审核任务审核您的文本文件,然后通过 查询文本审核任务接口文本审核回调 查询审核结果。
    该接口支持情况如下:
    说明:
    支持审核腾讯云 COS 上的文本文件。
    支持直接审核纯文本信息,需要先经过 base64 编码。
    支持的文本审核方式:
    直接传入文本内容进行审核(仅支持 UTF8 编码)
    审核 COS 上的文本内容的文件(仅支持 UTF8 编码和 GBK 编码的内容)
    传入文本文件的 URL 链接进行审核(仅支持 UTF8 编码和 GBK 编码的内容)
    支持对文本文件进行自动检测,通过深度学习技术,识别可能令人反感、不安全或不适宜的违规文本内容。
    支持设置回调地址 Callback 获取检测结果,或通过 查询文本审核任务结果接口 主动轮询获取审核结果详情。
    支持识别多种违规场景,包括:色情、违法、广告等场景。
    支持根据不同的业务场景配置自定义的审核策略。

    费用说明

    每个审核场景单独计费,例如您选择审核涉黄、广告两种场景,则审核1个文本计2次审核费用。
    调用接口会产生文本审核费用 和 COS 读请求费用
    如果文本属于 COS 上的低频存储类型,调用审核会产生 COS 低频数据取回费用
    不支持审核 COS 上的归档存储类型和深度归档存储类型的文本,如果需要审核此类型文本,请先 恢复归档文件

    限制说明

    文本内容大小支持:当审核的内容为纯文本信息,需要先经过 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节点里,选择ObjectContent会有不同的响应体:
    选择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
    用于返回该审核场景的审核结果,返回值:
    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
    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>