# -*- 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 DescribeGoodsRecommendRequest(AbstractModel): """DescribeGoodsRecommend请求参数结构体 """ def __init__(self): r""" :param _InstanceId: 实例ID,在控制台获取 :type InstanceId: str :param _SceneId: 场景ID,在控制台创建场景后获取 :type SceneId: str :param _UserId: 用户唯一ID,客户自定义用户ID,作为一个用户的唯一标识,需和行为数据上报接口中的UserId一致,否则影响特征关联 :type UserId: str :param _UserIdList: 用户设备ID数组,可传入用户的多个类型ID,用于关联画像信息 :type UserIdList: list of StrUserIdInfo :param _GoodsCnt: 推荐返回数量,默认10个,最多支持50个的内容返回。如果有更多数量要求,<a href="https://console.cloud.tencent.com/workorder/category" target="_blank">提单</a>沟通解决 :type GoodsCnt: int :param _CurrentGoodsId: 当场景是相关推荐时该值必填,场景是非相关推荐时该值无效 :type CurrentGoodsId: str :param _UserPortraitInfo: 用户的实时特征信息,用作特征 :type UserPortraitInfo: :class:`tencentcloud.irp.v20220805.models.UserPortraitInfo` :param _BlackGoodsList: 本次请求针对该用户需要过滤的物品列表(不超过100个) :type BlackGoodsList: list of str :param _Extension: json字符串,扩展字段 :type Extension: str """ self._InstanceId = None self._SceneId = None self._UserId = None self._UserIdList = None self._GoodsCnt = None self._CurrentGoodsId = None self._UserPortraitInfo = None self._BlackGoodsList = None self._Extension = None @property def InstanceId(self): """实例ID,在控制台获取 :rtype: str """ return self._InstanceId @InstanceId.setter def InstanceId(self, InstanceId): self._InstanceId = InstanceId @property def SceneId(self): """场景ID,在控制台创建场景后获取 :rtype: str """ return self._SceneId @SceneId.setter def SceneId(self, SceneId): self._SceneId = SceneId @property def UserId(self): """用户唯一ID,客户自定义用户ID,作为一个用户的唯一标识,需和行为数据上报接口中的UserId一致,否则影响特征关联 :rtype: str """ return self._UserId @UserId.setter def UserId(self, UserId): self._UserId = UserId @property def UserIdList(self): """用户设备ID数组,可传入用户的多个类型ID,用于关联画像信息 :rtype: list of StrUserIdInfo """ return self._UserIdList @UserIdList.setter def UserIdList(self, UserIdList): self._UserIdList = UserIdList @property def GoodsCnt(self): """推荐返回数量,默认10个,最多支持50个的内容返回。如果有更多数量要求,<a href="https://console.cloud.tencent.com/workorder/category" target="_blank">提单</a>沟通解决 :rtype: int """ return self._GoodsCnt @GoodsCnt.setter def GoodsCnt(self, GoodsCnt): self._GoodsCnt = GoodsCnt @property def CurrentGoodsId(self): """当场景是相关推荐时该值必填,场景是非相关推荐时该值无效 :rtype: str """ return self._CurrentGoodsId @CurrentGoodsId.setter def CurrentGoodsId(self, CurrentGoodsId): self._CurrentGoodsId = CurrentGoodsId @property def UserPortraitInfo(self): """用户的实时特征信息,用作特征 :rtype: :class:`tencentcloud.irp.v20220805.models.UserPortraitInfo` """ return self._UserPortraitInfo @UserPortraitInfo.setter def UserPortraitInfo(self, UserPortraitInfo): self._UserPortraitInfo = UserPortraitInfo @property def BlackGoodsList(self): """本次请求针对该用户需要过滤的物品列表(不超过100个) :rtype: list of str """ return self._BlackGoodsList @BlackGoodsList.setter def BlackGoodsList(self, BlackGoodsList): self._BlackGoodsList = BlackGoodsList @property def Extension(self): """json字符串,扩展字段 :rtype: str """ return self._Extension @Extension.setter def Extension(self, Extension): self._Extension = Extension def _deserialize(self, params): self._InstanceId = params.get("InstanceId") self._SceneId = params.get("SceneId") self._UserId = params.get("UserId") if params.get("UserIdList") is not None: self._UserIdList = [] for item in params.get("UserIdList"): obj = StrUserIdInfo() obj._deserialize(item) self._UserIdList.append(obj) self._GoodsCnt = params.get("GoodsCnt") self._CurrentGoodsId = params.get("CurrentGoodsId") if params.get("UserPortraitInfo") is not None: self._UserPortraitInfo = UserPortraitInfo() self._UserPortraitInfo._deserialize(params.get("UserPortraitInfo")) self._BlackGoodsList = params.get("BlackGoodsList") self._Extension = params.get("Extension") 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 DescribeGoodsRecommendResponse(AbstractModel): """DescribeGoodsRecommend返回参数结构体 """ def __init__(self): r""" :param _DataList: 推荐返回的商品信息列表 :type DataList: list of RecGoodsData :param _RequestId: 唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。 :type RequestId: str """ self._DataList = None self._RequestId = None @property def DataList(self): """推荐返回的商品信息列表 :rtype: list of RecGoodsData """ return self._DataList @DataList.setter def DataList(self, DataList): self._DataList = DataList @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): if params.get("DataList") is not None: self._DataList = [] for item in params.get("DataList"): obj = RecGoodsData() obj._deserialize(item) self._DataList.append(obj) self._RequestId = params.get("RequestId") class DislikeInfo(AbstractModel): """不喜欢信息 """ def __init__(self): r""" :param _Type: 过滤的类别:<br>● author 作者名<br/>(如当前类型不满足,请<a href="https://console.cloud.tencent.com/workorder/category" target="_blank">提单</a>沟通解决方案) :type Type: str :param _Value: Type对应字段名的值,如:需要过滤的作者名 :type Value: str """ self._Type = None self._Value = None @property def Type(self): """过滤的类别:<br>● author 作者名<br/>(如当前类型不满足,请<a href="https://console.cloud.tencent.com/workorder/category" target="_blank">提单</a>沟通解决方案) :rtype: str """ return self._Type @Type.setter def Type(self, Type): self._Type = Type @property def Value(self): """Type对应字段名的值,如:需要过滤的作者名 :rtype: str """ return self._Value @Value.setter def Value(self, Value): self._Value = Value def _deserialize(self, params): self._Type = params.get("Type") self._Value = params.get("Value") 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 DocItem(AbstractModel): """信息流内容 """ def __init__(self): r""" :param _ItemId: 内容唯一id,建议限制在128字符以内 :type ItemId: str :param _ItemType: 内容类型:<br/>● article -图文<br>● text -纯文本<br/>● video -视频<br/>● short_video -时长15秒以内的视频<br/>● mini_video -竖屏视频<br/>● image -纯图片<br/>(如当前类型不满足,请登录控制台进入对应项目,在<b>物料管理->物料类型管理</b>中添加) :type ItemType: str :param _Status: 内容状态: ● 1 - 上架 ● 2 - 下架 Status=2的内容不会在推荐结果中出现 需要下架内容时,把Status的值修改为2即可 :type Status: int :param _PublishTimestamp: 内容生成时间,秒级时间戳(1639624786),需大于0,<b>用作特征和物料管理</b> :type PublishTimestamp: int :param _ExpireTimestamp: 内容过期时间,秒级时间戳(1639624786),如未填,则默认PublishTimestamp往后延一年,用作特征,过期则不会被推荐,<b>强烈建议</b> :type ExpireTimestamp: int :param _CategoryLevel: 类目层级数,例如3级类目,则填3,和CategoryPath字段的类数据匹配,<b>强烈建议</b> :type CategoryLevel: int :param _CategoryPath: 类目路径,一级二级三级等依次用英文冒号联接,和CategoryLevel字段值匹配,如体育:“足球:巴塞罗那”。<b>用于物料池管理,强烈建议</b> :type CategoryPath: str :param _Tags: 内容标签,多个标签用英文冒号联接,<b>用作特征,强烈建议</b> :type Tags: str :param _Author: 作者名,需保证作者名唯一,若有重名需要加编号区分。<b>用于召回过滤、规则打散,强烈建议</b> :type Author: str :param _SourceId: 内容来源类型,客户自定义,<b>用于物料池管理</b> :type SourceId: str :param _Title: 内容标题,<b>主要用于语义分析</b> :type Title: str :param _Content: 正文关键片段,建议控制在500字符以内,<b>主要用于语义分析</b> :type Content: str :param _ContentUrl: 正文详情,主要用于语义分析,当内容过大时建议用ContentUrl传递,<b>与Content可二选一</b> :type ContentUrl: str :param _VideoDuration: 视频时长,时间秒,大于等于0,小于 3600 * 10。<b>视频内容必填,其它内容非必填,用作特征</b> :type VideoDuration: int :param _Country: 国家,ISO 3166-1 alpha-2编码,参考<a href="https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2" target="_blank">ISO 3166-1 alpha-2</a>,中国:“CN”,<b>用作特征</b> :type Country: str :param _Province: 省份,ISO 3166-2行政区编码,如中国参考<a href="https://zh.wikipedia.org/wiki/ISO_3166-2:CN" target="_blank">ISO_3166-2:CN</a>,广东省:“CN-GD”,<b>用作特征</b> :type Province: str :param _City: 城市地区,统一用国家最新标准地区行政编码,如:<a href="https://www.mca.gov.cn/article/sj/xzqh/2020/" target="_blank">2020年行政区编码</a>,其他国家统一用国际公认城市简称或者城市编码,<b>用作特征</b> :type City: str :param _AuthorFans: 作者粉丝数,<b>用作特征</b> :type AuthorFans: int :param _AuthorLevel: 作者评级,<b>用作特征</b> :type AuthorLevel: str :param _CollectCnt: 内容累计收藏次数,<b>用作特征</b> :type CollectCnt: int :param _PraiseCnt: 内容累积点赞次数,<b>用作特征</b> :type PraiseCnt: int :param _CommentCnt: 内容累计评论次数,<b>用作特征</b> :type CommentCnt: int :param _ShareCnt: 内容累计分享次数,<b>用作特征</b> :type ShareCnt: int :param _RewardCnt: 内容累积打赏数,<b>用作特征</b> :type RewardCnt: int :param _Score: 内容质量评分,<b>用作特征</b> :type Score: float :param _Extension: json字符串,<b>用于物料池管理的自定义扩展</b>,需要base64加密 :type Extension: str """ self._ItemId = None self._ItemType = None self._Status = None self._PublishTimestamp = None self._ExpireTimestamp = None self._CategoryLevel = None self._CategoryPath = None self._Tags = None self._Author = None self._SourceId = None self._Title = None self._Content = None self._ContentUrl = None self._VideoDuration = None self._Country = None self._Province = None self._City = None self._AuthorFans = None self._AuthorLevel = None self._CollectCnt = None self._PraiseCnt = None self._CommentCnt = None self._ShareCnt = None self._RewardCnt = None self._Score = None self._Extension = None @property def ItemId(self): """内容唯一id,建议限制在128字符以内 :rtype: str """ return self._ItemId @ItemId.setter def ItemId(self, ItemId): self._ItemId = ItemId @property def ItemType(self): """内容类型:<br/>● article -图文<br>● text -纯文本<br/>● video -视频<br/>● short_video -时长15秒以内的视频<br/>● mini_video -竖屏视频<br/>● image -纯图片<br/>(如当前类型不满足,请登录控制台进入对应项目,在<b>物料管理->物料类型管理</b>中添加) :rtype: str """ return self._ItemType @ItemType.setter def ItemType(self, ItemType): self._ItemType = ItemType @property def Status(self): """内容状态: ● 1 - 上架 ● 2 - 下架 Status=2的内容不会在推荐结果中出现 需要下架内容时,把Status的值修改为2即可 :rtype: int """ return self._Status @Status.setter def Status(self, Status): self._Status = Status @property def PublishTimestamp(self): """内容生成时间,秒级时间戳(1639624786),需大于0,<b>用作特征和物料管理</b> :rtype: int """ return self._PublishTimestamp @PublishTimestamp.setter def PublishTimestamp(self, PublishTimestamp): self._PublishTimestamp = PublishTimestamp @property def ExpireTimestamp(self): """内容过期时间,秒级时间戳(1639624786),如未填,则默认PublishTimestamp往后延一年,用作特征,过期则不会被推荐,<b>强烈建议</b> :rtype: int """ return self._ExpireTimestamp @ExpireTimestamp.setter def ExpireTimestamp(self, ExpireTimestamp): self._ExpireTimestamp = ExpireTimestamp @property def CategoryLevel(self): """类目层级数,例如3级类目,则填3,和CategoryPath字段的类数据匹配,<b>强烈建议</b> :rtype: int """ return self._CategoryLevel @CategoryLevel.setter def CategoryLevel(self, CategoryLevel): self._CategoryLevel = CategoryLevel @property def CategoryPath(self): """类目路径,一级二级三级等依次用英文冒号联接,和CategoryLevel字段值匹配,如体育:“足球:巴塞罗那”。<b>用于物料池管理,强烈建议</b> :rtype: str """ return self._CategoryPath @CategoryPath.setter def CategoryPath(self, CategoryPath): self._CategoryPath = CategoryPath @property def Tags(self): """内容标签,多个标签用英文冒号联接,<b>用作特征,强烈建议</b> :rtype: str """ return self._Tags @Tags.setter def Tags(self, Tags): self._Tags = Tags @property def Author(self): """作者名,需保证作者名唯一,若有重名需要加编号区分。<b>用于召回过滤、规则打散,强烈建议</b> :rtype: str """ return self._Author @Author.setter def Author(self, Author): self._Author = Author @property def SourceId(self): """内容来源类型,客户自定义,<b>用于物料池管理</b> :rtype: str """ return self._SourceId @SourceId.setter def SourceId(self, SourceId): self._SourceId = SourceId @property def Title(self): """内容标题,<b>主要用于语义分析</b> :rtype: str """ return self._Title @Title.setter def Title(self, Title): self._Title = Title @property def Content(self): """正文关键片段,建议控制在500字符以内,<b>主要用于语义分析</b> :rtype: str """ return self._Content @Content.setter def Content(self, Content): self._Content = Content @property def ContentUrl(self): """正文详情,主要用于语义分析,当内容过大时建议用ContentUrl传递,<b>与Content可二选一</b> :rtype: str """ return self._ContentUrl @ContentUrl.setter def ContentUrl(self, ContentUrl): self._ContentUrl = ContentUrl @property def VideoDuration(self): """视频时长,时间秒,大于等于0,小于 3600 * 10。<b>视频内容必填,其它内容非必填,用作特征</b> :rtype: int """ return self._VideoDuration @VideoDuration.setter def VideoDuration(self, VideoDuration): self._VideoDuration = VideoDuration @property def Country(self): """国家,ISO 3166-1 alpha-2编码,参考<a href="https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2" target="_blank">ISO 3166-1 alpha-2</a>,中国:“CN”,<b>用作特征</b> :rtype: str """ return self._Country @Country.setter def Country(self, Country): self._Country = Country @property def Province(self): """省份,ISO 3166-2行政区编码,如中国参考<a href="https://zh.wikipedia.org/wiki/ISO_3166-2:CN" target="_blank">ISO_3166-2:CN</a>,广东省:“CN-GD”,<b>用作特征</b> :rtype: str """ return self._Province @Province.setter def Province(self, Province): self._Province = Province @property def City(self): """城市地区,统一用国家最新标准地区行政编码,如:<a href="https://www.mca.gov.cn/article/sj/xzqh/2020/" target="_blank">2020年行政区编码</a>,其他国家统一用国际公认城市简称或者城市编码,<b>用作特征</b> :rtype: str """ return self._City @City.setter def City(self, City): self._City = City @property def AuthorFans(self): """作者粉丝数,<b>用作特征</b> :rtype: int """ return self._AuthorFans @AuthorFans.setter def AuthorFans(self, AuthorFans): self._AuthorFans = AuthorFans @property def AuthorLevel(self): """作者评级,<b>用作特征</b> :rtype: str """ return self._AuthorLevel @AuthorLevel.setter def AuthorLevel(self, AuthorLevel): self._AuthorLevel = AuthorLevel @property def CollectCnt(self): """内容累计收藏次数,<b>用作特征</b> :rtype: int """ return self._CollectCnt @CollectCnt.setter def CollectCnt(self, CollectCnt): self._CollectCnt = CollectCnt @property def PraiseCnt(self): """内容累积点赞次数,<b>用作特征</b> :rtype: int """ return self._PraiseCnt @PraiseCnt.setter def PraiseCnt(self, PraiseCnt): self._PraiseCnt = PraiseCnt @property def CommentCnt(self): """内容累计评论次数,<b>用作特征</b> :rtype: int """ return self._CommentCnt @CommentCnt.setter def CommentCnt(self, CommentCnt): self._CommentCnt = CommentCnt @property def ShareCnt(self): """内容累计分享次数,<b>用作特征</b> :rtype: int """ return self._ShareCnt @ShareCnt.setter def ShareCnt(self, ShareCnt): self._ShareCnt = ShareCnt @property def RewardCnt(self): """内容累积打赏数,<b>用作特征</b> :rtype: int """ return self._RewardCnt @RewardCnt.setter def RewardCnt(self, RewardCnt): self._RewardCnt = RewardCnt @property def Score(self): """内容质量评分,<b>用作特征</b> :rtype: float """ return self._Score @Score.setter def Score(self, Score): self._Score = Score @property def Extension(self): """json字符串,<b>用于物料池管理的自定义扩展</b>,需要base64加密 :rtype: str """ return self._Extension @Extension.setter def Extension(self, Extension): self._Extension = Extension def _deserialize(self, params): self._ItemId = params.get("ItemId") self._ItemType = params.get("ItemType") self._Status = params.get("Status") self._PublishTimestamp = params.get("PublishTimestamp") self._ExpireTimestamp = params.get("ExpireTimestamp") self._CategoryLevel = params.get("CategoryLevel") self._CategoryPath = params.get("CategoryPath") self._Tags = params.get("Tags") self._Author = params.get("Author") self._SourceId = params.get("SourceId") self._Title = params.get("Title") self._Content = params.get("Content") self._ContentUrl = params.get("ContentUrl") self._VideoDuration = params.get("VideoDuration") self._Country = params.get("Country") self._Province = params.get("Province") self._City = params.get("City") self._AuthorFans = params.get("AuthorFans") self._AuthorLevel = params.get("AuthorLevel") self._CollectCnt = params.get("CollectCnt") self._PraiseCnt = params.get("PraiseCnt") self._CommentCnt = params.get("CommentCnt") self._ShareCnt = params.get("ShareCnt") self._RewardCnt = params.get("RewardCnt") self._Score = params.get("Score") self._Extension = params.get("Extension") 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 FeedBehaviorInfo(AbstractModel): """信息流行为 """ def __init__(self): r""" :param _UserId: 用户唯一ID,客户自定义用户ID,作为一个用户的唯一标识 :type UserId: str :param _ItemId: 内容唯一id :type ItemId: str :param _BehaviorType: 行为类型:<br> ● expose - 曝光,<b>必须</b><br> ● click - 点击,<b>必须</b><br/> ● stay - 详情页停留时长,<b>强烈建议</b><br/> ● videoover - 视频播放时长,<b>强烈建议</b><br/> ● like - 点赞&喜欢,<b>正效果</b><br/> ● collect - 收藏,<b>正效果</b><br/> ● share - 转发&分享,<b>正效果</b><br/> ● reward - 打赏,<b>正效果</b><br/> ● unlike - 踩&不喜欢,<b>负效果</b><br/> ● comment - 评论<br/> 不支持的行为类型,可以映射到未被使用的其他行为类型。如实际业务数据中有私信行为,没有收藏行为,可以将私信行为映射到收藏行为 :type BehaviorType: str :param _BehaviorValue: 行为类型对应的行为值:<br/> ● expose - 曝光,固定填1<br/> ● click - 点击,固定填1<br/> ● stay - 详情页停留时长,填停留秒数,取值[1-86400]<br/> ● videoover - 视频播放时长,填播放结束的秒数,取值[1-86400]<br/> ● like - 点赞&喜欢,固定填1<br/> ● collect - 收藏,固定填1<br/> ● share - 转发&分享,固定填1<br/> ● reward - 打赏,填打赏金额,没有则填1<br/> ● unlike - 踩&不喜欢,填不喜欢的原因,没有则填1<br/> ● comment - 评论,填评论内容,如“上海加油” :type BehaviorValue: str :param _BehaviorTimestamp: 行为发生的时间戳: 秒级时间戳,尽量实时上报,最长不超过半小时否则会影响推荐结果的准确性 :type BehaviorTimestamp: int :param _SceneId: 行为发生的场景ID,在控制台创建场景后获取 :type SceneId: str :param _ItemTraceId: 推荐追踪ID,使用推荐结果中返回的ItemTraceId填入。 注意:如果和推荐结果中的ItemTraceId不同,会影响行为特征归因,影响推荐算法效果 :type ItemTraceId: str :param _ItemType: 内容类型,跟内容上报类型一致,用于效果分析,不做内容校验,<b>强烈建议</b> :type ItemType: str :param _ReferrerItemId: 相关推荐场景点击进入详情页的内容id,该字段用来注明行为发生于哪个内容的详情页推荐中,<b>相关推荐场景强烈建议</b> :type ReferrerItemId: str :param _UserIdList: 用户设备ID数组,可传入用户的多个类型ID,详见UserIdInfo结构体,建议补齐,<b>用于构建用户画像信息</b> :type UserIdList: list of UserIdInfo :param _Source: 算法来源: <br>● business 业务自己的算法对照组<br/> ● tencent 腾讯算法<br/> ● other 其他算法<br/>默认为tencent,区分行为来源于哪个算法,<b>用于Poc阶段的效果对比验证</b> :type Source: str :param _Country: 行为发生时的国家,ISO 3166-1 alpha-2编码,参考<a href="https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2" target="_blank">ISO 3166-1 alpha-2</a>,中国:“CN”,<b>用作特征</b> :type Country: str :param _Province: 行为发生时的省份,ISO 3166-2行政区编码,如中国参考<a href="https://zh.wikipedia.org/wiki/ISO_3166-2:CN" target="_blank">ISO_3166-2:CN</a>,广东省:“CN-GD”,<b>用作特征</b> :type Province: str :param _City: 行为发生时的城市地区,统一用国家最新标准地区行政编码,如:<a href="https://www.mca.gov.cn/article/sj/xzqh/2020/" target="_blank">2020年行政区编码</a>,其他国家统一用国际公认城市简称或者城市编码,<b>用作特征</b> :type City: str :param _IP: 行为发生时的客户端ip,<b>用作特征</b> :type IP: str :param _Network: 行为发生时的客户端网络类型,<b>用作特征</b> :type Network: str :param _Platform: 行为发生时的客户端平台,ios/android/h5,<b>用作特征</b> :type Platform: str :param _AppVersion: 行为发生时的客户端app版本,<b>用作特征</b> :type AppVersion: str :param _OsVersion: 行为发生时的操作系统版本,<b>用作特征</b> :type OsVersion: str :param _DeviceModel: 行为发生时的机型,<b>用作特征</b> :type DeviceModel: str :param _Extension: json字符串,<b>用于行为数据的扩展</b>,需要base64加密 :type Extension: str """ self._UserId = None self._ItemId = None self._BehaviorType = None self._BehaviorValue = None self._BehaviorTimestamp = None self._SceneId = None self._ItemTraceId = None self._ItemType = None self._ReferrerItemId = None self._UserIdList = None self._Source = None self._Country = None self._Province = None self._City = None self._IP = None self._Network = None self._Platform = None self._AppVersion = None self._OsVersion = None self._DeviceModel = None self._Extension = None @property def UserId(self): """用户唯一ID,客户自定义用户ID,作为一个用户的唯一标识 :rtype: str """ return self._UserId @UserId.setter def UserId(self, UserId): self._UserId = UserId @property def ItemId(self): """内容唯一id :rtype: str """ return self._ItemId @ItemId.setter def ItemId(self, ItemId): self._ItemId = ItemId @property def BehaviorType(self): """行为类型:<br> ● expose - 曝光,<b>必须</b><br> ● click - 点击,<b>必须</b><br/> ● stay - 详情页停留时长,<b>强烈建议</b><br/> ● videoover - 视频播放时长,<b>强烈建议</b><br/> ● like - 点赞&喜欢,<b>正效果</b><br/> ● collect - 收藏,<b>正效果</b><br/> ● share - 转发&分享,<b>正效果</b><br/> ● reward - 打赏,<b>正效果</b><br/> ● unlike - 踩&不喜欢,<b>负效果</b><br/> ● comment - 评论<br/> 不支持的行为类型,可以映射到未被使用的其他行为类型。如实际业务数据中有私信行为,没有收藏行为,可以将私信行为映射到收藏行为 :rtype: str """ return self._BehaviorType @BehaviorType.setter def BehaviorType(self, BehaviorType): self._BehaviorType = BehaviorType @property def BehaviorValue(self): """行为类型对应的行为值:<br/> ● expose - 曝光,固定填1<br/> ● click - 点击,固定填1<br/> ● stay - 详情页停留时长,填停留秒数,取值[1-86400]<br/> ● videoover - 视频播放时长,填播放结束的秒数,取值[1-86400]<br/> ● like - 点赞&喜欢,固定填1<br/> ● collect - 收藏,固定填1<br/> ● share - 转发&分享,固定填1<br/> ● reward - 打赏,填打赏金额,没有则填1<br/> ● unlike - 踩&不喜欢,填不喜欢的原因,没有则填1<br/> ● comment - 评论,填评论内容,如“上海加油” :rtype: str """ return self._BehaviorValue @BehaviorValue.setter def BehaviorValue(self, BehaviorValue): self._BehaviorValue = BehaviorValue @property def BehaviorTimestamp(self): """行为发生的时间戳: 秒级时间戳,尽量实时上报,最长不超过半小时否则会影响推荐结果的准确性 :rtype: int """ return self._BehaviorTimestamp @BehaviorTimestamp.setter def BehaviorTimestamp(self, BehaviorTimestamp): self._BehaviorTimestamp = BehaviorTimestamp @property def SceneId(self): """行为发生的场景ID,在控制台创建场景后获取 :rtype: str """ return self._SceneId @SceneId.setter def SceneId(self, SceneId): self._SceneId = SceneId @property def ItemTraceId(self): """推荐追踪ID,使用推荐结果中返回的ItemTraceId填入。 注意:如果和推荐结果中的ItemTraceId不同,会影响行为特征归因,影响推荐算法效果 :rtype: str """ return self._ItemTraceId @ItemTraceId.setter def ItemTraceId(self, ItemTraceId): self._ItemTraceId = ItemTraceId @property def ItemType(self): """内容类型,跟内容上报类型一致,用于效果分析,不做内容校验,<b>强烈建议</b> :rtype: str """ return self._ItemType @ItemType.setter def ItemType(self, ItemType): self._ItemType = ItemType @property def ReferrerItemId(self): """相关推荐场景点击进入详情页的内容id,该字段用来注明行为发生于哪个内容的详情页推荐中,<b>相关推荐场景强烈建议</b> :rtype: str """ return self._ReferrerItemId @ReferrerItemId.setter def ReferrerItemId(self, ReferrerItemId): self._ReferrerItemId = ReferrerItemId @property def UserIdList(self): """用户设备ID数组,可传入用户的多个类型ID,详见UserIdInfo结构体,建议补齐,<b>用于构建用户画像信息</b> :rtype: list of UserIdInfo """ return self._UserIdList @UserIdList.setter def UserIdList(self, UserIdList): self._UserIdList = UserIdList @property def Source(self): """算法来源: <br>● business 业务自己的算法对照组<br/> ● tencent 腾讯算法<br/> ● other 其他算法<br/>默认为tencent,区分行为来源于哪个算法,<b>用于Poc阶段的效果对比验证</b> :rtype: str """ return self._Source @Source.setter def Source(self, Source): self._Source = Source @property def Country(self): """行为发生时的国家,ISO 3166-1 alpha-2编码,参考<a href="https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2" target="_blank">ISO 3166-1 alpha-2</a>,中国:“CN”,<b>用作特征</b> :rtype: str """ return self._Country @Country.setter def Country(self, Country): self._Country = Country @property def Province(self): """行为发生时的省份,ISO 3166-2行政区编码,如中国参考<a href="https://zh.wikipedia.org/wiki/ISO_3166-2:CN" target="_blank">ISO_3166-2:CN</a>,广东省:“CN-GD”,<b>用作特征</b> :rtype: str """ return self._Province @Province.setter def Province(self, Province): self._Province = Province @property def City(self): """行为发生时的城市地区,统一用国家最新标准地区行政编码,如:<a href="https://www.mca.gov.cn/article/sj/xzqh/2020/" target="_blank">2020年行政区编码</a>,其他国家统一用国际公认城市简称或者城市编码,<b>用作特征</b> :rtype: str """ return self._City @City.setter def City(self, City): self._City = City @property def IP(self): """行为发生时的客户端ip,<b>用作特征</b> :rtype: str """ return self._IP @IP.setter def IP(self, IP): self._IP = IP @property def Network(self): """行为发生时的客户端网络类型,<b>用作特征</b> :rtype: str """ return self._Network @Network.setter def Network(self, Network): self._Network = Network @property def Platform(self): """行为发生时的客户端平台,ios/android/h5,<b>用作特征</b> :rtype: str """ return self._Platform @Platform.setter def Platform(self, Platform): self._Platform = Platform @property def AppVersion(self): """行为发生时的客户端app版本,<b>用作特征</b> :rtype: str """ return self._AppVersion @AppVersion.setter def AppVersion(self, AppVersion): self._AppVersion = AppVersion @property def OsVersion(self): """行为发生时的操作系统版本,<b>用作特征</b> :rtype: str """ return self._OsVersion @OsVersion.setter def OsVersion(self, OsVersion): self._OsVersion = OsVersion @property def DeviceModel(self): """行为发生时的机型,<b>用作特征</b> :rtype: str """ return self._DeviceModel @DeviceModel.setter def DeviceModel(self, DeviceModel): self._DeviceModel = DeviceModel @property def Extension(self): """json字符串,<b>用于行为数据的扩展</b>,需要base64加密 :rtype: str """ return self._Extension @Extension.setter def Extension(self, Extension): self._Extension = Extension def _deserialize(self, params): self._UserId = params.get("UserId") self._ItemId = params.get("ItemId") self._BehaviorType = params.get("BehaviorType") self._BehaviorValue = params.get("BehaviorValue") self._BehaviorTimestamp = params.get("BehaviorTimestamp") self._SceneId = params.get("SceneId") self._ItemTraceId = params.get("ItemTraceId") self._ItemType = params.get("ItemType") self._ReferrerItemId = params.get("ReferrerItemId") if params.get("UserIdList") is not None: self._UserIdList = [] for item in params.get("UserIdList"): obj = UserIdInfo() obj._deserialize(item) self._UserIdList.append(obj) self._Source = params.get("Source") self._Country = params.get("Country") self._Province = params.get("Province") self._City = params.get("City") self._IP = params.get("IP") self._Network = params.get("Network") self._Platform = params.get("Platform") self._AppVersion = params.get("AppVersion") self._OsVersion = params.get("OsVersion") self._DeviceModel = params.get("DeviceModel") self._Extension = params.get("Extension") 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 FeedRecommendRequest(AbstractModel): """FeedRecommend请求参数结构体 """ def __init__(self): r""" :param _InstanceId: 实例ID,在控制台获取 :type InstanceId: str :param _SceneId: 场景ID,在控制台创建场景后获取 :type SceneId: str :param _UserId: 用户唯一ID,客户自定义用户ID,作为一个用户的唯一标识 :type UserId: str :param _UserIdList: 用户设备ID数组,可传入用户的多个类型ID,用于关联画像信息 :type UserIdList: list of UserIdInfo :param _ItemCnt: 推荐返回数量,默认10个,最多支持50个的内容返回。如果有更多数量要求,<a href="https://console.cloud.tencent.com/workorder/category" target="_blank">提单</a>沟通解决 :type ItemCnt: int :param _CurrentItemId: 当场景是相关推荐时该值必填,场景是非相关推荐时该值无效 :type CurrentItemId: str :param _Extension: 扩展字段,json字符串,需要base64加密 :type Extension: str """ self._InstanceId = None self._SceneId = None self._UserId = None self._UserIdList = None self._ItemCnt = None self._CurrentItemId = None self._Extension = None @property def InstanceId(self): """实例ID,在控制台获取 :rtype: str """ return self._InstanceId @InstanceId.setter def InstanceId(self, InstanceId): self._InstanceId = InstanceId @property def SceneId(self): """场景ID,在控制台创建场景后获取 :rtype: str """ return self._SceneId @SceneId.setter def SceneId(self, SceneId): self._SceneId = SceneId @property def UserId(self): """用户唯一ID,客户自定义用户ID,作为一个用户的唯一标识 :rtype: str """ return self._UserId @UserId.setter def UserId(self, UserId): self._UserId = UserId @property def UserIdList(self): """用户设备ID数组,可传入用户的多个类型ID,用于关联画像信息 :rtype: list of UserIdInfo """ return self._UserIdList @UserIdList.setter def UserIdList(self, UserIdList): self._UserIdList = UserIdList @property def ItemCnt(self): """推荐返回数量,默认10个,最多支持50个的内容返回。如果有更多数量要求,<a href="https://console.cloud.tencent.com/workorder/category" target="_blank">提单</a>沟通解决 :rtype: int """ return self._ItemCnt @ItemCnt.setter def ItemCnt(self, ItemCnt): self._ItemCnt = ItemCnt @property def CurrentItemId(self): """当场景是相关推荐时该值必填,场景是非相关推荐时该值无效 :rtype: str """ return self._CurrentItemId @CurrentItemId.setter def CurrentItemId(self, CurrentItemId): self._CurrentItemId = CurrentItemId @property def Extension(self): """扩展字段,json字符串,需要base64加密 :rtype: str """ return self._Extension @Extension.setter def Extension(self, Extension): self._Extension = Extension def _deserialize(self, params): self._InstanceId = params.get("InstanceId") self._SceneId = params.get("SceneId") self._UserId = params.get("UserId") if params.get("UserIdList") is not None: self._UserIdList = [] for item in params.get("UserIdList"): obj = UserIdInfo() obj._deserialize(item) self._UserIdList.append(obj) self._ItemCnt = params.get("ItemCnt") self._CurrentItemId = params.get("CurrentItemId") self._Extension = params.get("Extension") 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 FeedRecommendResponse(AbstractModel): """FeedRecommend返回参数结构体 """ def __init__(self): r""" :param _DataList: 推荐返回的内容信息列表,返回结果已按策略规则做好了排序 :type DataList: list of RecItemData :param _RequestId: 唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。 :type RequestId: str """ self._DataList = None self._RequestId = None @property def DataList(self): """推荐返回的内容信息列表,返回结果已按策略规则做好了排序 :rtype: list of RecItemData """ return self._DataList @DataList.setter def DataList(self, DataList): self._DataList = DataList @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): if params.get("DataList") is not None: self._DataList = [] for item in params.get("DataList"): obj = RecItemData() obj._deserialize(item) self._DataList.append(obj) self._RequestId = params.get("RequestId") class FeedUserInfo(AbstractModel): """信息流用户信息 """ def __init__(self): r""" :param _UserId: 用户唯一ID,客户自定义用户ID,作为一个用户的唯一标识 :type UserId: str :param _UserIdList: 用户设备ID数组,可传入用户的多个类型ID,详见UserIdInfo结构体,建议补齐,<b>用于构建用户画像信息</b> :type UserIdList: list of UserIdInfo :param _Tags: 用户标签,多个标签用英文冒号联接,<b>用作特征,强烈建议</b> :type Tags: str :param _DislikeInfoList: 过滤列表,<b>会在推荐结果里过滤掉这类内容</b> :type DislikeInfoList: list of DislikeInfo :param _Age: 用户年龄 :type Age: int :param _Gender: 用户性别: 0 - 未知 1 - 男 2 - 女 :type Gender: int :param _Degree: 用户学历 :小学,初中,高中,大专,本科,硕士,博士 :type Degree: str :param _School: 用户毕业学校全称 :type School: str :param _Occupation: 用户职业 :type Occupation: str :param _Industry: 用户所属行业 :type Industry: str :param _ResidentCountry: 用户常驻国家,ISO 3166-1 alpha-2编码,参考<a href="https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2" target="_blank">ISO 3166-1 alpha-2</a>,中国:“CN” :type ResidentCountry: str :param _ResidentProvince: 用户常驻省份,ISO 3166-2行政区编码,如中国参考<a href="https://zh.wikipedia.org/wiki/ISO_3166-2:CN" target="_blank">ISO_3166-2:CN</a>,广东省:“CN-GD” :type ResidentProvince: str :param _ResidentCity: 用户常驻城市,统一用国家最新标准地区行政编码,如:<a href="https://www.mca.gov.cn/article/sj/xzqh/2020/" target="_blank">2020年行政区编码</a>, :type ResidentCity: str :param _RegisterTimestamp: 用户注册时间,秒级时间戳(1639624786) :type RegisterTimestamp: int :param _MembershipLevel: 用户会员等级 :type MembershipLevel: str :param _LastLoginTimestamp: 用户上一次登录时间,秒级时间戳(1639624786) :type LastLoginTimestamp: int :param _LastLoginIp: 用户上一次登录的ip :type LastLoginIp: str :param _LastModifyTimestamp: 用户信息的最后修改时间戳,秒级时间戳(1639624786) :type LastModifyTimestamp: int :param _Extension: json字符串,用于画像数据的扩展,需要base64加密 :type Extension: str """ self._UserId = None self._UserIdList = None self._Tags = None self._DislikeInfoList = None self._Age = None self._Gender = None self._Degree = None self._School = None self._Occupation = None self._Industry = None self._ResidentCountry = None self._ResidentProvince = None self._ResidentCity = None self._RegisterTimestamp = None self._MembershipLevel = None self._LastLoginTimestamp = None self._LastLoginIp = None self._LastModifyTimestamp = None self._Extension = None @property def UserId(self): """用户唯一ID,客户自定义用户ID,作为一个用户的唯一标识 :rtype: str """ return self._UserId @UserId.setter def UserId(self, UserId): self._UserId = UserId @property def UserIdList(self): """用户设备ID数组,可传入用户的多个类型ID,详见UserIdInfo结构体,建议补齐,<b>用于构建用户画像信息</b> :rtype: list of UserIdInfo """ return self._UserIdList @UserIdList.setter def UserIdList(self, UserIdList): self._UserIdList = UserIdList @property def Tags(self): """用户标签,多个标签用英文冒号联接,<b>用作特征,强烈建议</b> :rtype: str """ return self._Tags @Tags.setter def Tags(self, Tags): self._Tags = Tags @property def DislikeInfoList(self): """过滤列表,<b>会在推荐结果里过滤掉这类内容</b> :rtype: list of DislikeInfo """ return self._DislikeInfoList @DislikeInfoList.setter def DislikeInfoList(self, DislikeInfoList): self._DislikeInfoList = DislikeInfoList @property def Age(self): """用户年龄 :rtype: int """ return self._Age @Age.setter def Age(self, Age): self._Age = Age @property def Gender(self): """用户性别: 0 - 未知 1 - 男 2 - 女 :rtype: int """ return self._Gender @Gender.setter def Gender(self, Gender): self._Gender = Gender @property def Degree(self): """用户学历 :小学,初中,高中,大专,本科,硕士,博士 :rtype: str """ return self._Degree @Degree.setter def Degree(self, Degree): self._Degree = Degree @property def School(self): """用户毕业学校全称 :rtype: str """ return self._School @School.setter def School(self, School): self._School = School @property def Occupation(self): """用户职业 :rtype: str """ return self._Occupation @Occupation.setter def Occupation(self, Occupation): self._Occupation = Occupation @property def Industry(self): """用户所属行业 :rtype: str """ return self._Industry @Industry.setter def Industry(self, Industry): self._Industry = Industry @property def ResidentCountry(self): """用户常驻国家,ISO 3166-1 alpha-2编码,参考<a href="https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2" target="_blank">ISO 3166-1 alpha-2</a>,中国:“CN” :rtype: str """ return self._ResidentCountry @ResidentCountry.setter def ResidentCountry(self, ResidentCountry): self._ResidentCountry = ResidentCountry @property def ResidentProvince(self): """用户常驻省份,ISO 3166-2行政区编码,如中国参考<a href="https://zh.wikipedia.org/wiki/ISO_3166-2:CN" target="_blank">ISO_3166-2:CN</a>,广东省:“CN-GD” :rtype: str """ return self._ResidentProvince @ResidentProvince.setter def ResidentProvince(self, ResidentProvince): self._ResidentProvince = ResidentProvince @property def ResidentCity(self): """用户常驻城市,统一用国家最新标准地区行政编码,如:<a href="https://www.mca.gov.cn/article/sj/xzqh/2020/" target="_blank">2020年行政区编码</a>, :rtype: str """ return self._ResidentCity @ResidentCity.setter def ResidentCity(self, ResidentCity): self._ResidentCity = ResidentCity @property def RegisterTimestamp(self): """用户注册时间,秒级时间戳(1639624786) :rtype: int """ return self._RegisterTimestamp @RegisterTimestamp.setter def RegisterTimestamp(self, RegisterTimestamp): self._RegisterTimestamp = RegisterTimestamp @property def MembershipLevel(self): """用户会员等级 :rtype: str """ return self._MembershipLevel @MembershipLevel.setter def MembershipLevel(self, MembershipLevel): self._MembershipLevel = MembershipLevel @property def LastLoginTimestamp(self): """用户上一次登录时间,秒级时间戳(1639624786) :rtype: int """ return self._LastLoginTimestamp @LastLoginTimestamp.setter def LastLoginTimestamp(self, LastLoginTimestamp): self._LastLoginTimestamp = LastLoginTimestamp @property def LastLoginIp(self): """用户上一次登录的ip :rtype: str """ return self._LastLoginIp @LastLoginIp.setter def LastLoginIp(self, LastLoginIp): self._LastLoginIp = LastLoginIp @property def LastModifyTimestamp(self): """用户信息的最后修改时间戳,秒级时间戳(1639624786) :rtype: int """ return self._LastModifyTimestamp @LastModifyTimestamp.setter def LastModifyTimestamp(self, LastModifyTimestamp): self._LastModifyTimestamp = LastModifyTimestamp @property def Extension(self): """json字符串,用于画像数据的扩展,需要base64加密 :rtype: str """ return self._Extension @Extension.setter def Extension(self, Extension): self._Extension = Extension def _deserialize(self, params): self._UserId = params.get("UserId") if params.get("UserIdList") is not None: self._UserIdList = [] for item in params.get("UserIdList"): obj = UserIdInfo() obj._deserialize(item) self._UserIdList.append(obj) self._Tags = params.get("Tags") if params.get("DislikeInfoList") is not None: self._DislikeInfoList = [] for item in params.get("DislikeInfoList"): obj = DislikeInfo() obj._deserialize(item) self._DislikeInfoList.append(obj) self._Age = params.get("Age") self._Gender = params.get("Gender") self._Degree = params.get("Degree") self._School = params.get("School") self._Occupation = params.get("Occupation") self._Industry = params.get("Industry") self._ResidentCountry = params.get("ResidentCountry") self._ResidentProvince = params.get("ResidentProvince") self._ResidentCity = params.get("ResidentCity") self._RegisterTimestamp = params.get("RegisterTimestamp") self._MembershipLevel = params.get("MembershipLevel") self._LastLoginTimestamp = params.get("LastLoginTimestamp") self._LastLoginIp = params.get("LastLoginIp") self._LastModifyTimestamp = params.get("LastModifyTimestamp") self._Extension = params.get("Extension") 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 GoodsBehaviorInfo(AbstractModel): """电商行为 """ def __init__(self): r""" :param _UserId: 用户唯一ID,客户自定义用户ID,作为一个用户的唯一标识 :type UserId: str :param _GoodsId: 商品唯一ID,skuId或spuId,客户根据需求自行决定商品主键粒度 :type GoodsId: str :param _BehaviorType: 行为类型:<br> ● expose - 曝光,<b>必须</b><br> ● click - 点击,<b>必须</b><br/> ● stay - 详情页停留时长,<b>强烈建议</b><br/> ● videoover - 视频播放时长,<b>强烈建议</b><br/> ● like - 点赞&喜欢,<b>正效果</b><br/> ● collect - 收藏,<b>正效果</b><br/> ● share - 转发&分享,<b>正效果</b><br/> ● reward - 打赏,<b>正效果</b><br/> ● unlike - 踩&不喜欢,<b>负效果</b><br/> ● comment - 评论<br/> ● order - 下单<br/> ● buy - 购买成功<br/> ● addcart - 加入购物车<br/> 不支持的行为类型,可以映射到未被使用的其他行为类型。如实际业务数据中有私信行为,没有收藏行为,可以将私信行为映射到收藏行为 :type BehaviorType: str :param _BehaviorValue: 行为类型对应的行为值:<br/> ● expose - 曝光,固定填1<br/> ● click - 点击,固定填1<br/> ● stay - 详情页停留时长,填停留秒数,取值[1-86400]<br/> ● videoover - 视频播放时长,填播放结束的秒数,取值[1-86400]<br/> ● like - 点赞&喜欢,固定填1<br/> ● collect - 收藏,固定填1<br/> ● share - 转发&分享,固定填1<br/> ● reward - 打赏,填打赏金额,没有则填1<br/> ● unlike - 踩&不喜欢,填不喜欢的原因,没有则填1<br/> ● comment - 评论,填评论内容,如“上海加油”<br/> ● order - 下单,固定填1<br/> ● buy - 购买成功,固定填1<br/> ● addcart - 加入购物车,固定填1 :type BehaviorValue: str :param _BehaviorTimestamp: 行为发生的时间戳: 秒级时间戳,尽量实时上报,最长不超过半小时否则会影响推荐结果的准确性 :type BehaviorTimestamp: int :param _SceneId: 行为发生的场景ID,在控制台创建场景后获取 :type SceneId: str :param _Source: 算法来源: <br>● business 业务自己的算法对照组<br/> ● tencent 腾讯算法<br/> ● other 其他算法<br/>默认为tencent,区分行为来源于哪个算法,<b>用于Poc阶段的效果对比验证</b> :type Source: str :param _Page: 标识行为发生在app内哪个页面,取值客户自定,可以是明文或id,建议传明文便于理解、分析,如首页,发现页,用户中心等 <b>用作上下文特征,刻画不同场景用户行为分布的差异</b> :type Page: str :param _Module: 标识行为发生在页面的哪一区块,取值客户自定,可以是明文或id,建议传明文便于理解、分析,如横幅、广告位、猜你喜欢等 <b>用作上下文特征,刻画不同模块用户行为分布的差异</b> :type Module: str :param _GoodsTraceId: 推荐追踪ID,使用推荐结果中返回的GoodsTraceId填入。 注意:如果和推荐结果中的GoodsTraceId不同,会影响行为特征归因,影响推荐算法效果。<b>强烈建议</b> :type GoodsTraceId: str :param _ReferrerGoodsId: 相关推荐场景点击进入详情页的内容id,该字段用来注明行为发生于哪个内容的详情页推荐中,<b>相关推荐场景强烈建议</b> :type ReferrerGoodsId: str :param _OrderGoodsCnt: 订单商品购买个数,当behaviorType=order,buy或addcart时有值,<b>用作特征</b> :type OrderGoodsCnt: int :param _OrderAmount: 订单总金额,当behaviorType=order或buy时有值(单位:元,统一货币体系,如统一为RMB,美元等),<b>用作特征</b> :type OrderAmount: float :param _UserIdList: 用户设备ID数组,可传入用户的多个类型ID,详见UserIdInfo结构体,建议补齐,<b>用于构建用户画像信息</b> :type UserIdList: list of StrUserIdInfo :param _UserPortraitInfo: 行为发生时用户基础特征信息,<b>用作特征</b> :type UserPortraitInfo: :class:`tencentcloud.irp.v20220805.models.UserPortraitInfo` :param _Position: 标识行为发生在模块内的具体位置,如1、2、... <b>用作上下文特征,刻画不同位置用户行为分布的差异</b> :type Position: int :param _Extension: json字符串,<b>用于行为数据的扩展</b> :type Extension: str """ self._UserId = None self._GoodsId = None self._BehaviorType = None self._BehaviorValue = None self._BehaviorTimestamp = None self._SceneId = None self._Source = None self._Page = None self._Module = None self._GoodsTraceId = None self._ReferrerGoodsId = None self._OrderGoodsCnt = None self._OrderAmount = None self._UserIdList = None self._UserPortraitInfo = None self._Position = None self._Extension = None @property def UserId(self): """用户唯一ID,客户自定义用户ID,作为一个用户的唯一标识 :rtype: str """ return self._UserId @UserId.setter def UserId(self, UserId): self._UserId = UserId @property def GoodsId(self): """商品唯一ID,skuId或spuId,客户根据需求自行决定商品主键粒度 :rtype: str """ return self._GoodsId @GoodsId.setter def GoodsId(self, GoodsId): self._GoodsId = GoodsId @property def BehaviorType(self): """行为类型:<br> ● expose - 曝光,<b>必须</b><br> ● click - 点击,<b>必须</b><br/> ● stay - 详情页停留时长,<b>强烈建议</b><br/> ● videoover - 视频播放时长,<b>强烈建议</b><br/> ● like - 点赞&喜欢,<b>正效果</b><br/> ● collect - 收藏,<b>正效果</b><br/> ● share - 转发&分享,<b>正效果</b><br/> ● reward - 打赏,<b>正效果</b><br/> ● unlike - 踩&不喜欢,<b>负效果</b><br/> ● comment - 评论<br/> ● order - 下单<br/> ● buy - 购买成功<br/> ● addcart - 加入购物车<br/> 不支持的行为类型,可以映射到未被使用的其他行为类型。如实际业务数据中有私信行为,没有收藏行为,可以将私信行为映射到收藏行为 :rtype: str """ return self._BehaviorType @BehaviorType.setter def BehaviorType(self, BehaviorType): self._BehaviorType = BehaviorType @property def BehaviorValue(self): """行为类型对应的行为值:<br/> ● expose - 曝光,固定填1<br/> ● click - 点击,固定填1<br/> ● stay - 详情页停留时长,填停留秒数,取值[1-86400]<br/> ● videoover - 视频播放时长,填播放结束的秒数,取值[1-86400]<br/> ● like - 点赞&喜欢,固定填1<br/> ● collect - 收藏,固定填1<br/> ● share - 转发&分享,固定填1<br/> ● reward - 打赏,填打赏金额,没有则填1<br/> ● unlike - 踩&不喜欢,填不喜欢的原因,没有则填1<br/> ● comment - 评论,填评论内容,如“上海加油”<br/> ● order - 下单,固定填1<br/> ● buy - 购买成功,固定填1<br/> ● addcart - 加入购物车,固定填1 :rtype: str """ return self._BehaviorValue @BehaviorValue.setter def BehaviorValue(self, BehaviorValue): self._BehaviorValue = BehaviorValue @property def BehaviorTimestamp(self): """行为发生的时间戳: 秒级时间戳,尽量实时上报,最长不超过半小时否则会影响推荐结果的准确性 :rtype: int """ return self._BehaviorTimestamp @BehaviorTimestamp.setter def BehaviorTimestamp(self, BehaviorTimestamp): self._BehaviorTimestamp = BehaviorTimestamp @property def SceneId(self): """行为发生的场景ID,在控制台创建场景后获取 :rtype: str """ return self._SceneId @SceneId.setter def SceneId(self, SceneId): self._SceneId = SceneId @property def Source(self): """算法来源: <br>● business 业务自己的算法对照组<br/> ● tencent 腾讯算法<br/> ● other 其他算法<br/>默认为tencent,区分行为来源于哪个算法,<b>用于Poc阶段的效果对比验证</b> :rtype: str """ return self._Source @Source.setter def Source(self, Source): self._Source = Source @property def Page(self): """标识行为发生在app内哪个页面,取值客户自定,可以是明文或id,建议传明文便于理解、分析,如首页,发现页,用户中心等 <b>用作上下文特征,刻画不同场景用户行为分布的差异</b> :rtype: str """ return self._Page @Page.setter def Page(self, Page): self._Page = Page @property def Module(self): """标识行为发生在页面的哪一区块,取值客户自定,可以是明文或id,建议传明文便于理解、分析,如横幅、广告位、猜你喜欢等 <b>用作上下文特征,刻画不同模块用户行为分布的差异</b> :rtype: str """ return self._Module @Module.setter def Module(self, Module): self._Module = Module @property def GoodsTraceId(self): """推荐追踪ID,使用推荐结果中返回的GoodsTraceId填入。 注意:如果和推荐结果中的GoodsTraceId不同,会影响行为特征归因,影响推荐算法效果。<b>强烈建议</b> :rtype: str """ return self._GoodsTraceId @GoodsTraceId.setter def GoodsTraceId(self, GoodsTraceId): self._GoodsTraceId = GoodsTraceId @property def ReferrerGoodsId(self): """相关推荐场景点击进入详情页的内容id,该字段用来注明行为发生于哪个内容的详情页推荐中,<b>相关推荐场景强烈建议</b> :rtype: str """ return self._ReferrerGoodsId @ReferrerGoodsId.setter def ReferrerGoodsId(self, ReferrerGoodsId): self._ReferrerGoodsId = ReferrerGoodsId @property def OrderGoodsCnt(self): """订单商品购买个数,当behaviorType=order,buy或addcart时有值,<b>用作特征</b> :rtype: int """ return self._OrderGoodsCnt @OrderGoodsCnt.setter def OrderGoodsCnt(self, OrderGoodsCnt): self._OrderGoodsCnt = OrderGoodsCnt @property def OrderAmount(self): """订单总金额,当behaviorType=order或buy时有值(单位:元,统一货币体系,如统一为RMB,美元等),<b>用作特征</b> :rtype: float """ return self._OrderAmount @OrderAmount.setter def OrderAmount(self, OrderAmount): self._OrderAmount = OrderAmount @property def UserIdList(self): """用户设备ID数组,可传入用户的多个类型ID,详见UserIdInfo结构体,建议补齐,<b>用于构建用户画像信息</b> :rtype: list of StrUserIdInfo """ return self._UserIdList @UserIdList.setter def UserIdList(self, UserIdList): self._UserIdList = UserIdList @property def UserPortraitInfo(self): """行为发生时用户基础特征信息,<b>用作特征</b> :rtype: :class:`tencentcloud.irp.v20220805.models.UserPortraitInfo` """ return self._UserPortraitInfo @UserPortraitInfo.setter def UserPortraitInfo(self, UserPortraitInfo): self._UserPortraitInfo = UserPortraitInfo @property def Position(self): """标识行为发生在模块内的具体位置,如1、2、... <b>用作上下文特征,刻画不同位置用户行为分布的差异</b> :rtype: int """ return self._Position @Position.setter def Position(self, Position): self._Position = Position @property def Extension(self): """json字符串,<b>用于行为数据的扩展</b> :rtype: str """ return self._Extension @Extension.setter def Extension(self, Extension): self._Extension = Extension def _deserialize(self, params): self._UserId = params.get("UserId") self._GoodsId = params.get("GoodsId") self._BehaviorType = params.get("BehaviorType") self._BehaviorValue = params.get("BehaviorValue") self._BehaviorTimestamp = params.get("BehaviorTimestamp") self._SceneId = params.get("SceneId") self._Source = params.get("Source") self._Page = params.get("Page") self._Module = params.get("Module") self._GoodsTraceId = params.get("GoodsTraceId") self._ReferrerGoodsId = params.get("ReferrerGoodsId") self._OrderGoodsCnt = params.get("OrderGoodsCnt") self._OrderAmount = params.get("OrderAmount") if params.get("UserIdList") is not None: self._UserIdList = [] for item in params.get("UserIdList"): obj = StrUserIdInfo() obj._deserialize(item) self._UserIdList.append(obj) if params.get("UserPortraitInfo") is not None: self._UserPortraitInfo = UserPortraitInfo() self._UserPortraitInfo._deserialize(params.get("UserPortraitInfo")) self._Position = params.get("Position") self._Extension = params.get("Extension") 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 GoodsInfo(AbstractModel): """电商物料内容 """ def __init__(self): r""" :param _GoodsId: 商品唯一ID,skuId或spuId,客户根据需求自行决定商品主键粒度。建议限制在128字符以内 :type GoodsId: str :param _GoodsType: 商品物料展示类型:<br/>● article -图文<br>● text -纯文本<br/>● video -视频<br/>● short_video -时长15秒以内的视频<br/>● mini_video -竖屏视频<br/>● image -纯图片<br/>(如当前类型不满足,请<a href="https://console.cloud.tencent.com/workorder/category" target="_blank">提单</a>沟通解决方案) :type GoodsType: str :param _Status: 商品状态: ● 1 - 上架 ● 2 - 下架 Status=2的内容不会在推荐结果中出现 需要下架内容时,把Status的值修改为2即可 :type Status: int :param _PublishTimestamp: 商品生成时间,秒级时间戳(1639624786),需大于0,<b>用作特征和物料管理</b> :type PublishTimestamp: int :param _ExpireTimestamp: 商品过期时间,秒级时间戳(1639624786),如未填,则默认PublishTimestamp往后延一年,<b>用作特征</b>,过期则不会被推荐,<b>强烈建议</b> :type ExpireTimestamp: int :param _SpuId: spu((Standard Product Unit))维度id,商品聚合信息的最小单位,<b>强烈建议</b> :type SpuId: str :param _CategoryLevel: 类目层级数,例如3级类目,则填3,和CategoryPath字段的类数据匹配,<b>强烈建议</b> :type CategoryLevel: int :param _CategoryPath: 类目路径,一级二级三级等依次用英文冒号联接,和CategoryLevel字段值匹配,如体育:“女装:裙子:半身裙”。<b>用于物料池管理,强烈建议</b> :type CategoryPath: str :param _Title: 商品标题,<b>主要用于语义分析</b>,<b>强烈建议</b> :type Title: str :param _Tags: 商品标签,多个标签用英文冒号联接,<b>用作特征,强烈建议</b> :type Tags: str :param _Brand: 商品对应的品牌,取值用户自定义,可以是品牌id或品牌明文,<b>用作特征以及打散/过滤规则,强烈建议</b> :type Brand: str :param _ShopId: 商品所属店铺ID,取值客户自定义,<b>用作特征,强烈建议</b> :type ShopId: str :param _OrgPrice: 商品原始价格(单位:元,统一货币体系,如统一为RMB或美元等),<b>用作特征,强烈建议</b> :type OrgPrice: float :param _CurPrice: 商品当前价格(单位:元,统一货币体系,如统一为RMB或美元等),<b>用作特征,强烈建议</b> :type CurPrice: float :param _SourceId: 商品来源类型,客户自定义,<b>用于物料池管理</b> :type SourceId: str :param _Content: 商品正文关键片段,建议控制在500字符以内,<b>主要用于语义分析</b> :type Content: str :param _ContentUrl: 商品正文详情,主要用于语义分析,当内容过大时建议用ContentUrl传递,<b>与Content可二选一</b> :type ContentUrl: str :param _PicUrlList: 商品封面url,不超过10个,<b>用作特征</b> :type PicUrlList: list of str :param _Country: 卖家所在国家,ISO 3166-1 alpha-2编码,参考<a href="https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2" target="_blank">ISO 3166-1 alpha-2</a>,中国:“CN”,<b>用作特征</b> :type Country: str :param _Province: 卖家所在省份,ISO 3166-2行政区编码,如中国参考<a href="https://zh.wikipedia.org/wiki/ISO_3166-2:CN" target="_blank">ISO_3166-2:CN</a>,广东省:“CN-GD”,<b>用作特征</b> :type Province: str :param _City: 卖家所在城市地区,统一用国家最新标准地区行政编码,如:<a href="https://www.mca.gov.cn/article/sj/xzqh/2020/" target="_blank">2020年行政区编码</a>,其他国家统一用国际公认城市简称或者城市编码,<b>用作特征</b> :type City: str :param _FreeShipping: 商品是否包邮;1:包邮;2:不包邮;3:满足条件包邮,<b>用作特征</b> :type FreeShipping: int :param _ShippingPrice: 商品邮费(单位:元,统一货币体系,如统一为RMB或美元等),<b>用作特征</b> :type ShippingPrice: float :param _PraiseCnt: 商品累计好评次数,<b>用作特征</b> :type PraiseCnt: int :param _CommentCnt: 商品累计评论次数,<b>用作特征</b> :type CommentCnt: int :param _ShareCnt: 商品累计分享次数,<b>用作特征</b> :type ShareCnt: int :param _CollectCnt: 商品累计收藏次数,<b>用作特征</b> :type CollectCnt: int :param _OrderCnt: 商品累积成交次数,<b>用作特征</b> :type OrderCnt: int :param _Score: 商品平均客户评分,取值范围用户自定,<b>用作特征</b> :type Score: float :param _Extension: json字符串,<b>用于物料池管理的自定义扩展</b> :type Extension: str """ self._GoodsId = None self._GoodsType = None self._Status = None self._PublishTimestamp = None self._ExpireTimestamp = None self._SpuId = None self._CategoryLevel = None self._CategoryPath = None self._Title = None self._Tags = None self._Brand = None self._ShopId = None self._OrgPrice = None self._CurPrice = None self._SourceId = None self._Content = None self._ContentUrl = None self._PicUrlList = None self._Country = None self._Province = None self._City = None self._FreeShipping = None self._ShippingPrice = None self._PraiseCnt = None self._CommentCnt = None self._ShareCnt = None self._CollectCnt = None self._OrderCnt = None self._Score = None self._Extension = None @property def GoodsId(self): """商品唯一ID,skuId或spuId,客户根据需求自行决定商品主键粒度。建议限制在128字符以内 :rtype: str """ return self._GoodsId @GoodsId.setter def GoodsId(self, GoodsId): self._GoodsId = GoodsId @property def GoodsType(self): """商品物料展示类型:<br/>● article -图文<br>● text -纯文本<br/>● video -视频<br/>● short_video -时长15秒以内的视频<br/>● mini_video -竖屏视频<br/>● image -纯图片<br/>(如当前类型不满足,请<a href="https://console.cloud.tencent.com/workorder/category" target="_blank">提单</a>沟通解决方案) :rtype: str """ return self._GoodsType @GoodsType.setter def GoodsType(self, GoodsType): self._GoodsType = GoodsType @property def Status(self): """商品状态: ● 1 - 上架 ● 2 - 下架 Status=2的内容不会在推荐结果中出现 需要下架内容时,把Status的值修改为2即可 :rtype: int """ return self._Status @Status.setter def Status(self, Status): self._Status = Status @property def PublishTimestamp(self): """商品生成时间,秒级时间戳(1639624786),需大于0,<b>用作特征和物料管理</b> :rtype: int """ return self._PublishTimestamp @PublishTimestamp.setter def PublishTimestamp(self, PublishTimestamp): self._PublishTimestamp = PublishTimestamp @property def ExpireTimestamp(self): """商品过期时间,秒级时间戳(1639624786),如未填,则默认PublishTimestamp往后延一年,<b>用作特征</b>,过期则不会被推荐,<b>强烈建议</b> :rtype: int """ return self._ExpireTimestamp @ExpireTimestamp.setter def ExpireTimestamp(self, ExpireTimestamp): self._ExpireTimestamp = ExpireTimestamp @property def SpuId(self): """spu((Standard Product Unit))维度id,商品聚合信息的最小单位,<b>强烈建议</b> :rtype: str """ return self._SpuId @SpuId.setter def SpuId(self, SpuId): self._SpuId = SpuId @property def CategoryLevel(self): """类目层级数,例如3级类目,则填3,和CategoryPath字段的类数据匹配,<b>强烈建议</b> :rtype: int """ return self._CategoryLevel @CategoryLevel.setter def CategoryLevel(self, CategoryLevel): self._CategoryLevel = CategoryLevel @property def CategoryPath(self): """类目路径,一级二级三级等依次用英文冒号联接,和CategoryLevel字段值匹配,如体育:“女装:裙子:半身裙”。<b>用于物料池管理,强烈建议</b> :rtype: str """ return self._CategoryPath @CategoryPath.setter def CategoryPath(self, CategoryPath): self._CategoryPath = CategoryPath @property def Title(self): """商品标题,<b>主要用于语义分析</b>,<b>强烈建议</b> :rtype: str """ return self._Title @Title.setter def Title(self, Title): self._Title = Title @property def Tags(self): """商品标签,多个标签用英文冒号联接,<b>用作特征,强烈建议</b> :rtype: str """ return self._Tags @Tags.setter def Tags(self, Tags): self._Tags = Tags @property def Brand(self): """商品对应的品牌,取值用户自定义,可以是品牌id或品牌明文,<b>用作特征以及打散/过滤规则,强烈建议</b> :rtype: str """ return self._Brand @Brand.setter def Brand(self, Brand): self._Brand = Brand @property def ShopId(self): """商品所属店铺ID,取值客户自定义,<b>用作特征,强烈建议</b> :rtype: str """ return self._ShopId @ShopId.setter def ShopId(self, ShopId): self._ShopId = ShopId @property def OrgPrice(self): """商品原始价格(单位:元,统一货币体系,如统一为RMB或美元等),<b>用作特征,强烈建议</b> :rtype: float """ return self._OrgPrice @OrgPrice.setter def OrgPrice(self, OrgPrice): self._OrgPrice = OrgPrice @property def CurPrice(self): """商品当前价格(单位:元,统一货币体系,如统一为RMB或美元等),<b>用作特征,强烈建议</b> :rtype: float """ return self._CurPrice @CurPrice.setter def CurPrice(self, CurPrice): self._CurPrice = CurPrice @property def SourceId(self): """商品来源类型,客户自定义,<b>用于物料池管理</b> :rtype: str """ return self._SourceId @SourceId.setter def SourceId(self, SourceId): self._SourceId = SourceId @property def Content(self): """商品正文关键片段,建议控制在500字符以内,<b>主要用于语义分析</b> :rtype: str """ return self._Content @Content.setter def Content(self, Content): self._Content = Content @property def ContentUrl(self): """商品正文详情,主要用于语义分析,当内容过大时建议用ContentUrl传递,<b>与Content可二选一</b> :rtype: str """ return self._ContentUrl @ContentUrl.setter def ContentUrl(self, ContentUrl): self._ContentUrl = ContentUrl @property def PicUrlList(self): """商品封面url,不超过10个,<b>用作特征</b> :rtype: list of str """ return self._PicUrlList @PicUrlList.setter def PicUrlList(self, PicUrlList): self._PicUrlList = PicUrlList @property def Country(self): """卖家所在国家,ISO 3166-1 alpha-2编码,参考<a href="https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2" target="_blank">ISO 3166-1 alpha-2</a>,中国:“CN”,<b>用作特征</b> :rtype: str """ return self._Country @Country.setter def Country(self, Country): self._Country = Country @property def Province(self): """卖家所在省份,ISO 3166-2行政区编码,如中国参考<a href="https://zh.wikipedia.org/wiki/ISO_3166-2:CN" target="_blank">ISO_3166-2:CN</a>,广东省:“CN-GD”,<b>用作特征</b> :rtype: str """ return self._Province @Province.setter def Province(self, Province): self._Province = Province @property def City(self): """卖家所在城市地区,统一用国家最新标准地区行政编码,如:<a href="https://www.mca.gov.cn/article/sj/xzqh/2020/" target="_blank">2020年行政区编码</a>,其他国家统一用国际公认城市简称或者城市编码,<b>用作特征</b> :rtype: str """ return self._City @City.setter def City(self, City): self._City = City @property def FreeShipping(self): """商品是否包邮;1:包邮;2:不包邮;3:满足条件包邮,<b>用作特征</b> :rtype: int """ return self._FreeShipping @FreeShipping.setter def FreeShipping(self, FreeShipping): self._FreeShipping = FreeShipping @property def ShippingPrice(self): """商品邮费(单位:元,统一货币体系,如统一为RMB或美元等),<b>用作特征</b> :rtype: float """ return self._ShippingPrice @ShippingPrice.setter def ShippingPrice(self, ShippingPrice): self._ShippingPrice = ShippingPrice @property def PraiseCnt(self): """商品累计好评次数,<b>用作特征</b> :rtype: int """ return self._PraiseCnt @PraiseCnt.setter def PraiseCnt(self, PraiseCnt): self._PraiseCnt = PraiseCnt @property def CommentCnt(self): """商品累计评论次数,<b>用作特征</b> :rtype: int """ return self._CommentCnt @CommentCnt.setter def CommentCnt(self, CommentCnt): self._CommentCnt = CommentCnt @property def ShareCnt(self): """商品累计分享次数,<b>用作特征</b> :rtype: int """ return self._ShareCnt @ShareCnt.setter def ShareCnt(self, ShareCnt): self._ShareCnt = ShareCnt @property def CollectCnt(self): """商品累计收藏次数,<b>用作特征</b> :rtype: int """ return self._CollectCnt @CollectCnt.setter def CollectCnt(self, CollectCnt): self._CollectCnt = CollectCnt @property def OrderCnt(self): """商品累积成交次数,<b>用作特征</b> :rtype: int """ return self._OrderCnt @OrderCnt.setter def OrderCnt(self, OrderCnt): self._OrderCnt = OrderCnt @property def Score(self): """商品平均客户评分,取值范围用户自定,<b>用作特征</b> :rtype: float """ return self._Score @Score.setter def Score(self, Score): self._Score = Score @property def Extension(self): """json字符串,<b>用于物料池管理的自定义扩展</b> :rtype: str """ return self._Extension @Extension.setter def Extension(self, Extension): self._Extension = Extension def _deserialize(self, params): self._GoodsId = params.get("GoodsId") self._GoodsType = params.get("GoodsType") self._Status = params.get("Status") self._PublishTimestamp = params.get("PublishTimestamp") self._ExpireTimestamp = params.get("ExpireTimestamp") self._SpuId = params.get("SpuId") self._CategoryLevel = params.get("CategoryLevel") self._CategoryPath = params.get("CategoryPath") self._Title = params.get("Title") self._Tags = params.get("Tags") self._Brand = params.get("Brand") self._ShopId = params.get("ShopId") self._OrgPrice = params.get("OrgPrice") self._CurPrice = params.get("CurPrice") self._SourceId = params.get("SourceId") self._Content = params.get("Content") self._ContentUrl = params.get("ContentUrl") self._PicUrlList = params.get("PicUrlList") self._Country = params.get("Country") self._Province = params.get("Province") self._City = params.get("City") self._FreeShipping = params.get("FreeShipping") self._ShippingPrice = params.get("ShippingPrice") self._PraiseCnt = params.get("PraiseCnt") self._CommentCnt = params.get("CommentCnt") self._ShareCnt = params.get("ShareCnt") self._CollectCnt = params.get("CollectCnt") self._OrderCnt = params.get("OrderCnt") self._Score = params.get("Score") self._Extension = params.get("Extension") 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 RecGoodsData(AbstractModel): """推荐返回的内容信息 """ def __init__(self): r""" :param _GoodsId: 推荐返回的商品ID :type GoodsId: str :param _Score: 推荐结果分,取值范围[0,1000000] 注意:此字段可能返回 null,表示取不到有效值。 :type Score: float :param _GoodsTraceId: 推荐追踪id,本次推荐内容产生的后续行为上报均要用该GoodsTraceId上报。每次接口调用返回的GoodsTraceId不同 注意:此字段可能返回 null,表示取不到有效值。 :type GoodsTraceId: str :param _Position: 商品所在位置 注意:此字段可能返回 null,表示取不到有效值。 :type Position: int """ self._GoodsId = None self._Score = None self._GoodsTraceId = None self._Position = None @property def GoodsId(self): """推荐返回的商品ID :rtype: str """ return self._GoodsId @GoodsId.setter def GoodsId(self, GoodsId): self._GoodsId = GoodsId @property def Score(self): """推荐结果分,取值范围[0,1000000] 注意:此字段可能返回 null,表示取不到有效值。 :rtype: float """ return self._Score @Score.setter def Score(self, Score): self._Score = Score @property def GoodsTraceId(self): """推荐追踪id,本次推荐内容产生的后续行为上报均要用该GoodsTraceId上报。每次接口调用返回的GoodsTraceId不同 注意:此字段可能返回 null,表示取不到有效值。 :rtype: str """ return self._GoodsTraceId @GoodsTraceId.setter def GoodsTraceId(self, GoodsTraceId): self._GoodsTraceId = GoodsTraceId @property def Position(self): """商品所在位置 注意:此字段可能返回 null,表示取不到有效值。 :rtype: int """ return self._Position @Position.setter def Position(self, Position): self._Position = Position def _deserialize(self, params): self._GoodsId = params.get("GoodsId") self._Score = params.get("Score") self._GoodsTraceId = params.get("GoodsTraceId") self._Position = params.get("Position") 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 RecItemData(AbstractModel): """推荐返回的内容信息 """ def __init__(self): r""" :param _ItemId: 推荐的内容ID :type ItemId: str :param _ItemType: 内容类型,同内容上报类型一致 注意:此字段可能返回 null,表示取不到有效值。 :type ItemType: str :param _ItemTraceId: 推荐追踪id,本次推荐内容产生的后续行为上报均要用该ItemTraceId上报。每次接口调用返回的ItemTraceId不同 注意:此字段可能返回 null,表示取不到有效值。 :type ItemTraceId: str :param _Score: 推荐预测分,分值越高被推荐的理由越充分,取值范围[0,1000000],用于做二次排序的参考 注意:此字段可能返回 null,表示取不到有效值。 :type Score: float """ self._ItemId = None self._ItemType = None self._ItemTraceId = None self._Score = None @property def ItemId(self): """推荐的内容ID :rtype: str """ return self._ItemId @ItemId.setter def ItemId(self, ItemId): self._ItemId = ItemId @property def ItemType(self): """内容类型,同内容上报类型一致 注意:此字段可能返回 null,表示取不到有效值。 :rtype: str """ return self._ItemType @ItemType.setter def ItemType(self, ItemType): self._ItemType = ItemType @property def ItemTraceId(self): """推荐追踪id,本次推荐内容产生的后续行为上报均要用该ItemTraceId上报。每次接口调用返回的ItemTraceId不同 注意:此字段可能返回 null,表示取不到有效值。 :rtype: str """ return self._ItemTraceId @ItemTraceId.setter def ItemTraceId(self, ItemTraceId): self._ItemTraceId = ItemTraceId @property def Score(self): """推荐预测分,分值越高被推荐的理由越充分,取值范围[0,1000000],用于做二次排序的参考 注意:此字段可能返回 null,表示取不到有效值。 :rtype: float """ return self._Score @Score.setter def Score(self, Score): self._Score = Score def _deserialize(self, params): self._ItemId = params.get("ItemId") self._ItemType = params.get("ItemType") self._ItemTraceId = params.get("ItemTraceId") 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 ReportFeedBehaviorRequest(AbstractModel): """ReportFeedBehavior请求参数结构体 """ def __init__(self): r""" :param _InstanceId: 实例ID,在控制台获取 :type InstanceId: str :param _FeedBehaviorList: 上报的行为数据数组,数量不超过50 :type FeedBehaviorList: list of FeedBehaviorInfo """ self._InstanceId = None self._FeedBehaviorList = None @property def InstanceId(self): """实例ID,在控制台获取 :rtype: str """ return self._InstanceId @InstanceId.setter def InstanceId(self, InstanceId): self._InstanceId = InstanceId @property def FeedBehaviorList(self): """上报的行为数据数组,数量不超过50 :rtype: list of FeedBehaviorInfo """ return self._FeedBehaviorList @FeedBehaviorList.setter def FeedBehaviorList(self, FeedBehaviorList): self._FeedBehaviorList = FeedBehaviorList def _deserialize(self, params): self._InstanceId = params.get("InstanceId") if params.get("FeedBehaviorList") is not None: self._FeedBehaviorList = [] for item in params.get("FeedBehaviorList"): obj = FeedBehaviorInfo() obj._deserialize(item) self._FeedBehaviorList.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 ReportFeedBehaviorResponse(AbstractModel): """ReportFeedBehavior返回参数结构体 """ def __init__(self): r""" :param _RequestId: 唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。 :type RequestId: str """ self._RequestId = None @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._RequestId = params.get("RequestId") class ReportFeedItemRequest(AbstractModel): """ReportFeedItem请求参数结构体 """ def __init__(self): r""" :param _InstanceId: 实例ID,在控制台获取 :type InstanceId: str :param _FeedItemList: 上报的信息流内容数组,一次数量不超过50 :type FeedItemList: list of DocItem """ self._InstanceId = None self._FeedItemList = None @property def InstanceId(self): """实例ID,在控制台获取 :rtype: str """ return self._InstanceId @InstanceId.setter def InstanceId(self, InstanceId): self._InstanceId = InstanceId @property def FeedItemList(self): """上报的信息流内容数组,一次数量不超过50 :rtype: list of DocItem """ return self._FeedItemList @FeedItemList.setter def FeedItemList(self, FeedItemList): self._FeedItemList = FeedItemList def _deserialize(self, params): self._InstanceId = params.get("InstanceId") if params.get("FeedItemList") is not None: self._FeedItemList = [] for item in params.get("FeedItemList"): obj = DocItem() obj._deserialize(item) self._FeedItemList.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 ReportFeedItemResponse(AbstractModel): """ReportFeedItem返回参数结构体 """ def __init__(self): r""" :param _RequestId: 唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。 :type RequestId: str """ self._RequestId = None @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._RequestId = params.get("RequestId") class ReportFeedUserRequest(AbstractModel): """ReportFeedUser请求参数结构体 """ def __init__(self): r""" :param _InstanceId: 实例ID,在控制台获取 :type InstanceId: str :param _FeedUserList: 上报的用户信息数组,数量不超过50 :type FeedUserList: list of FeedUserInfo """ self._InstanceId = None self._FeedUserList = None @property def InstanceId(self): """实例ID,在控制台获取 :rtype: str """ return self._InstanceId @InstanceId.setter def InstanceId(self, InstanceId): self._InstanceId = InstanceId @property def FeedUserList(self): """上报的用户信息数组,数量不超过50 :rtype: list of FeedUserInfo """ return self._FeedUserList @FeedUserList.setter def FeedUserList(self, FeedUserList): self._FeedUserList = FeedUserList def _deserialize(self, params): self._InstanceId = params.get("InstanceId") if params.get("FeedUserList") is not None: self._FeedUserList = [] for item in params.get("FeedUserList"): obj = FeedUserInfo() obj._deserialize(item) self._FeedUserList.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 ReportFeedUserResponse(AbstractModel): """ReportFeedUser返回参数结构体 """ def __init__(self): r""" :param _RequestId: 唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。 :type RequestId: str """ self._RequestId = None @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._RequestId = params.get("RequestId") class ReportGoodsBehaviorRequest(AbstractModel): """ReportGoodsBehavior请求参数结构体 """ def __init__(self): r""" :param _InstanceId: 实例ID,在控制台获取 :type InstanceId: str :param _GoodsBehaviorList: 上报的商品对应的用户行为数据数组,数量不超过50 :type GoodsBehaviorList: list of GoodsBehaviorInfo """ self._InstanceId = None self._GoodsBehaviorList = None @property def InstanceId(self): """实例ID,在控制台获取 :rtype: str """ return self._InstanceId @InstanceId.setter def InstanceId(self, InstanceId): self._InstanceId = InstanceId @property def GoodsBehaviorList(self): """上报的商品对应的用户行为数据数组,数量不超过50 :rtype: list of GoodsBehaviorInfo """ return self._GoodsBehaviorList @GoodsBehaviorList.setter def GoodsBehaviorList(self, GoodsBehaviorList): self._GoodsBehaviorList = GoodsBehaviorList def _deserialize(self, params): self._InstanceId = params.get("InstanceId") if params.get("GoodsBehaviorList") is not None: self._GoodsBehaviorList = [] for item in params.get("GoodsBehaviorList"): obj = GoodsBehaviorInfo() obj._deserialize(item) self._GoodsBehaviorList.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 ReportGoodsBehaviorResponse(AbstractModel): """ReportGoodsBehavior返回参数结构体 """ def __init__(self): r""" :param _RequestId: 唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。 :type RequestId: str """ self._RequestId = None @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._RequestId = params.get("RequestId") class ReportGoodsInfoRequest(AbstractModel): """ReportGoodsInfo请求参数结构体 """ def __init__(self): r""" :param _InstanceId: 实例ID,在控制台获取 :type InstanceId: str :param _GoodsList: 上报的商品数组,一次数量不超过50 :type GoodsList: list of GoodsInfo """ self._InstanceId = None self._GoodsList = None @property def InstanceId(self): """实例ID,在控制台获取 :rtype: str """ return self._InstanceId @InstanceId.setter def InstanceId(self, InstanceId): self._InstanceId = InstanceId @property def GoodsList(self): """上报的商品数组,一次数量不超过50 :rtype: list of GoodsInfo """ return self._GoodsList @GoodsList.setter def GoodsList(self, GoodsList): self._GoodsList = GoodsList def _deserialize(self, params): self._InstanceId = params.get("InstanceId") if params.get("GoodsList") is not None: self._GoodsList = [] for item in params.get("GoodsList"): obj = GoodsInfo() obj._deserialize(item) self._GoodsList.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 ReportGoodsInfoResponse(AbstractModel): """ReportGoodsInfo返回参数结构体 """ def __init__(self): r""" :param _RequestId: 唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。 :type RequestId: str """ self._RequestId = None @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._RequestId = params.get("RequestId") class StrUserIdInfo(AbstractModel): """用户信息 """ class UserIdInfo(AbstractModel): """用户ID信息 """ def __init__(self): r""" :param _Type: 用户ID类型: <br/>● qq: qq号码 <br/>● qq_md5:qq的md5值 <br/>● imei:设备imei <br/>● imei_md5:imei的md5值 <br/>● idfa: Apple 向用户设备随机分配的设备标识符 <br/>● idfa_md5:idfa的md5值 <br/>● oaid:安卓10之后一种非永久性设备标识符 <br/>● oaid_md5:md5后的oaid <br/>● wx_openid:微信openid <br/>● qq_openid:QQ的openid <br/>● phone:电话号码 <br/>● phone_md5:md5后的电话号码 <br/>● phone_sha256:SHA256加密的手机号 <br/>● phone_sm3:国密SM3加密的手机号 <br/>(如当前类型不满足,请<a href="https://console.cloud.tencent.com/workorder/category" target="_blank">提单</a>沟通解决方案) :type Type: str :param _Value: 用户ID值 :type Value: str """ self._Type = None self._Value = None @property def Type(self): """用户ID类型: <br/>● qq: qq号码 <br/>● qq_md5:qq的md5值 <br/>● imei:设备imei <br/>● imei_md5:imei的md5值 <br/>● idfa: Apple 向用户设备随机分配的设备标识符 <br/>● idfa_md5:idfa的md5值 <br/>● oaid:安卓10之后一种非永久性设备标识符 <br/>● oaid_md5:md5后的oaid <br/>● wx_openid:微信openid <br/>● qq_openid:QQ的openid <br/>● phone:电话号码 <br/>● phone_md5:md5后的电话号码 <br/>● phone_sha256:SHA256加密的手机号 <br/>● phone_sm3:国密SM3加密的手机号 <br/>(如当前类型不满足,请<a href="https://console.cloud.tencent.com/workorder/category" target="_blank">提单</a>沟通解决方案) :rtype: str """ return self._Type @Type.setter def Type(self, Type): self._Type = Type @property def Value(self): """用户ID值 :rtype: str """ return self._Value @Value.setter def Value(self, Value): self._Value = Value def _deserialize(self, params): self._Type = params.get("Type") self._Value = params.get("Value") 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 UserPortraitInfo(AbstractModel): """用户基础画像 """
Memory