有奖征文:轻量对象存储LighthouseCOS用户实践> HOT

简介

本文档提供关于文本审核的 API 概览和 SDK 示例代码。
注意
旧版本可能存在 bug,使用时建议升级到 最新版本
API
操作描述
用于提交一个文本审核任务
用于查询指定的文本审核任务

提交文本审核任务

功能说明

用于提交一个文本审核任务。

方法原型

public Guzzle\\Service\\Resource\\Model detectText(array $args = array());

请求示例

示例一:文本内容审核

<?php

require dirname(__FILE__) . '/../vendor/autoload.php';

$secretId = "SECRETID"; //替换为用户的 secretId,请登录访问管理控制台进行查看和管理,https://console.cloud.tencent.com/cam/capi
$secretKey = "SECRETKEY"; //替换为用户的 secretKey,请登录访问管理控制台进行查看和管理,https://console.cloud.tencent.com/cam/capi
$region = "ap-beijing"; //替换为用户的 region,已创建桶归属的region可以在控制台查看,https://console.cloud.tencent.com/cos5/bucket
$cosClient = new Qcloud\\Cos\\Client(
array(
'region' => $region,
'scheme' => 'https', // 审核时必须为https
'credentials'=> array(
'secretId' => $secretId ,
'secretKey' => $secretKey)));

try {
$content = '敏感词';
$result = $cosClient->detectText(array(
'Bucket' => 'examplebucket-1250000000', //存储桶名称,由BucketName-Appid 组成,可以在COS控制台查看 https://console.cloud.tencent.com/cos5/bucket
'Input' => array(
'Content' => base64_encode($content), // 文本需base64_encode
// 'DataId' => '', // 选填 该字段在审核结果中会返回原始内容,长度限制为512字节。您可以使用该字段对待审核的数据进行唯一业务标识。
),
// 'Conf' => array(
// 'BizType' => '',
// ), // 非必选,在BizType不传的情况下,走默认策略及默认审核场景。
));
// 请求成功
print_r($result);
} catch (\\Exception $e) {
// 请求失败
echo($e);
}

示例二:存储桶文本文件审核

<?php

require dirname(__FILE__) . '/../vendor/autoload.php';

$secretId = "SECRETID"; //替换为用户的 secretId,请登录访问管理控制台进行查看和管理,https://console.cloud.tencent.com/cam/capi
$secretKey = "SECRETKEY"; //替换为用户的 secretKey,请登录访问管理控制台进行查看和管理,https://console.cloud.tencent.com/cam/capi
$region = "ap-beijing"; //替换为用户的 region,已创建桶归属的region可以在控制台查看,https://console.cloud.tencent.com/cos5/bucket
$cosClient = new Qcloud\\Cos\\Client(
array(
'region' => $region,
'scheme' => 'https', // 审核时必须为https
'credentials'=> array(
'secretId' => $secretId ,
'secretKey' => $secretKey)));

try {
$result = $cosClient->detectText(array(
'Bucket' => 'examplebucket-1250000000', //存储桶名称,由BucketName-Appid 组成,可以在COS控制台查看 https://console.cloud.tencent.com/cos5/bucket
'Input' => array(
'Object' => 'test01.txt'
// 'DataId' => '', // 选填 该字段在审核结果中会返回原始内容,长度限制为512字节。您可以使用该字段对待审核的数据进行唯一业务标识。
),
// 'Conf' => array(
// 'BizType' => '',
// 'Callback' => '', // 回调URL 选填
// 'CallbackVersion' => 'Detail', // 选填 Detail、Simple 默认为 Simple
// 'Freeze' => array(
// 'PornScore' => 90,
// 'AdsScore' => 90,
// 'IllegalScore' => 90,
// 'AbuseScore' => 90,
// 'PoliticsScore' => 90,
// 'TerrorismScore' => 90,
// ), // 可通过该字段,设置根据审核结果给出的不同分值,对文本文件进行自动冻结,仅当 input 中审核的文本为 object 时有效。
// ), // 非必选,在BizType不传的情况下,走默认策略及默认审核场景。
));
// 请求成功
print_r($result);
} catch (\\Exception $e) {
// 请求失败
echo($e);
}

