# -*- coding: utf8 -*-
# Copyright (c) 2017-2021 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.
import warnings
from tencentcloud.common.abstract_model import AbstractModel
class DetailResults(AbstractModel):
"""文本审核返回的详细结果
"""
def __init__(self):
r"""
:param _Label: 该字段用于返回检测结果所对应的全部恶意标签。<br>返回值:**Normal**:正常,**Porn**:色情,**Abuse**:谩骂,**Ad**:广告;以及其他令人反感、不安全或不适宜的内容类型。
:type Label: str
:param _Suggestion: 该字段用于返回对应当前标签的后续操作建议。当您获取到判定结果后,返回值表示系统推荐的后续操作;建议您按照业务所需,对不同违规类型与建议值进行处理。<br>返回值:**Block**:建议屏蔽,**Review** :建议人工复审,**Pass**:建议通过
注意:此字段可能返回 null,表示取不到有效值。
:type Suggestion: str
:param _Keywords: 该字段用于返回检测文本命中的关键词信息,用于标注文本违规的具体原因(如:*加我微信*)。该参数可能会有多个返回值,代表命中的多个关键词;如返回值为空且Score不为空,则代表识别结果所对应的恶意标签(Label)是来自于语义模型判断的返回值。
注意:此字段可能返回 null,表示取不到有效值。
:type Keywords: list of str
:param _Score: 该字段用于返回当前标签(Label)下的置信度,取值范围:0(**置信度最低**)-100(**置信度最高** ),越高代表文本越有可能属于当前返回的标签;如:*色情 99*,则表明该文本非常有可能属于色情内容;*色情 0*,则表明该文本不属于色情内容。
注意:此字段可能返回 null,表示取不到有效值。
:type Score: int
:param _LibType: 该字段用于返回自定义关键词对应的词库类型,取值为**1**(黑白库)和**2**(自定义关键词库),若未配置自定义关键词库,则默认值为1(黑白库匹配)。
注意:此字段可能返回 null,表示取不到有效值。
:type LibType: int
:param _LibId: 该字段用于返回自定义库的ID,以方便自定义库管理和配置。
注意:此字段可能返回 null,表示取不到有效值。
:type LibId: str
:param _LibName: 该字段用于返回自定义库的名称,以方便自定义库管理和配置。
注意:此字段可能返回 null,表示取不到有效值。
:type LibName: str
:param _SubLabel: 该字段用于返回当前标签(Label)下的二级标签。
注意:此字段可能返回 null,表示取不到有效值。
:type SubLabel: str
:param _Tags: 该字段用于返回当前一级标签(Label)下的关键词、子标签及分数。
注意:此字段可能返回 null,表示取不到有效值。
:type Tags: list of Tag
:param _HitInfos: 该字段用于返回违规文本命中信息
注意:此字段可能返回 null,表示取不到有效值。
:type HitInfos: list of HitInfo
"""
self._Label = None
self._Suggestion = None
self._Keywords = None
self._Score = None
self._LibType = None
self._LibId = None
self._LibName = None
self._SubLabel = None
self._Tags = None
self._HitInfos = None
@property
def Label(self):
"""该字段用于返回检测结果所对应的全部恶意标签。<br>返回值:**Normal**:正常,**Porn**:色情,**Abuse**:谩骂,**Ad**:广告;以及其他令人反感、不安全或不适宜的内容类型。
:rtype: str
"""
return self._Label
@Label.setter
def Label(self, Label):
self._Label = Label
@property
def Suggestion(self):
"""该字段用于返回对应当前标签的后续操作建议。当您获取到判定结果后,返回值表示系统推荐的后续操作;建议您按照业务所需,对不同违规类型与建议值进行处理。<br>返回值:**Block**:建议屏蔽,**Review** :建议人工复审,**Pass**:建议通过
注意:此字段可能返回 null,表示取不到有效值。
:rtype: str
"""
return self._Suggestion
@Suggestion.setter
def Suggestion(self, Suggestion):
self._Suggestion = Suggestion
@property
def Keywords(self):
"""该字段用于返回检测文本命中的关键词信息,用于标注文本违规的具体原因(如:*加我微信*)。该参数可能会有多个返回值,代表命中的多个关键词;如返回值为空且Score不为空,则代表识别结果所对应的恶意标签(Label)是来自于语义模型判断的返回值。
注意:此字段可能返回 null,表示取不到有效值。
:rtype: list of str
"""
return self._Keywords
@Keywords.setter
def Keywords(self, Keywords):
self._Keywords = Keywords
@property
def Score(self):
"""该字段用于返回当前标签(Label)下的置信度,取值范围:0(**置信度最低**)-100(**置信度最高** ),越高代表文本越有可能属于当前返回的标签;如:*色情 99*,则表明该文本非常有可能属于色情内容;*色情 0*,则表明该文本不属于色情内容。
注意:此字段可能返回 null,表示取不到有效值。
:rtype: int
"""
return self._Score
@Score.setter
def Score(self, Score):
self._Score = Score
@property
def LibType(self):
"""该字段用于返回自定义关键词对应的词库类型,取值为**1**(黑白库)和**2**(自定义关键词库),若未配置自定义关键词库,则默认值为1(黑白库匹配)。
注意:此字段可能返回 null,表示取不到有效值。
:rtype: int
"""
return self._LibType
@LibType.setter
def LibType(self, LibType):
self._LibType = LibType
@property
def LibId(self):
"""该字段用于返回自定义库的ID,以方便自定义库管理和配置。
注意:此字段可能返回 null,表示取不到有效值。
:rtype: str
"""
return self._LibId
@LibId.setter
def LibId(self, LibId):
self._LibId = LibId
@property
def LibName(self):
"""该字段用于返回自定义库的名称,以方便自定义库管理和配置。
注意:此字段可能返回 null,表示取不到有效值。
:rtype: str
"""
return self._LibName
@LibName.setter
def LibName(self, LibName):
self._LibName = LibName
@property
def SubLabel(self):
"""该字段用于返回当前标签(Label)下的二级标签。
注意:此字段可能返回 null,表示取不到有效值。
:rtype: str
"""
return self._SubLabel
@SubLabel.setter
def SubLabel(self, SubLabel):
self._SubLabel = SubLabel
@property
def Tags(self):
"""该字段用于返回当前一级标签(Label)下的关键词、子标签及分数。
注意:此字段可能返回 null,表示取不到有效值。
:rtype: list of Tag
"""
return self._Tags
@Tags.setter
def Tags(self, Tags):
self._Tags = Tags
@property
def HitInfos(self):
"""该字段用于返回违规文本命中信息
注意:此字段可能返回 null,表示取不到有效值。
:rtype: list of HitInfo
"""
return self._HitInfos
@HitInfos.setter
def HitInfos(self, HitInfos):
self._HitInfos = HitInfos
def _deserialize(self, params):
self._Label = params.get("Label")
self._Suggestion = params.get("Suggestion")
self._Keywords = params.get("Keywords")
self._Score = params.get("Score")
self._LibType = params.get("LibType")
self._LibId = params.get("LibId")
self._LibName = params.get("LibName")
self._SubLabel = params.get("SubLabel")
if params.get("Tags") is not None:
self._Tags = []
for item in params.get("Tags"):
obj = Tag()
obj._deserialize(item)
self._Tags.append(obj)
if params.get("HitInfos") is not None:
self._HitInfos = []
for item in params.get("HitInfos"):
obj = HitInfo()
obj._deserialize(item)
self._HitInfos.append(obj)
memeber_set = set(params.keys())
for name, value in vars(self).items():
property_name = name[1:]
if property_name in memeber_set:
memeber_set.remove(property_name)
if len(memeber_set) > 0:
warnings.warn("%s fileds are useless." % ",".join(memeber_set))
class Device(AbstractModel):
"""用于表示业务用户对应的设备信息
"""
def __init__(self):
r"""
:param _IP: 该字段表示业务用户对应设备的IP地址。<br>
备注:目前仅支持IPv4地址记录,不支持IPv6地址记录。
:type IP: str
:param _Mac: 该字段表示业务用户对应的MAC地址,以方便设备识别与管理;其格式与取值与标准MAC地址一致。
:type Mac: str
:param _TokenId: *内测中,敬请期待。*
:type TokenId: str
:param _DeviceId: *内测中,敬请期待。*
:type DeviceId: str
:param _IMEI: 该字段表示业务用户对应设备的**IMEI码**(国际移动设备识别码),该识别码可用于识别每一部独立的手机等移动通信设备,方便设备识别与管理。<br>备注:格式为**15-17位纯数字**。
:type IMEI: str
:param _IDFA: **iOS设备专用**,该字段表示业务用户对应的**IDFA**(广告标识符),这是由苹果公司提供的用于标识用户的广告标识符,由一串16进制的32位数字和字母组成。<br>
备注:苹果公司自2021年iOS14更新后允许用户手动关闭或者开启IDFA,故此字符串标记有效性可能有所降低。
:type IDFA: str
:param _IDFV: **iOS设备专用**,该字段表示业务用户对应的**IDFV**(应用开发商标识符),这是由苹果公司提供的用于标注应用开发商的标识符,由一串16进制的32位数字和字母组成,可被用于唯一标识设备。
:type IDFV: str
"""
self._IP = None
self._Mac = None
self._TokenId = None
self._DeviceId = None
self._IMEI = None
self._IDFA = None
self._IDFV = None
@property
def IP(self):
"""该字段表示业务用户对应设备的IP地址。<br>
备注:目前仅支持IPv4地址记录,不支持IPv6地址记录。
:rtype: str
"""
return self._IP
@IP.setter
def IP(self, IP):
self._IP = IP
@property
def Mac(self):
"""该字段表示业务用户对应的MAC地址,以方便设备识别与管理;其格式与取值与标准MAC地址一致。
:rtype: str
"""
return self._Mac
@Mac.setter
def Mac(self, Mac):
self._Mac = Mac
@property
def TokenId(self):
"""*内测中,敬请期待。*
:rtype: str
"""
return self._TokenId
@TokenId.setter
def TokenId(self, TokenId):
self._TokenId = TokenId
@property
def DeviceId(self):
"""*内测中,敬请期待。*
:rtype: str
"""
return self._DeviceId
@DeviceId.setter
def DeviceId(self, DeviceId):
self._DeviceId = DeviceId
@property
def IMEI(self):
"""该字段表示业务用户对应设备的**IMEI码**(国际移动设备识别码),该识别码可用于识别每一部独立的手机等移动通信设备,方便设备识别与管理。<br>备注:格式为**15-17位纯数字**。
:rtype: str
"""
return self._IMEI
@IMEI.setter
def IMEI(self, IMEI):
self._IMEI = IMEI
@property
def IDFA(self):
"""**iOS设备专用**,该字段表示业务用户对应的**IDFA**(广告标识符),这是由苹果公司提供的用于标识用户的广告标识符,由一串16进制的32位数字和字母组成。<br>
备注:苹果公司自2021年iOS14更新后允许用户手动关闭或者开启IDFA,故此字符串标记有效性可能有所降低。
:rtype: str
"""
return self._IDFA
@IDFA.setter
def IDFA(self, IDFA):
self._IDFA = IDFA
@property
def IDFV(self):
"""**iOS设备专用**,该字段表示业务用户对应的**IDFV**(应用开发商标识符),这是由苹果公司提供的用于标注应用开发商的标识符,由一串16进制的32位数字和字母组成,可被用于唯一标识设备。
:rtype: str
"""
return self._IDFV
@IDFV.setter
def IDFV(self, IDFV):
self._IDFV = IDFV
def _deserialize(self, params):
self._IP = params.get("IP")
self._Mac = params.get("Mac")
self._TokenId = params.get("TokenId")
self._DeviceId = params.get("DeviceId")
self._IMEI = params.get("IMEI")
self._IDFA = params.get("IDFA")
self._IDFV = params.get("IDFV")
memeber_set = set(params.keys())
for name, value in vars(self).items():
property_name = name[1:]
if property_name in memeber_set:
memeber_set.remove(property_name)
if len(memeber_set) > 0:
warnings.warn("%s fileds are useless." % ",".join(memeber_set))
class HitInfo(AbstractModel):
"""关键词命中位置信息
"""
def __init__(self):
r"""
:param _Type: 标识模型命中还是关键词命中
注意:此字段可能返回 null,表示取不到有效值。
:type Type: str
:param _Keyword: 命中关键词
注意:此字段可能返回 null,表示取不到有效值。
:type Keyword: str
:param _LibName: 自定义词库名称
注意:此字段可能返回 null,表示取不到有效值。
:type LibName: str
:param _Positions: 位置信息
注意:此字段可能返回 null,表示取不到有效值。
:type Positions: list of Positions
"""
self._Type = None
self._Keyword = None
self._LibName = None
self._Positions = None
@property
def Type(self):
"""标识模型命中还是关键词命中
注意:此字段可能返回 null,表示取不到有效值。
:rtype: str
"""
return self._Type
@Type.setter
def Type(self, Type):
self._Type = Type
@property
def Keyword(self):
"""命中关键词
注意:此字段可能返回 null,表示取不到有效值。
:rtype: str
"""
return self._Keyword
@Keyword.setter
def Keyword(self, Keyword):
self._Keyword = Keyword
@property
def LibName(self):
"""自定义词库名称
注意:此字段可能返回 null,表示取不到有效值。
:rtype: str
"""
return self._LibName
@LibName.setter
def LibName(self, LibName):
self._LibName = LibName
@property
def Positions(self):
"""位置信息
注意:此字段可能返回 null,表示取不到有效值。
:rtype: list of Positions
"""
return self._Positions
@Positions.setter
def Positions(self, Positions):
self._Positions = Positions
def _deserialize(self, params):
self._Type = params.get("Type")
self._Keyword = params.get("Keyword")
self._LibName = params.get("LibName")
if params.get("Positions") is not None:
self._Positions = []
for item in params.get("Positions"):
obj = Positions()
obj._deserialize(item)
self._Positions.append(obj)
memeber_set = set(params.keys())
for name, value in vars(self).items():
property_name = name[1:]
if property_name in memeber_set:
memeber_set.remove(property_name)
if len(memeber_set) > 0:
warnings.warn("%s fileds are useless." % ",".join(memeber_set))
class Positions(AbstractModel):
"""标识命中的违规关键词位置信息
"""
def __init__(self):
r"""
:param _Start: 关键词起始位置
注意:此字段可能返回 null,表示取不到有效值。
:type Start: int
:param _End: 关键词结束位置
注意:此字段可能返回 null,表示取不到有效值。
:type End: int
"""
self._Start = None
self._End = None
@property
def Start(self):
"""关键词起始位置
注意:此字段可能返回 null,表示取不到有效值。
:rtype: int
"""
return self._Start
@Start.setter
def Start(self, Start):
self._Start = Start
@property
def End(self):
"""关键词结束位置
注意:此字段可能返回 null,表示取不到有效值。
:rtype: int
"""
return self._End
@End.setter
def End(self, End):
self._End = End
def _deserialize(self, params):
self._Start = params.get("Start")
self._End = params.get("End")
memeber_set = set(params.keys())
for name, value in vars(self).items():
property_name = name[1:]
if property_name in memeber_set:
memeber_set.remove(property_name)
if len(memeber_set) > 0:
warnings.warn("%s fileds are useless." % ",".join(memeber_set))
class RiskDetails(AbstractModel):
"""账号风险检测结果
"""
def __init__(self):
r"""
:param _Label: 该字段用于返回账号信息检测对应的风险类别,取值为:**RiskAccount**(账号存在风险)、**RiskIP**(IP地址存在风险)、**RiskIMEI**(移动设备识别码存在风险)。
:type Label: str
:param _Level: 该字段用于返回账号信息检测对应的风险等级,取值为:**1**(疑似存在风险)和**2**(存在恶意风险)。
:type Level: int
"""
self._Label = None
self._Level = None
@property
def Label(self):
"""该字段用于返回账号信息检测对应的风险类别,取值为:**RiskAccount**(账号存在风险)、**RiskIP**(IP地址存在风险)、**RiskIMEI**(移动设备识别码存在风险)。
:rtype: str
"""
return self._Label
@Label.setter
def Label(self, Label):
self._Label = Label
@property
def Level(self):
"""该字段用于返回账号信息检测对应的风险等级,取值为:**1**(疑似存在风险)和**2**(存在恶意风险)。
:rtype: int
"""
return self._Level
@Level.setter
def Level(self, Level):
self._Level = Level
def _deserialize(self, params):
self._Label = params.get("Label")
self._Level = params.get("Level")
memeber_set = set(params.keys())
for name, value in vars(self).items():
property_name = name[1:]
if property_name in memeber_set:
memeber_set.remove(property_name)
if len(memeber_set) > 0:
warnings.warn("%s fileds are useless." % ",".join(memeber_set))
class SentimentAnalysis(AbstractModel):
"""情感分析结果
"""
def __init__(self):
r"""
:param _Label: 情感标签
注意:此字段可能返回 null,表示取不到有效值。
:type Label: str
:param _Score: 标签分数,取值范围0到100
注意:此字段可能返回 null,表示取不到有效值。
:type Score: int
:param _Detail: 情感分析明细
注意:此字段可能返回 null,表示取不到有效值。
:type Detail: :class:`tencentcloud.tms.v20201229.models.SentimentDetail`
:param _Code: 响应码,成功为"OK",失败为"InternalError"
:type Code: str
:param _Message: 异常信息
注意:此字段可能返回 null,表示取不到有效值。
:type Message: str
"""
self._Label = None
self._Score = None
self._Detail = None
self._Code = None
self._Message = None
@property
def Label(self):
"""情感标签
注意:此字段可能返回 null,表示取不到有效值。
:rtype: str
"""
return self._Label
@Label.setter
def Label(self, Label):
self._Label = Label
@property
def Score(self):
"""标签分数,取值范围0到100
注意:此字段可能返回 null,表示取不到有效值。
:rtype: int
"""
return self._Score
@Score.setter
def Score(self, Score):
self._Score = Score
@property
def Detail(self):
"""情感分析明细
注意:此字段可能返回 null,表示取不到有效值。
:rtype: :class:`tencentcloud.tms.v20201229.models.SentimentDetail`
"""
return self._Detail
@Detail.setter
def Detail(self, Detail):
self._Detail = Detail
@property
def Code(self):
"""响应码,成功为"OK",失败为"InternalError"
:rtype: str
"""
return self._Code
@Code.setter
def Code(self, Code):
self._Code = Code
@property
def Message(self):
"""异常信息
注意:此字段可能返回 null,表示取不到有效值。
:rtype: str
"""
return self._Message
@Message.setter
def Message(self, Message):
self._Message = Message
def _deserialize(self, params):
self._Label = params.get("Label")
self._Score = params.get("Score")
if params.get("Detail") is not None:
self._Detail = SentimentDetail()
self._Detail._deserialize(params.get("Detail"))
self._Code = params.get("Code")
self._Message = params.get("Message")
memeber_set = set(params.keys())
for name, value in vars(self).items():
property_name = name[1:]
if property_name in memeber_set:
memeber_set.remove(property_name)
if len(memeber_set) > 0:
warnings.warn("%s fileds are useless." % ",".join(memeber_set))
class SentimentDetail(AbstractModel):
"""情感分析明细
"""
def __init__(self):
r"""
:param _Positive: 正向分数,取值范围0到100
注意:此字段可能返回 null,表示取不到有效值。
:type Positive: int
:param _Negative: 负向分数,取值范围0到100
注意:此字段可能返回 null,表示取不到有效值。
:type Negative: int
"""
self._Positive = None
self._Negative = None
@property
def Positive(self):
"""正向分数,取值范围0到100
注意:此字段可能返回 null,表示取不到有效值。
:rtype: int
"""
return self._Positive
@Positive.setter
def Positive(self, Positive):
self._Positive = Positive
@property
def Negative(self):
"""负向分数,取值范围0到100
注意:此字段可能返回 null,表示取不到有效值。
:rtype: int
"""
return self._Negative
@Negative.setter
def Negative(self, Negative):
self._Negative = Negative
def _deserialize(self, params):
self._Positive = params.get("Positive")
self._Negative = params.get("Negative")
memeber_set = set(params.keys())
for name, value in vars(self).items():
property_name = name[1:]
if property_name in memeber_set:
memeber_set.remove(property_name)
if len(memeber_set) > 0:
warnings.warn("%s fileds are useless." % ",".join(memeber_set))
class Tag(AbstractModel):
"""该字段用于返回审核结果明细字段的标签及分数
"""
def __init__(self):
r"""
:param _Keyword: 该字段用于返回命中的关键词
注意:此字段可能返回 null,表示取不到有效值。
:type Keyword: str
:param _SubLabel: 该字段用于返回子标签
注意:此字段可能返回 null,表示取不到有效值。
:type SubLabel: str
:param _Score: 该字段用于返回子标签对应的分数
注意:此字段可能返回 null,表示取不到有效值。
:type Score: int
"""
self._Keyword = None
self._SubLabel = None
self._Score = None
@property
def Keyword(self):
"""该字段用于返回命中的关键词
注意:此字段可能返回 null,表示取不到有效值。
:rtype: str
"""
return self._Keyword
@Keyword.setter
def Keyword(self, Keyword):
self._Keyword = Keyword
@property
def SubLabel(self):
"""该字段用于返回子标签
注意:此字段可能返回 null,表示取不到有效值。
:rtype: str
"""
return self._SubLabel
@SubLabel.setter
def SubLabel(self, SubLabel):
self._SubLabel = SubLabel
@property
def Score(self):
"""该字段用于返回子标签对应的分数
注意:此字段可能返回 null,表示取不到有效值。
:rtype: int
"""
return self._Score
@Score.setter
def Score(self, Score):
self._Score = Score
def _deserialize(self, params):
self._Keyword = params.get("Keyword")
self._SubLabel = params.get("SubLabel")
self._Score = params.get("Score")
memeber_set = set(params.keys())
for name, value in vars(self).items():
property_name = name[1:]
if property_name in memeber_set:
memeber_set.remove(property_name)
if len(memeber_set) > 0:
warnings.warn("%s fileds are useless." % ",".join(memeber_set))
class TextModerationRequest(AbstractModel):
"""TextModeration请求参数结构体
"""
def __init__(self):
r"""
:param _Content: 该字段表示待检测对象的文本内容,文本需要按utf-8格式编码,长度不能超过10000个字符(按unicode编码计算),并进行 Base64加密
:type Content: str
:param _BizType: 该字段表示策略的具体编号,用于接口调度,在内容安全控制台中可配置。若不传入Biztype参数(留空),则代表采用默认的识别策略;传入则会在审核时根据业务场景采取不同的审核策略。<br>备注:Biztype仅为数字、字母与下划线的组合,长度为3-32个字符;不同Biztype关联不同的业务场景与识别能力策略,调用前请确认正确的Biztype
:type BizType: str
:param _DataId: 该字段表示您为待检测对象分配的数据ID,传入后可方便您对文件进行标识和管理。<br>取值:由英文字母(大小写均可)、数字及四个特殊符号(_,-,@,#)组成,**长度不超过64个字符**
:type DataId: str
:param _User: 该字段表示待检测对象对应的用户相关信息,传入后可便于甄别相应违规风险用户
:type User: :class:`tencentcloud.tms.v20201229.models.User`
:param _Device: 该字段表示待检测对象对应的设备相关信息,传入后可便于甄别相应违规风险设备
:type Device: :class:`tencentcloud.tms.v20201229.models.Device`
:param _SourceLanguage: Content的原始语种,比如en,zh
:type SourceLanguage: str
"""
self._Content = None
self._BizType = None
self._DataId = None
self._User = None
self._Device = None
self._SourceLanguage = None
@property
def Content(self):
"""该字段表示待检测对象的文本内容,文本需要按utf-8格式编码,长度不能超过10000个字符(按unicode编码计算),并进行 Base64加密
:rtype: str
"""
return self._Content
@Content.setter
def Content(self, Content):
self._Content = Content
@property
def BizType(self):
"""该字段表示策略的具体编号,用于接口调度,在内容安全控制台中可配置。若不传入Biztype参数(留空),则代表采用默认的识别策略;传入则会在审核时根据业务场景采取不同的审核策略。<br>备注:Biztype仅为数字、字母与下划线的组合,长度为3-32个字符;不同Biztype关联不同的业务场景与识别能力策略,调用前请确认正确的Biztype
:rtype: str
"""
return self._BizType
@BizType.setter
def BizType(self, BizType):
self._BizType = BizType
@property
def DataId(self):
"""该字段表示您为待检测对象分配的数据ID,传入后可方便您对文件进行标识和管理。<br>取值:由英文字母(大小写均可)、数字及四个特殊符号(_,-,@,#)组成,**长度不超过64个字符**
:rtype: str
"""
return self._DataId
@DataId.setter
def DataId(self, DataId):
self._DataId = DataId
@property
def User(self):
"""该字段表示待检测对象对应的用户相关信息,传入后可便于甄别相应违规风险用户
:rtype: :class:`tencentcloud.tms.v20201229.models.User`
"""
return self._User
@User.setter
def User(self, User):
self._User = User
@property
def Device(self):
"""该字段表示待检测对象对应的设备相关信息,传入后可便于甄别相应违规风险设备
:rtype: :class:`tencentcloud.tms.v20201229.models.Device`
"""
return self._Device
@Device.setter
def Device(self, Device):
self._Device = Device
@property
def SourceLanguage(self):
"""Content的原始语种,比如en,zh
:rtype: str
"""
return self._SourceLanguage
@SourceLanguage.setter
def SourceLanguage(self, SourceLanguage):
self._SourceLanguage = SourceLanguage
def _deserialize(self, params):
self._Content = params.get("Content")
self._BizType = params.get("BizType")
self._DataId = params.get("DataId")
if params.get("User") is not None:
self._User = User()
self._User._deserialize(params.get("User"))
if params.get("Device") is not None:
self._Device = Device()
self._Device._deserialize(params.get("Device"))
self._SourceLanguage = params.get("SourceLanguage")
memeber_set = set(params.keys())
for name, value in vars(self).items():
property_name = name[1:]
if property_name in memeber_set:
memeber_set.remove(property_name)
if len(memeber_set) > 0:
warnings.warn("%s fileds are useless." % ",".join(memeber_set))
class TextModerationResponse(AbstractModel):
"""TextModeration返回参数结构体
"""
def __init__(self):
r"""
:param _BizType: 该字段用于返回请求参数中的BizType参数
:type BizType: str
:param _Label: 该字段用于返回检测结果(DetailResults)中所对应的**优先级最高的恶意标签**,表示模型推荐的审核结果,建议您按照业务所需,对不同违规类型与建议值进行处理。<br>返回值:**Normal**:正常,**Porn**:色情,**Abuse**:谩骂,**Ad**:广告;以及其他令人反感、不安全或不适宜的内容类型
:type Label: str
:param _Suggestion: 该字段用于返回后续操作建议。当您获取到判定结果后,返回值表示系统推荐的后续操作;建议您按照业务所需,对不同违规类型与建议值进行处理。<br>返回值:**Block**:建议屏蔽,**Review** :建议人工复审,**Pass**:建议通过
:type Suggestion: str
:param _Keywords: 该字段用于返回当前标签(Label)下被检测文本命中的关键词信息,用于标注文本违规的具体原因(如:*加我微信*)。该参数可能会有多个返回值,代表命中的多个关键词;如返回值为空且Score不为空,则代表识别结果所对应的恶意标签(Label)是来自于语义模型判断的返回值
注意:此字段可能返回 null,表示取不到有效值。
:type Keywords: list of str
:param _Score: 该字段用于返回当前标签(Label)下的置信度,取值范围:0(**置信度最低**)-100(**置信度最高** ),越高代表文本越有可能属于当前返回的标签;如:*色情 99*,则表明该文本非常有可能属于色情内容;*色情 0*,则表明该文本不属于色情内容
:type Score: int
:param _DetailResults: 该字段用于返回基于文本风险库审核的详细结果,返回值信息可参阅对应数据结构(DetailResults)的详细描述
注意:此字段可能返回 null,表示取不到有效值。
:type DetailResults: list of DetailResults
:param _RiskDetails: 该字段用于返回文本检测中存在违规风险的账号检测结果,主要包括违规风险类别和风险等级信息,具体内容可参阅对应数据结构(RiskDetails)的详细描述
注意:此字段可能返回 null,表示取不到有效值。
:type RiskDetails: list of RiskDetails
:param _Extra: 该字段用于返回根据您的需求配置的额外附加信息(Extra),如未配置则默认返回值为空。<br>备注:不同客户或Biztype下返回信息不同,如需配置该字段请提交工单咨询或联系售后专员处理
注意:此字段可能返回 null,表示取不到有效值。
:type Extra: str
:param _DataId: 该字段用于返回检测对象对应请求参数中的DataId,与输入的DataId字段中的内容对应
注意:此字段可能返回 null,表示取不到有效值。
:type DataId: str
:param _SubLabel: 该字段用于返回当前标签(Label)下的二级标签。
注意:此字段可能返回 null,表示取不到有效值。
:type SubLabel: str
:param _ContextText: 该字段用于返回上下文关联文本
注意:此字段可能返回 null,表示取不到有效值。
:type ContextText: str
:param _SentimentAnalysis: 情感分析结果
注意:此字段可能返回 null,表示取不到有效值。
:type SentimentAnalysis: :class:`tencentcloud.tms.v20201229.models.SentimentAnalysis`
:param _RequestId: 唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。
:type RequestId: str
"""
self._BizType = None
self._Label = None
self._Suggestion = None
self._Keywords = None
self._Score = None
self._DetailResults = None
self._RiskDetails = None
self._Extra = None
self._DataId = None
self._SubLabel = None
self._ContextText = None
self._SentimentAnalysis = None
self._RequestId = None
@property
def BizType(self):
"""该字段用于返回请求参数中的BizType参数
:rtype: str
"""
return self._BizType
@BizType.setter
def BizType(self, BizType):
self._BizType = BizType
@property
def Label(self):
"""该字段用于返回检测结果(DetailResults)中所对应的**优先级最高的恶意标签**,表示模型推荐的审核结果,建议您按照业务所需,对不同违规类型与建议值进行处理。<br>返回值:**Normal**:正常,**Porn**:色情,**Abuse**:谩骂,**Ad**:广告;以及其他令人反感、不安全或不适宜的内容类型
:rtype: str
"""
return self._Label
@Label.setter
def Label(self, Label):
self._Label = Label
@property
def Suggestion(self):
"""该字段用于返回后续操作建议。当您获取到判定结果后,返回值表示系统推荐的后续操作;建议您按照业务所需,对不同违规类型与建议值进行处理。<br>返回值:**Block**:建议屏蔽,**Review** :建议人工复审,**Pass**:建议通过
:rtype: str
"""
return self._Suggestion
@Suggestion.setter
def Suggestion(self, Suggestion):
self._Suggestion = Suggestion
@property
def Keywords(self):
"""该字段用于返回当前标签(Label)下被检测文本命中的关键词信息,用于标注文本违规的具体原因(如:*加我微信*)。该参数可能会有多个返回值,代表命中的多个关键词;如返回值为空且Score不为空,则代表识别结果所对应的恶意标签(Label)是来自于语义模型判断的返回值
注意:此字段可能返回 null,表示取不到有效值。
:rtype: list of str
"""
return self._Keywords
@Keywords.setter
def Keywords(self, Keywords):
self._Keywords = Keywords
@property
def Score(self):
"""该字段用于返回当前标签(Label)下的置信度,取值范围:0(**置信度最低**)-100(**置信度最高** ),越高代表文本越有可能属于当前返回的标签;如:*色情 99*,则表明该文本非常有可能属于色情内容;*色情 0*,则表明该文本不属于色情内容
:rtype: int
"""
return self._Score
@Score.setter
def Score(self, Score):
self._Score = Score
@property
def DetailResults(self):
"""该字段用于返回基于文本风险库审核的详细结果,返回值信息可参阅对应数据结构(DetailResults)的详细描述
注意:此字段可能返回 null,表示取不到有效值。
:rtype: list of DetailResults
"""
return self._DetailResults
@DetailResults.setter
def DetailResults(self, DetailResults):
self._DetailResults = DetailResults
@property
def RiskDetails(self):
"""该字段用于返回文本检测中存在违规风险的账号检测结果,主要包括违规风险类别和风险等级信息,具体内容可参阅对应数据结构(RiskDetails)的详细描述
注意:此字段可能返回 null,表示取不到有效值。
:rtype: list of RiskDetails
"""
return self._RiskDetails
@RiskDetails.setter
def RiskDetails(self, RiskDetails):
self._RiskDetails = RiskDetails
@property
def Extra(self):
"""该字段用于返回根据您的需求配置的额外附加信息(Extra),如未配置则默认返回值为空。<br>备注:不同客户或Biztype下返回信息不同,如需配置该字段请提交工单咨询或联系售后专员处理
注意:此字段可能返回 null,表示取不到有效值。
:rtype: str
"""
return self._Extra
@Extra.setter
def Extra(self, Extra):
self._Extra = Extra
@property
def DataId(self):
"""该字段用于返回检测对象对应请求参数中的DataId,与输入的DataId字段中的内容对应
注意:此字段可能返回 null,表示取不到有效值。
:rtype: str
"""
return self._DataId
@DataId.setter
def DataId(self, DataId):
self._DataId = DataId
@property
def SubLabel(self):
"""该字段用于返回当前标签(Label)下的二级标签。
注意:此字段可能返回 null,表示取不到有效值。
:rtype: str
"""
return self._SubLabel
@SubLabel.setter
def SubLabel(self, SubLabel):
self._SubLabel = SubLabel
@property
def ContextText(self):
"""该字段用于返回上下文关联文本
注意:此字段可能返回 null,表示取不到有效值。
:rtype: str
"""
return self._ContextText
@ContextText.setter
def ContextText(self, ContextText):
self._ContextText = ContextText
@property
def SentimentAnalysis(self):
"""情感分析结果
注意:此字段可能返回 null,表示取不到有效值。
:rtype: :class:`tencentcloud.tms.v20201229.models.SentimentAnalysis`
"""
return self._SentimentAnalysis
@SentimentAnalysis.setter
def SentimentAnalysis(self, SentimentAnalysis):
self._SentimentAnalysis = SentimentAnalysis
@property
def RequestId(self):
"""唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。
:rtype: str
"""
return self._RequestId
@RequestId.setter
def RequestId(self, RequestId):
self._RequestId = RequestId
def _deserialize(self, params):
self._BizType = params.get("BizType")
self._Label = params.get("Label")
self._Suggestion = params.get("Suggestion")
self._Keywords = params.get("Keywords")
self._Score = params.get("Score")
if params.get("DetailResults") is not None:
self._DetailResults = []
for item in params.get("DetailResults"):
obj = DetailResults()
obj._deserialize(item)
self._DetailResults.append(obj)
if params.get("RiskDetails") is not None:
self._RiskDetails = []
for item in params.get("RiskDetails"):
obj = RiskDetails()
obj._deserialize(item)
self._RiskDetails.append(obj)
self._Extra = params.get("Extra")
self._DataId = params.get("DataId")
self._SubLabel = params.get("SubLabel")
self._ContextText = params.get("ContextText")
if params.get("SentimentAnalysis") is not None:
self._SentimentAnalysis = SentimentAnalysis()
self._SentimentAnalysis._deserialize(params.get("SentimentAnalysis"))
self._RequestId = params.get("RequestId")
class User(AbstractModel):
"""用于表示业务用户的账号相关信息
"""
def __init__(self):
r"""
:param _UserId: 该字段表示业务用户ID,填写后,系统可根据账号过往违规历史优化审核结果判定,有利于存在可疑违规风险时的辅助判断。<br>
备注:该字段可传入微信openid、QQopenid、字符串等账号信息,与账号类别参数(AccountType)配合使用可确定唯一账号。
:type UserId: str
:param _Nickname: 该字段表示业务用户对应的账号昵称信息。
:type Nickname: str
:param _AccountType: 该字段表示业务用户ID对应的账号类型,取值:**1**-微信uin,**2**-QQ号,**3**-微信群uin,**4**-qq群号,**5**-微信openid,**6**-QQopenid,**7**-其它string。<br>
该字段与账号ID参数(UserId)配合使用可确定唯一账号。
:type AccountType: int
:param _Gender: 该字段表示业务用户对应账号的性别信息。<br>
取值:**0**(默认值,代表性别未知)、**1**(男性)、**2**(女性)。
:type Gender: int
:param _Age: 该字段表示业务用户对应账号的年龄信息。<br>
取值:**0**(默认值,代表年龄未知)-(**自定义年龄上限**)之间的整数。
:type Age: int
:param _Level: 该字段表示业务用户对应账号的等级信息。<br>
取值:**0**(默认值,代表等级未知)、**1**(等级较低)、**2**(等级中等)、**3**(等级较高),目前**暂不支持自定义等级**。
:type Level: int
:param _Phone: 该字段表示业务用户对应账号的手机号信息,支持全球各地区手机号的记录。<br>
备注:请保持手机号格式的统一,如区号格式(086/+86)等。
:type Phone: str
:param _HeadUrl: 该字段表示业务用户头像图片的访问链接(URL),支持PNG、JPG、JPEG、BMP、GIF、WEBP格式。
备注:头像图片大小不超过5MB,建议分辨率不低于256x256;图片下载时间限制为3秒,超过则会返回下载超时。
:type HeadUrl: str
:param _Desc: 该字段表示业务用户的简介信息,支持汉字、英文及特殊符号,长度不超过5000个汉字字符。
:type Desc: str
:param _RoomId: 该字段表示业务群聊场景时的房间ID。
:type RoomId: str
:param _ReceiverId: 该字段表示消息接受者ID
:type ReceiverId: str
:param _SendTime: 消息生成时间,精确到毫秒
:type SendTime: int
"""
self._UserId = None
self._Nickname = None
self._AccountType = None
self._Gender = None
self._Age = None
self._Level = None
self._Phone = None
self._HeadUrl = None
self._Desc = None
self._RoomId = None
self._ReceiverId = None
self._SendTime = None
@property
def UserId(self):
"""该字段表示业务用户ID,填写后,系统可根据账号过往违规历史优化审核结果判定,有利于存在可疑违规风险时的辅助判断。<br>
备注:该字段可传入微信openid、QQopenid、字符串等账号信息,与账号类别参数(AccountType)配合使用可确定唯一账号。
:rtype: str
"""
return self._UserId
@UserId.setter
def UserId(self, UserId):
self._UserId = UserId
@property
def Nickname(self):
"""该字段表示业务用户对应的账号昵称信息。
:rtype: str
"""
return self._Nickname
@Nickname.setter
def Nickname(self, Nickname):
self._Nickname = Nickname
@property
def AccountType(self):
"""该字段表示业务用户ID对应的账号类型,取值:**1**-微信uin,**2**-QQ号,**3**-微信群uin,**4**-qq群号,**5**-微信openid,**6**-QQopenid,**7**-其它string。<br>
该字段与账号ID参数(UserId)配合使用可确定唯一账号。
:rtype: int
"""
return self._AccountType
@AccountType.setter
def AccountType(self, AccountType):
self._AccountType = AccountType
@property
def Gender(self):
"""该字段表示业务用户对应账号的性别信息。<br>
取值:**0**(默认值,代表性别未知)、**1**(男性)、**2**(女性)。
:rtype: int
"""
return self._Gender
@Gender.setter
def Gender(self, Gender):
self._Gender = Gender
@property
def Age(self):
"""该字段表示业务用户对应账号的年龄信息。<br>
取值:**0**(默认值,代表年龄未知)-(**自定义年龄上限**)之间的整数。
:rtype: int
"""
return self._Age
@Age.setter
def Age(self, Age):
self._Age = Age
@property
def Level(self):
"""该字段表示业务用户对应账号的等级信息。<br>
取值:**0**(默认值,代表等级未知)、**1**(等级较低)、**2**(等级中等)、**3**(等级较高),目前**暂不支持自定义等级**。
:rtype: int
"""
return self._Level
@Level.setter
def Level(self, Level):
self._Level = Level
@property
def Phone(self):
"""该字段表示业务用户对应账号的手机号信息,支持全球各地区手机号的记录。<br>
备注:请保持手机号格式的统一,如区号格式(086/+86)等。
:rtype: str
"""
return self._Phone
@Phone.setter
def Phone(self, Phone):
self._Phone = Phone
@property
def HeadUrl(self):
"""该字段表示业务用户头像图片的访问链接(URL),支持PNG、JPG、JPEG、BMP、GIF、WEBP格式。
备注:头像图片大小不超过5MB,建议分辨率不低于256x256;图片下载时间限制为3秒,超过则会返回下载超时。
:rtype: str
"""
return self._HeadUrl
@HeadUrl.setter
def HeadUrl(self, HeadUrl):
self._HeadUrl = HeadUrl
@property
def Desc(self):
"""该字段表示业务用户的简介信息,支持汉字、英文及特殊符号,长度不超过5000个汉字字符。
:rtype: str
"""
return self._Desc
@Desc.setter
def Desc(self, Desc):
self._Desc = Desc
@property
def RoomId(self):
"""该字段表示业务群聊场景时的房间ID。
:rtype: str
"""
return self._RoomId
@RoomId.setter
def RoomId(self, RoomId):
self._RoomId = RoomId
@property
def ReceiverId(self):
"""该字段表示消息接受者ID
:rtype: str
"""
return self._ReceiverId
@ReceiverId.setter
def ReceiverId(self, ReceiverId):
self._ReceiverId = ReceiverId
@property
def SendTime(self):
"""消息生成时间,精确到毫秒
:rtype: int
"""
return self._SendTime
@SendTime.setter
def SendTime(self, SendTime):
self._SendTime = SendTime
def _deserialize(self, params):
self._UserId = params.get("UserId")
self._Nickname = params.get("Nickname")
self._AccountType = params.get("AccountType")
self._Gender = params.get("Gender")
self._Age = params.get("Age")
self._Level = params.get("Level")
self._Phone = params.get("Phone")
self._HeadUrl = params.get("HeadUrl")
self._Desc = params.get("Desc")
self._RoomId = params.get("RoomId")
self._ReceiverId = params.get("ReceiverId")
self._SendTime = params.get("SendTime")
memeber_set = set(params.keys())
for name, value in vars(self).items():
property_name = name[1:]
if property_name in memeber_set:
memeber_set.remove(property_name)
if len(memeber_set) > 0:
warnings.warn("%s fileds are useless." % ",".join(memeber_set))