# frozen_string_literal: true
# Copyright (c) 2017-2018 THL A29 Limited, a Tencent company. All Rights Reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
module TencentCloud
module Tms
module V20201229
# 文本审核返回的详细结果
class DetailResults < TencentCloud::Common::AbstractModel
# @param Label: 该字段用于返回检测结果所对应的全部恶意标签。
返回值:**Normal**:正常,**Porn**:色情,**Abuse**:谩骂,**Ad**:广告,**Custom**:自定义违规;以及其他令人反感、不安全或不适宜的内容类型。
# @type Label: String
# @param Suggestion: 该字段用于返回对应当前标签的后续操作建议。当您获取到判定结果后,返回值表示系统推荐的后续操作;建议您按照业务所需,对不同违规类型与建议值进行处理。
返回值:**Block**:建议屏蔽,**Review** :建议人工复审,**Pass**:建议通过
# 注意:此字段可能返回 null,表示取不到有效值。
# @type Suggestion: String
# @param Keywords: 该字段用于返回检测文本命中的关键词信息,用于标注文本违规的具体原因(如:*加我微信*)。该参数可能会有多个返回值,代表命中的多个关键词;如返回值为空且Score不为空,则代表识别结果所对应的恶意标签(Label)是来自于语义模型判断的返回值。
# 注意:此字段可能返回 null,表示取不到有效值。
# @type Keywords: Array
# @param Score: 该字段用于返回当前标签(Label)下的置信度,取值范围:0(**置信度最低**)-100(**置信度最高** ),越高代表文本越有可能属于当前返回的标签;如:*色情 99*,则表明该文本非常有可能属于色情内容;*色情 0*,则表明该文本不属于色情内容。
# 注意:此字段可能返回 null,表示取不到有效值。
# @type Score: Integer
# @param LibType: 该字段**仅当Label为Custom自定义关键词时有效**,用于返回自定义关键词对应的词库类型,取值为**1**(黑白库)和**2**(自定义关键词库),若未配置自定义关键词库,则默认值为1(黑白库匹配)。
# 注意:此字段可能返回 null,表示取不到有效值。
# @type LibType: Integer
# @param LibId: 该字段**仅当Label为Custom:自定义关键词时该参数有效**,用于返回自定义库的ID,以方便自定义库管理和配置。
# 注意:此字段可能返回 null,表示取不到有效值。
# @type LibId: String
# @param LibName: 该字段**仅当Label为Custom:自定义关键词时该参数有效**,用于返回自定义库的名称,以方便自定义库管理和配置。
# 注意:此字段可能返回 null,表示取不到有效值。
# @type LibName: String
# @param SubLabel: 该字段用于返回当前标签(Label)下的二级标签。
# 注意:此字段可能返回 null,表示取不到有效值。
# @type SubLabel: String
# @param Tags: 该字段用于返回当前一级标签(Label)下的关键词、子标签及分数。
# 注意:此字段可能返回 null,表示取不到有效值。
# @type Tags: Array
attr_accessor :Label, :Suggestion, :Keywords, :Score, :LibType, :LibId, :LibName, :SubLabel, :Tags
def initialize(label=nil, suggestion=nil, keywords=nil, score=nil, libtype=nil, libid=nil, libname=nil, sublabel=nil, tags=nil)
@Label = label
@Suggestion = suggestion
@Keywords = keywords
@Score = score
@LibType = libtype
@LibId = libid
@LibName = libname
@SubLabel = sublabel
@Tags = tags
end
def deserialize(params)
@Label = params['Label']
@Suggestion = params['Suggestion']
@Keywords = params['Keywords']
@Score = params['Score']
@LibType = params['LibType']
@LibId = params['LibId']
@LibName = params['LibName']
@SubLabel = params['SubLabel']
unless params['Tags'].nil?
@Tags = []
params['Tags'].each do |i|
tag_tmp = Tag.new
tag_tmp.deserialize(i)
@Tags << tag_tmp
end
end
end
end
# 用于表示业务用户对应的设备信息
class Device < TencentCloud::Common::AbstractModel
# @param IP: 该字段表示业务用户对应设备的IP地址。
# 备注:目前仅支持IPv4地址记录,不支持IPv6地址记录。
# @type IP: String
# @param Mac: 该字段表示业务用户对应的MAC地址,以方便设备识别与管理;其格式与取值与标准MAC地址一致。
# @type Mac: String
# @param TokenId: *内测中,敬请期待。*
# @type TokenId: String
# @param DeviceId: *内测中,敬请期待。*
# @type DeviceId: String
# @param IMEI: 该字段表示业务用户对应设备的**IMEI码**(国际移动设备识别码),该识别码可用于识别每一部独立的手机等移动通信设备,方便设备识别与管理。
备注:格式为**15-17位纯数字**。
# @type IMEI: String
# @param IDFA: **iOS设备专用**,该字段表示业务用户对应的**IDFA**(广告标识符),这是由苹果公司提供的用于标识用户的广告标识符,由一串16进制的32位数字和字母组成。
# 备注:苹果公司自2021年iOS14更新后允许用户手动关闭或者开启IDFA,故此字符串标记有效性可能有所降低。
# @type IDFA: String
# @param IDFV: **iOS设备专用**,该字段表示业务用户对应的**IDFV**(应用开发商标识符),这是由苹果公司提供的用于标注应用开发商的标识符,由一串16进制的32位数字和字母组成,可被用于唯一标识设备。
# @type IDFV: String
attr_accessor :IP, :Mac, :TokenId, :DeviceId, :IMEI, :IDFA, :IDFV
def initialize(ip=nil, mac=nil, tokenid=nil, deviceid=nil, imei=nil, idfa=nil, idfv=nil)
@IP = ip
@Mac = mac
@TokenId = tokenid
@DeviceId = deviceid
@IMEI = imei
@IDFA = idfa
@IDFV = idfv
end
def deserialize(params)
@IP = params['IP']
@Mac = params['Mac']
@TokenId = params['TokenId']
@DeviceId = params['DeviceId']
@IMEI = params['IMEI']
@IDFA = params['IDFA']
@IDFV = params['IDFV']
end
end
# 账号风险检测结果
class RiskDetails < TencentCloud::Common::AbstractModel
# @param Label: 该字段用于返回账号信息检测对应的风险类别,取值为:**RiskAccount**(账号存在风险)、**RiskIP**(IP地址存在风险)、**RiskIMEI**(移动设备识别码存在风险)。
# @type Label: String
# @param Level: 该字段用于返回账号信息检测对应的风险等级,取值为:**1**(疑似存在风险)和**2**(存在恶意风险)。
# @type Level: Integer
attr_accessor :Label, :Level
def initialize(label=nil, level=nil)
@Label = label
@Level = level
end
def deserialize(params)
@Label = params['Label']
@Level = params['Level']
end
end
# 该字段用于返回审核结果明细字段的标签及分数
class Tag < TencentCloud::Common::AbstractModel
# @param Keyword: 该字段用于返回命中的关键词
# 注意:此字段可能返回 null,表示取不到有效值。
# @type Keyword: String
# @param SubLabel: 该字段用于返回子标签
# 注意:此字段可能返回 null,表示取不到有效值。
# @type SubLabel: String
# @param Score: 该字段用于返回子标签对应的分数
# 注意:此字段可能返回 null,表示取不到有效值。
# @type Score: Integer
attr_accessor :Keyword, :SubLabel, :Score
def initialize(keyword=nil, sublabel=nil, score=nil)
@Keyword = keyword
@SubLabel = sublabel
@Score = score
end
def deserialize(params)
@Keyword = params['Keyword']
@SubLabel = params['SubLabel']
@Score = params['Score']
end
end
# TextModeration请求参数结构体
class TextModerationRequest < TencentCloud::Common::AbstractModel
# @param Content: 该字段表示待检测对象的文本内容,文本需要按utf-8格式编码,长度不能超过10000个字符(按unicode编码计算),并进行 Base64加密
# @type Content: String
# @param BizType: 该字段表示策略的具体编号,用于接口调度,在内容安全控制台中可配置。若不传入Biztype参数(留空),则代表采用默认的识别策略;传入则会在审核时根据业务场景采取不同的审核策略。
备注:Biztype仅为数字、字母与下划线的组合,长度为3-32个字符;不同Biztype关联不同的业务场景与识别能力策略,调用前请确认正确的Biztype
# @type BizType: String
# @param DataId: 该字段表示您为待检测对象分配的数据ID,传入后可方便您对文件进行标识和管理。
取值:由英文字母(大小写均可)、数字及四个特殊符号(_,-,@,#)组成,**长度不超过64个字符**
# @type DataId: String
# @param User: 该字段表示待检测对象对应的用户相关信息,传入后可便于甄别相应违规风险用户
# @type User: :class:`Tencentcloud::Tms.v20201229.models.User`
# @param Device: 该字段表示待检测对象对应的设备相关信息,传入后可便于甄别相应违规风险设备
# @type Device: :class:`Tencentcloud::Tms.v20201229.models.Device`
attr_accessor :Content, :BizType, :DataId, :User, :Device
def initialize(content=nil, biztype=nil, dataid=nil, user=nil, device=nil)
@Content = content
@BizType = biztype
@DataId = dataid
@User = user
@Device = device
end
def deserialize(params)
@Content = params['Content']
@BizType = params['BizType']
@DataId = params['DataId']
unless params['User'].nil?
@User = User.new
@User.deserialize(params['User'])
end
unless params['Device'].nil?
@Device = Device.new
@Device.deserialize(params['Device'])
end
end
end
# TextModeration返回参数结构体
class TextModerationResponse < TencentCloud::Common::AbstractModel
# @param BizType: 该字段用于返回请求参数中的BizType参数
# @type BizType: String
# @param Label: 该字段用于返回检测结果(DetailResults)中所对应的**优先级最高的恶意标签**,表示模型推荐的审核结果,建议您按照业务所需,对不同违规类型与建议值进行处理。
返回值:**Normal**:正常,**Porn**:色情,**Abuse**:谩骂,**Ad**:广告,**Custom**:自定义违规;以及其他令人反感、不安全或不适宜的内容类型
# @type Label: String
# @param Suggestion: 该字段用于返回后续操作建议。当您获取到判定结果后,返回值表示系统推荐的后续操作;建议您按照业务所需,对不同违规类型与建议值进行处理。
返回值:**Block**:建议屏蔽,**Review** :建议人工复审,**Pass**:建议通过
# @type Suggestion: String
# @param Keywords: 该字段用于返回当前标签(Label)下被检测文本命中的关键词信息,用于标注文本违规的具体原因(如:*加我微信*)。该参数可能会有多个返回值,代表命中的多个关键词;如返回值为空且Score不为空,则代表识别结果所对应的恶意标签(Label)是来自于语义模型判断的返回值
# 注意:此字段可能返回 null,表示取不到有效值。
# @type Keywords: Array
# @param Score: 该字段用于返回当前标签(Label)下的置信度,取值范围:0(**置信度最低**)-100(**置信度最高** ),越高代表文本越有可能属于当前返回的标签;如:*色情 99*,则表明该文本非常有可能属于色情内容;*色情 0*,则表明该文本不属于色情内容
# @type Score: Integer
# @param DetailResults: 该字段用于返回基于文本风险库审核的详细结果,返回值信息可参阅对应数据结构(DetailResults)的详细描述
# 注意:此字段可能返回 null,表示取不到有效值。
# @type DetailResults: Array
# @param RiskDetails: 该字段用于返回文本检测中存在违规风险的账号检测结果,主要包括违规风险类别和风险等级信息,具体内容可参阅对应数据结构(RiskDetails)的详细描述
# 注意:此字段可能返回 null,表示取不到有效值。
# @type RiskDetails: Array
# @param Extra: 该字段用于返回根据您的需求配置的额外附加信息(Extra),如未配置则默认返回值为空。
备注:不同客户或Biztype下返回信息不同,如需配置该字段请提交工单咨询或联系售后专员处理
# 注意:此字段可能返回 null,表示取不到有效值。
# @type Extra: String
# @param DataId: 该字段用于返回检测对象对应请求参数中的DataId,与输入的DataId字段中的内容对应
# 注意:此字段可能返回 null,表示取不到有效值。
# @type DataId: String
# @param SubLabel: 该字段用于返回当前标签(Label)下的二级标签。
# 注意:此字段可能返回 null,表示取不到有效值。
# @type SubLabel: String
# @param ContextText: 该字段用于返回上下文关联文本
# 注意:此字段可能返回 null,表示取不到有效值。
# @type ContextText: String
# @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
# @type RequestId: String
attr_accessor :BizType, :Label, :Suggestion, :Keywords, :Score, :DetailResults, :RiskDetails, :Extra, :DataId, :SubLabel, :ContextText, :RequestId
def initialize(biztype=nil, label=nil, suggestion=nil, keywords=nil, score=nil, detailresults=nil, riskdetails=nil, extra=nil, dataid=nil, sublabel=nil, contexttext=nil, requestid=nil)
@BizType = biztype
@Label = label
@Suggestion = suggestion
@Keywords = keywords
@Score = score
@DetailResults = detailresults
@RiskDetails = riskdetails
@Extra = extra
@DataId = dataid
@SubLabel = sublabel
@ContextText = contexttext
@RequestId = requestid
end
def deserialize(params)
@BizType = params['BizType']
@Label = params['Label']
@Suggestion = params['Suggestion']
@Keywords = params['Keywords']
@Score = params['Score']
unless params['DetailResults'].nil?
@DetailResults = []
params['DetailResults'].each do |i|
detailresults_tmp = DetailResults.new
detailresults_tmp.deserialize(i)
@DetailResults << detailresults_tmp
end
end
unless params['RiskDetails'].nil?
@RiskDetails = []
params['RiskDetails'].each do |i|
riskdetails_tmp = RiskDetails.new
riskdetails_tmp.deserialize(i)
@RiskDetails << riskdetails_tmp
end
end
@Extra = params['Extra']
@DataId = params['DataId']
@SubLabel = params['SubLabel']
@ContextText = params['ContextText']
@RequestId = params['RequestId']
end
end
# 用于表示业务用户的账号相关信息
class User < TencentCloud::Common::AbstractModel
# @param UserId: 该字段表示业务用户ID,填写后,系统可根据账号过往违规历史优化审核结果判定,有利于存在可疑违规风险时的辅助判断。
# 备注:该字段可传入微信openid、QQopenid、字符串等账号信息,与账号类别参数(AccountType)配合使用可确定唯一账号。
# @type UserId: String
# @param Nickname: 该字段表示业务用户对应的账号昵称信息。
# @type Nickname: String
# @param AccountType: 该字段表示业务用户ID对应的账号类型,取值:**1**-微信uin,**2**-QQ号,**3**-微信群uin,**4**-qq群号,**5**-微信openid,**6**-QQopenid,**7**-其它string。
# 该字段与账号ID参数(UserId)配合使用可确定唯一账号。
# @type AccountType: Integer
# @param Gender: 该字段表示业务用户对应账号的性别信息。
# 取值:**0**(默认值,代表性别未知)、**1**(男性)、**2**(女性)。
# @type Gender: Integer
# @param Age: 该字段表示业务用户对应账号的年龄信息。
# 取值:**0**(默认值,代表年龄未知)-(**自定义年龄上限**)之间的整数。
# @type Age: Integer
# @param Level: 该字段表示业务用户对应账号的等级信息。
# 取值:**0**(默认值,代表等级未知)、**1**(等级较低)、**2**(等级中等)、**3**(等级较高),目前**暂不支持自定义等级**。
# @type Level: Integer
# @param Phone: 该字段表示业务用户对应账号的手机号信息,支持全球各地区手机号的记录。
# 备注:请保持手机号格式的统一,如区号格式(086/+86)等。
# @type Phone: String
# @param HeadUrl: 该字段表示业务用户头像图片的访问链接(URL),支持PNG、JPG、JPEG、BMP、GIF、WEBP格式。
# 备注:头像图片大小不超过5MB,建议分辨率不低于256x256;图片下载时间限制为3秒,超过则会返回下载超时。
# @type HeadUrl: String
# @param Desc: 该字段表示业务用户的简介信息,支持汉字、英文及特殊符号,长度不超过5000个汉字字符。
# @type Desc: String
# @param RoomId: 该字段表示业务群聊场景时的房间ID。
# @type RoomId: String
# @param ReceiverId: 该字段表示消息接受者ID
# @type ReceiverId: String
# @param SendTime: 消息生成时间,精确到毫秒
# @type SendTime: Integer
attr_accessor :UserId, :Nickname, :AccountType, :Gender, :Age, :Level, :Phone, :HeadUrl, :Desc, :RoomId, :ReceiverId, :SendTime
def initialize(userid=nil, nickname=nil, accounttype=nil, gender=nil, age=nil, level=nil, phone=nil, headurl=nil, desc=nil, roomid=nil, receiverid=nil, sendtime=nil)
@UserId = userid
@Nickname = nickname
@AccountType = accounttype
@Gender = gender
@Age = age
@Level = level
@Phone = phone
@HeadUrl = headurl
@Desc = desc
@RoomId = roomid
@ReceiverId = receiverid
@SendTime = sendtime
end
def deserialize(params)
@UserId = params['UserId']
@Nickname = params['Nickname']
@AccountType = params['AccountType']
@Gender = params['Gender']
@Age = params['Age']
@Level = params['Level']
@Phone = params['Phone']
@HeadUrl = params['HeadUrl']
@Desc = params['Desc']
@RoomId = params['RoomId']
@ReceiverId = params['ReceiverId']
@SendTime = params['SendTime']
end
end
end
end
end