示例三: 文本文件URL审核

<?php

require dirname(__FILE__) . '/../vendor/autoload.php';

$secretId = "SECRETID"; //替换为用户的 secretId,请登录访问管理控制台进行查看和管理,https://console.cloud.tencent.com/cam/capi
$secretKey = "SECRETKEY"; //替换为用户的 secretKey,请登录访问管理控制台进行查看和管理,https://console.cloud.tencent.com/cam/capi
$region = "ap-beijing"; //替换为用户的 region,已创建桶归属的region可以在控制台查看,https://console.cloud.tencent.com/cos5/bucket
$cosClient = new Qcloud\\Cos\\Client(
array(
'region' => $region,
'scheme' => 'https', // 审核时必须为https
'credentials'=> array(
'secretId' => $secretId ,
'secretKey' => $secretKey)));

try {
$result = $cosClient->detectText(array(
'Bucket' => 'examplebucket-1250000000', //存储桶名称,由BucketName-Appid 组成,可以在COS控制台查看 https://console.cloud.tencent.com/cos5/bucket
'Input' => array(
'Url' => 'http://example.com/test.txt'
// 'DataId' => '', // 选填 该字段在审核结果中会返回原始内容,长度限制为512字节。您可以使用该字段对待审核的数据进行唯一业务标识。
),
// 'Conf' => array(
// 'BizType' => '',
// 'Callback' => '', // 选填 回调URL
// 'CallbackVersion' => 'Detail', // 选填 Detail、Simple 默认为 Simple
// ), // 非必选,在BizType不传的情况下,走默认策略及默认审核场景。
));
// 请求成功
print_r($result);
} catch (\\Exception $e) {
// 请求失败
echo($e);
}

参数说明

Request 中的具体数据描述如下:
节点名称(关键字)
父节点
描述
类型
是否必选
Input
Request
需要审核的内容。
Container
Conf
Request
审核规则配置。
Container
Container 类型 Input 的具体数据描述如下:
节点名称(关键字)
父节点
描述
类型
是否必选
Object
Request.Input
当前 COS 存储桶中的文本文件名称,例如在目录 test 中的文件 test.txt,则文件名称为 test/test.txt,文本文件仅支持 UTF8 编码和 GBK 编码的内容,且文件大小不得超过1MB。
String
Url
Request.Input
文本文件的完整链接,例如:https://www.test.com/test.txt
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

返回结果示例

响应参数具体含义参考 文本审核API文档

示例一:文本内容审核

//当选择 Content 时,审核结果为同步返回,可通过 响应体 查看返回结果。
GuzzleHttp\\Command\\Result Object
(
[RequestId] => NjEzYjUxMDhfZmNjYTNiMGFfNGM2NF8zNWY4Njg=
[ContentType] => application/xml
[ContentLength] => 878
[JobsDetail] => Array
(
[Code] => Success
[Message] => Array
(
)

[JobId] => st8ffc0551123311eca33f525400f3e40d
[State] => Success
[CreationTime] => 2021-09-10T20:35:20+08:00
[Content] => 5pWP5oSf6K+N
[Result] => 0
[SectionCount] => 1
[PornInfo] => Array
(
[HitFlag] => 0
[Count] => 0
)

[AdsInfo] => Array
(
[HitFlag] => 0
[Count] => 0
)

[IllegalInfo] => Array
(
[HitFlag] => 0
[Count] => 0
)

[AbuseInfo] => Array
(
[HitFlag] => 0
[Count] => 0
)

[Section] => Array
(
[0] => Array
(
)

)

)

[Bucket] => examplebucket-1250000000
[Location] => examplebucket-1250000000.ci.ap-guangzhou.myqcloud.com/text/auditing
)

示例二:存储桶文本文件审核

//当选择 Object 时,审核结果为异步返回,可通过 查询文本审核任务接口获取返回结果。
GuzzleHttp\\Command\\Result Object
(
[RequestId] => NjEzYjUxY2VfZmNjYTNiMGFfNGM0MF8zNTE0OWI=
[ContentType] => application/xml
[ContentLength] => 324
[JobsDetail] => Array
(
[Object] => exampleobject
[JobId] => st05c02c3c123411ec953452540024deb5
[State] => Submitted
[CreationTime] => 2021-09-10T20:38:38+08:00
)

[Bucket] => examplebucket-1250000000
[Location] => examplebucket-1250000000.ci.ap-guangzhou.myqcloud.com/text/auditing
)

示例三:文本文件URL审核

//当选择 url 时,审核结果为异步返回,可通过 查询文本审核任务接口获取返回结果。
GuzzleHttp\\Command\\Result Object
(
[RequestId] => NjEzYjUxY2VfZmNjYTNiMGFfNGM0MF8zNTE0OWI=
[ContentType] => application/xml
[ContentLength] => 324
[JobsDetail] => Array
(
[JobId] => st05c02c3c123411ec953452540024deb5
[State] => Submitted
[CreationTime] => 2021-09-10T20:38:38+08:00
)

[Bucket] => examplebucket-1250000000
[Location] => examplebucket-1250000000.ci.ap-guangzhou.myqcloud.com/text/auditing
)


查询文本审核任务

功能说明

用于查询文本审核任务执行情况和结果。

方法原型

public Guzzle\\Service\\Resource\\Model getDetectTextResult(array $args = array());

请求示例

<?php

require dirname(__FILE__) . '/../vendor/autoload.php';

$secretId = "SECRETID"; //替换为用户的 secretId,请登录访问管理控制台进行查看和管理,https://console.cloud.tencent.com/cam/capi
$secretKey = "SECRETKEY"; //替换为用户的 secretKey,请登录访问管理控制台进行查看和管理,https://console.cloud.tencent.com/cam/capi
$region = "ap-beijing"; //替换为用户的 region,已创建桶归属的region可以在控制台查看,https://console.cloud.tencent.com/cos5/bucket
$cosClient = new Qcloud\\Cos\\Client(
array(
'region' => $region,
'scheme' => 'https', // 审核时必须为https
'credentials'=> array(
'secretId' => $secretId ,
'secretKey' => $secretKey)));
try {
$result = $cosClient->getDetectTextResult(array(
'Bucket' => 'examplebucket-1250000000', //存储桶名称,由BucketName-Appid 组成,可以在COS控制台查看 https://console.cloud.tencent.com/cos5/bucket
'Key' => 'examplejobid', // JobId
));
// 请求成功
print_r($result);
} catch (\\Exception $e) {
// 请求失败
echo($e);
}

参数说明

参数名称
类型
描述
是否必填
Bucket
String
存储桶名称,格式:BucketName-APPID
Key
String
需要查询的任务 ID

返回结果示例

响应参数具体含义参考 文本审核API文档
GuzzleHttp\\Command\\Result Object
(
[RequestId] => NjEzYjU0NDhfNzgwYzdkNjRfMThiOV8zNjQ0Y2Q=
[ContentType] => application/xml
[ContentLength] => 725
[JobsDetail] => Array
(
[Code] => Success
[Message] =>
[JobId] => st7a813188123511ecb6485254009f6100
[State] => Success
[CreationTime] => 2021-09-10T20:49:03+08:00
[Object] => exampleobject
[SectionCount] => 1
[Result] => 0
[PornInfo] => Array
(
[HitFlag] => 0
[Count] => 0
)

[AdsInfo] => Array
(
[HitFlag] => 0
[Count] => 0
)

[Section] => Array
(
[0] => Array
(
)

)

)

[Key] => st7a813188123511ecb6485254009f6100
[Bucket] => examplebucket-1250000000
[Location] => examplebucket-1250000000.ci.ap-guangzhou.myqcloud.com/text/auditing/st7a813188123511ecb6485254009f6100
)