# frozen_string_literal: true
# Copyright (c) 2017-2018 THL A29 Limited, a Tencent company. All Rights Reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
module TencentCloud
module Irp
module V20220805
# DescribeGoodsRecommend请求参数结构体
class DescribeGoodsRecommendRequest < TencentCloud::Common::AbstractModel
# @param InstanceId: 实例ID,在控制台获取
# @type InstanceId: String
# @param SceneId: 场景ID,在控制台创建场景后获取
# @type SceneId: String
# @param UserId: 用户唯一ID,客户自定义用户ID,作为一个用户的唯一标识,需和行为数据上报接口中的UserId一致,否则影响特征关联
# @type UserId: String
# @param UserIdList: 用户设备ID数组,可传入用户的多个类型ID,用于关联画像信息
# @type UserIdList: Array
# @param GoodsCnt: 推荐返回数量,默认10个,最多支持50个的内容返回。如果有更多数量要求,提单沟通解决
# @type GoodsCnt: Integer
# @param CurrentGoodsId: 当场景是相关推荐时该值必填,场景是非相关推荐时该值无效
# @type CurrentGoodsId: String
# @param UserPortraitInfo: 用户的实时特征信息,用作特征
# @type UserPortraitInfo: :class:`Tencentcloud::Irp.v20220805.models.UserPortraitInfo`
# @param BlackGoodsList: 本次请求针对该用户需要过滤的物品列表(不超过100个)
# @type BlackGoodsList: Array
# @param Extension: json字符串,扩展字段
# @type Extension: String
attr_accessor :InstanceId, :SceneId, :UserId, :UserIdList, :GoodsCnt, :CurrentGoodsId, :UserPortraitInfo, :BlackGoodsList, :Extension
def initialize(instanceid=nil, sceneid=nil, userid=nil, useridlist=nil, goodscnt=nil, currentgoodsid=nil, userportraitinfo=nil, blackgoodslist=nil, extension=nil)
@InstanceId = instanceid
@SceneId = sceneid
@UserId = userid
@UserIdList = useridlist
@GoodsCnt = goodscnt
@CurrentGoodsId = currentgoodsid
@UserPortraitInfo = userportraitinfo
@BlackGoodsList = blackgoodslist
@Extension = extension
end
def deserialize(params)
@InstanceId = params['InstanceId']
@SceneId = params['SceneId']
@UserId = params['UserId']
unless params['UserIdList'].nil?
@UserIdList = []
params['UserIdList'].each do |i|
struseridinfo_tmp = StrUserIdInfo.new
struseridinfo_tmp.deserialize(i)
@UserIdList << struseridinfo_tmp
end
end
@GoodsCnt = params['GoodsCnt']
@CurrentGoodsId = params['CurrentGoodsId']
unless params['UserPortraitInfo'].nil?
@UserPortraitInfo = UserPortraitInfo.new
@UserPortraitInfo.deserialize(params['UserPortraitInfo'])
end
@BlackGoodsList = params['BlackGoodsList']
@Extension = params['Extension']
end
end
# DescribeGoodsRecommend返回参数结构体
class DescribeGoodsRecommendResponse < TencentCloud::Common::AbstractModel
# @param DataList: 推荐返回的商品信息列表
# @type DataList: Array
# @param RequestId: 唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。
# @type RequestId: String
attr_accessor :DataList, :RequestId
def initialize(datalist=nil, requestid=nil)
@DataList = datalist
@RequestId = requestid
end
def deserialize(params)
unless params['DataList'].nil?
@DataList = []
params['DataList'].each do |i|
recgoodsdata_tmp = RecGoodsData.new
recgoodsdata_tmp.deserialize(i)
@DataList << recgoodsdata_tmp
end
end
@RequestId = params['RequestId']
end
end
# 不喜欢信息
class DislikeInfo < TencentCloud::Common::AbstractModel
# @param Type: 过滤的类别:
● author 作者名
(如当前类型不满足,请提单沟通解决方案)
# @type Type: String
# @param Value: Type对应字段名的值,如:需要过滤的作者名
# @type Value: String
attr_accessor :Type, :Value
def initialize(type=nil, value=nil)
@Type = type
@Value = value
end
def deserialize(params)
@Type = params['Type']
@Value = params['Value']
end
end
# 信息流内容
class DocItem < TencentCloud::Common::AbstractModel
# @param ItemId: 内容唯一id,建议限制在128字符以内
# @type ItemId: String
# @param ItemType: 内容类型:
● article -图文
● text -纯文本
● video -视频
● short_video -时长15秒以内的视频
● mini_video -竖屏视频
● image -纯图片
(如当前类型不满足,请登录控制台进入对应项目,在物料管理->物料类型管理中添加)
# @type ItemType: String
# @param Status: 内容状态:
# ● 1 - 上架
# ● 2 - 下架
# Status=2的内容不会在推荐结果中出现
# 需要下架内容时,把Status的值修改为2即可
# @type Status: Integer
# @param PublishTimestamp: 内容生成时间,秒级时间戳(1639624786),需大于0,用作特征和物料管理
# @type PublishTimestamp: Integer
# @param ExpireTimestamp: 内容过期时间,秒级时间戳(1639624786),如未填,则默认PublishTimestamp往后延一年,用作特征,过期则不会被推荐,强烈建议
# @type ExpireTimestamp: Integer
# @param CategoryLevel: 类目层级数,例如3级类目,则填3,和CategoryPath字段的类数据匹配,强烈建议
# @type CategoryLevel: Integer
# @param CategoryPath: 类目路径,一级二级三级等依次用英文冒号联接,和CategoryLevel字段值匹配,如体育:“足球:巴塞罗那”。用于物料池管理,强烈建议
# @type CategoryPath: String
# @param Tags: 内容标签,多个标签用英文冒号联接,用作特征,强烈建议
# @type Tags: String
# @param Author: 作者名,需保证作者名唯一,若有重名需要加编号区分。用于召回过滤、规则打散,强烈建议
# @type Author: String
# @param SourceId: 内容来源类型,客户自定义,用于物料池管理
# @type SourceId: String
# @param Title: 内容标题,主要用于语义分析
# @type Title: String
# @param Content: 正文关键片段,建议控制在500字符以内,主要用于语义分析
# @type Content: String
# @param ContentUrl: 正文详情,主要用于语义分析,当内容过大时建议用ContentUrl传递,与Content可二选一
# @type ContentUrl: String
# @param VideoDuration: 视频时长,时间秒,大于等于0,小于 3600 * 10。视频内容必填,其它内容非必填,用作特征
# @type VideoDuration: Integer
# @param Country: 国家,ISO 3166-1 alpha-2编码,参考ISO 3166-1 alpha-2,中国:“CN”,用作特征
# @type Country: String
# @param Province: 省份,ISO 3166-2行政区编码,如中国参考ISO_3166-2:CN,广东省:“CN-GD”,用作特征
# @type Province: String
# @param City: 城市地区,统一用国家最新标准地区行政编码,如:2020年行政区编码,其他国家统一用国际公认城市简称或者城市编码,用作特征
# @type City: String
# @param AuthorFans: 作者粉丝数,用作特征
# @type AuthorFans: Integer
# @param AuthorLevel: 作者评级,用作特征
# @type AuthorLevel: String
# @param CollectCnt: 内容累计收藏次数,用作特征
# @type CollectCnt: Integer
# @param PraiseCnt: 内容累积点赞次数,用作特征
# @type PraiseCnt: Integer
# @param CommentCnt: 内容累计评论次数,用作特征
# @type CommentCnt: Integer
# @param ShareCnt: 内容累计分享次数,用作特征
# @type ShareCnt: Integer
# @param RewardCnt: 内容累积打赏数,用作特征
# @type RewardCnt: Integer
# @param Score: 内容质量评分,用作特征
# @type Score: Float
# @param Extension: json字符串,用于物料池管理的自定义扩展,需要base64加密
# @type Extension: String
attr_accessor :ItemId, :ItemType, :Status, :PublishTimestamp, :ExpireTimestamp, :CategoryLevel, :CategoryPath, :Tags, :Author, :SourceId, :Title, :Content, :ContentUrl, :VideoDuration, :Country, :Province, :City, :AuthorFans, :AuthorLevel, :CollectCnt, :PraiseCnt, :CommentCnt, :ShareCnt, :RewardCnt, :Score, :Extension
def initialize(itemid=nil, itemtype=nil, status=nil, publishtimestamp=nil, expiretimestamp=nil, categorylevel=nil, categorypath=nil, tags=nil, author=nil, sourceid=nil, title=nil, content=nil, contenturl=nil, videoduration=nil, country=nil, province=nil, city=nil, authorfans=nil, authorlevel=nil, collectcnt=nil, praisecnt=nil, commentcnt=nil, sharecnt=nil, rewardcnt=nil, score=nil, extension=nil)
@ItemId = itemid
@ItemType = itemtype
@Status = status
@PublishTimestamp = publishtimestamp
@ExpireTimestamp = expiretimestamp
@CategoryLevel = categorylevel
@CategoryPath = categorypath
@Tags = tags
@Author = author
@SourceId = sourceid
@Title = title
@Content = content
@ContentUrl = contenturl
@VideoDuration = videoduration
@Country = country
@Province = province
@City = city
@AuthorFans = authorfans
@AuthorLevel = authorlevel
@CollectCnt = collectcnt
@PraiseCnt = praisecnt
@CommentCnt = commentcnt
@ShareCnt = sharecnt
@RewardCnt = rewardcnt
@Score = score
@Extension = extension
end
def deserialize(params)
@ItemId = params['ItemId']
@ItemType = params['ItemType']
@Status = params['Status']
@PublishTimestamp = params['PublishTimestamp']
@ExpireTimestamp = params['ExpireTimestamp']
@CategoryLevel = params['CategoryLevel']
@CategoryPath = params['CategoryPath']
@Tags = params['Tags']
@Author = params['Author']
@SourceId = params['SourceId']
@Title = params['Title']
@Content = params['Content']
@ContentUrl = params['ContentUrl']
@VideoDuration = params['VideoDuration']
@Country = params['Country']
@Province = params['Province']
@City = params['City']
@AuthorFans = params['AuthorFans']
@AuthorLevel = params['AuthorLevel']
@CollectCnt = params['CollectCnt']
@PraiseCnt = params['PraiseCnt']
@CommentCnt = params['CommentCnt']
@ShareCnt = params['ShareCnt']
@RewardCnt = params['RewardCnt']
@Score = params['Score']
@Extension = params['Extension']
end
end
# 信息流行为
class FeedBehaviorInfo < TencentCloud::Common::AbstractModel
# @param UserId: 用户唯一ID,客户自定义用户ID,作为一个用户的唯一标识
# @type UserId: String
# @param ItemId: 内容唯一id
# @type ItemId: String
# @param BehaviorType: 行为类型:
● expose - 曝光,必须
● click - 点击,必须
● stay - 详情页停留时长,强烈建议
● videoover - 视频播放时长,强烈建议
● like - 点赞&喜欢,正效果
● collect - 收藏,正效果
● share - 转发&分享,正效果
● reward - 打赏,正效果
● unlike - 踩&不喜欢,负效果
● comment - 评论
不支持的行为类型,可以映射到未被使用的其他行为类型。如实际业务数据中有私信行为,没有收藏行为,可以将私信行为映射到收藏行为
# @type BehaviorType: String
# @param BehaviorValue: 行为类型对应的行为值:
● expose - 曝光,固定填1
● click - 点击,固定填1
● stay - 详情页停留时长,填停留秒数,取值[1-86400]
● videoover - 视频播放时长,填播放结束的秒数,取值[1-86400]
● like - 点赞&喜欢,固定填1
● collect - 收藏,固定填1
● share - 转发&分享,固定填1
● reward - 打赏,填打赏金额,没有则填1
● unlike - 踩&不喜欢,填不喜欢的原因,没有则填1
● comment - 评论,填评论内容,如“上海加油”
# @type BehaviorValue: String
# @param BehaviorTimestamp: 行为发生的时间戳: 秒级时间戳,尽量实时上报,最长不超过半小时否则会影响推荐结果的准确性
# @type BehaviorTimestamp: Integer
# @param SceneId: 行为发生的场景ID,在控制台创建场景后获取
# @type SceneId: String
# @param ItemTraceId: 推荐追踪ID,使用推荐结果中返回的ItemTraceId填入。
# 注意:如果和推荐结果中的ItemTraceId不同,会影响行为特征归因,影响推荐算法效果
# @type ItemTraceId: String
# @param ItemType: 内容类型,跟内容上报类型一致,用于效果分析,不做内容校验,强烈建议
# @type ItemType: String
# @param ReferrerItemId: 相关推荐场景点击进入详情页的内容id,该字段用来注明行为发生于哪个内容的详情页推荐中,相关推荐场景强烈建议
# @type ReferrerItemId: String
# @param UserIdList: 用户设备ID数组,可传入用户的多个类型ID,详见UserIdInfo结构体,建议补齐,用于构建用户画像信息
# @type UserIdList: Array
# @param Source: 算法来源:
● business 业务自己的算法对照组
● tencent 腾讯算法
● other 其他算法
默认为tencent,区分行为来源于哪个算法,用于Poc阶段的效果对比验证
# @type Source: String
# @param Country: 行为发生时的国家,ISO 3166-1 alpha-2编码,参考ISO 3166-1 alpha-2,中国:“CN”,用作特征
# @type Country: String
# @param Province: 行为发生时的省份,ISO 3166-2行政区编码,如中国参考ISO_3166-2:CN,广东省:“CN-GD”,用作特征
# @type Province: String
# @param City: 行为发生时的城市地区,统一用国家最新标准地区行政编码,如:2020年行政区编码,其他国家统一用国际公认城市简称或者城市编码,用作特征
# @type City: String
# @param IP: 行为发生时的客户端ip,用作特征
# @type IP: String
# @param Network: 行为发生时的客户端网络类型,用作特征
# @type Network: String
# @param Platform: 行为发生时的客户端平台,ios/android/h5,用作特征
# @type Platform: String
# @param AppVersion: 行为发生时的客户端app版本,用作特征
# @type AppVersion: String
# @param OsVersion: 行为发生时的操作系统版本,用作特征
# @type OsVersion: String
# @param DeviceModel: 行为发生时的机型,用作特征
# @type DeviceModel: String
# @param Extension: json字符串,用于行为数据的扩展,需要base64加密
# @type Extension: String
attr_accessor :UserId, :ItemId, :BehaviorType, :BehaviorValue, :BehaviorTimestamp, :SceneId, :ItemTraceId, :ItemType, :ReferrerItemId, :UserIdList, :Source, :Country, :Province, :City, :IP, :Network, :Platform, :AppVersion, :OsVersion, :DeviceModel, :Extension
def initialize(userid=nil, itemid=nil, behaviortype=nil, behaviorvalue=nil, behaviortimestamp=nil, sceneid=nil, itemtraceid=nil, itemtype=nil, referreritemid=nil, useridlist=nil, source=nil, country=nil, province=nil, city=nil, ip=nil, network=nil, platform=nil, appversion=nil, osversion=nil, devicemodel=nil, extension=nil)
@UserId = userid
@ItemId = itemid
@BehaviorType = behaviortype
@BehaviorValue = behaviorvalue
@BehaviorTimestamp = behaviortimestamp
@SceneId = sceneid
@ItemTraceId = itemtraceid
@ItemType = itemtype
@ReferrerItemId = referreritemid
@UserIdList = useridlist
@Source = source
@Country = country
@Province = province
@City = city
@IP = ip
@Network = network
@Platform = platform
@AppVersion = appversion
@OsVersion = osversion
@DeviceModel = devicemodel
@Extension = extension
end
def deserialize(params)
@UserId = params['UserId']
@ItemId = params['ItemId']
@BehaviorType = params['BehaviorType']
@BehaviorValue = params['BehaviorValue']
@BehaviorTimestamp = params['BehaviorTimestamp']
@SceneId = params['SceneId']
@ItemTraceId = params['ItemTraceId']
@ItemType = params['ItemType']
@ReferrerItemId = params['ReferrerItemId']
unless params['UserIdList'].nil?
@UserIdList = []
params['UserIdList'].each do |i|
useridinfo_tmp = UserIdInfo.new
useridinfo_tmp.deserialize(i)
@UserIdList << useridinfo_tmp
end
end
@Source = params['Source']
@Country = params['Country']
@Province = params['Province']
@City = params['City']
@IP = params['IP']
@Network = params['Network']
@Platform = params['Platform']
@AppVersion = params['AppVersion']
@OsVersion = params['OsVersion']
@DeviceModel = params['DeviceModel']
@Extension = params['Extension']
end
end
# FeedRecommend请求参数结构体
class FeedRecommendRequest < TencentCloud::Common::AbstractModel
# @param InstanceId: 实例ID,在控制台获取
# @type InstanceId: String
# @param SceneId: 场景ID,在控制台创建场景后获取
# @type SceneId: String
# @param UserId: 用户唯一ID,客户自定义用户ID,作为一个用户的唯一标识
# @type UserId: String
# @param UserIdList: 用户设备ID数组,可传入用户的多个类型ID,用于关联画像信息
# @type UserIdList: Array
# @param ItemCnt: 推荐返回数量,默认10个,最多支持50个的内容返回。如果有更多数量要求,提单沟通解决
# @type ItemCnt: Integer
# @param CurrentItemId: 当场景是相关推荐时该值必填,场景是非相关推荐时该值无效
# @type CurrentItemId: String
# @param Extension: 扩展字段,json字符串,需要base64加密
# @type Extension: String
attr_accessor :InstanceId, :SceneId, :UserId, :UserIdList, :ItemCnt, :CurrentItemId, :Extension
def initialize(instanceid=nil, sceneid=nil, userid=nil, useridlist=nil, itemcnt=nil, currentitemid=nil, extension=nil)
@InstanceId = instanceid
@SceneId = sceneid
@UserId = userid
@UserIdList = useridlist
@ItemCnt = itemcnt
@CurrentItemId = currentitemid
@Extension = extension
end
def deserialize(params)
@InstanceId = params['InstanceId']
@SceneId = params['SceneId']
@UserId = params['UserId']
unless params['UserIdList'].nil?
@UserIdList = []
params['UserIdList'].each do |i|
useridinfo_tmp = UserIdInfo.new
useridinfo_tmp.deserialize(i)
@UserIdList << useridinfo_tmp
end
end
@ItemCnt = params['ItemCnt']
@CurrentItemId = params['CurrentItemId']
@Extension = params['Extension']
end
end
# FeedRecommend返回参数结构体
class FeedRecommendResponse < TencentCloud::Common::AbstractModel
# @param DataList: 推荐返回的内容信息列表,返回结果已按策略规则做好了排序
# @type DataList: Array
# @param RequestId: 唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。
# @type RequestId: String
attr_accessor :DataList, :RequestId
def initialize(datalist=nil, requestid=nil)
@DataList = datalist
@RequestId = requestid
end
def deserialize(params)
unless params['DataList'].nil?
@DataList = []
params['DataList'].each do |i|
recitemdata_tmp = RecItemData.new
recitemdata_tmp.deserialize(i)
@DataList << recitemdata_tmp
end
end
@RequestId = params['RequestId']
end
end
# 信息流用户信息
class FeedUserInfo < TencentCloud::Common::AbstractModel
# @param UserId: 用户唯一ID,客户自定义用户ID,作为一个用户的唯一标识
# @type UserId: String
# @param UserIdList: 用户设备ID数组,可传入用户的多个类型ID,详见UserIdInfo结构体,建议补齐,用于构建用户画像信息
# @type UserIdList: Array
# @param Tags: 用户标签,多个标签用英文冒号联接,用作特征,强烈建议
# @type Tags: String
# @param DislikeInfoList: 过滤列表,会在推荐结果里过滤掉这类内容
# @type DislikeInfoList: Array
# @param Age: 用户年龄
# @type Age: Integer
# @param Gender: 用户性别: 0 - 未知 1 - 男 2 - 女
# @type Gender: Integer
# @param Degree: 用户学历 :小学,初中,高中,大专,本科,硕士,博士
# @type Degree: String
# @param School: 用户毕业学校全称
# @type School: String
# @param Occupation: 用户职业
# @type Occupation: String
# @param Industry: 用户所属行业
# @type Industry: String
# @param ResidentCountry: 用户常驻国家,ISO 3166-1 alpha-2编码,参考ISO 3166-1 alpha-2,中国:“CN”
# @type ResidentCountry: String
# @param ResidentProvince: 用户常驻省份,ISO 3166-2行政区编码,如中国参考ISO_3166-2:CN,广东省:“CN-GD”
# @type ResidentProvince: String
# @param ResidentCity: 用户常驻城市,统一用国家最新标准地区行政编码,如:2020年行政区编码,
# @type ResidentCity: String
# @param RegisterTimestamp: 用户注册时间,秒级时间戳(1639624786)
# @type RegisterTimestamp: Integer
# @param MembershipLevel: 用户会员等级
# @type MembershipLevel: String
# @param LastLoginTimestamp: 用户上一次登录时间,秒级时间戳(1639624786)
# @type LastLoginTimestamp: Integer
# @param LastLoginIp: 用户上一次登录的ip
# @type LastLoginIp: String
# @param LastModifyTimestamp: 用户信息的最后修改时间戳,秒级时间戳(1639624786)
# @type LastModifyTimestamp: Integer
# @param Extension: json字符串,用于画像数据的扩展,需要base64加密
# @type Extension: String
attr_accessor :UserId, :UserIdList, :Tags, :DislikeInfoList, :Age, :Gender, :Degree, :School, :Occupation, :Industry, :ResidentCountry, :ResidentProvince, :ResidentCity, :RegisterTimestamp, :MembershipLevel, :LastLoginTimestamp, :LastLoginIp, :LastModifyTimestamp, :Extension
def initialize(userid=nil, useridlist=nil, tags=nil, dislikeinfolist=nil, age=nil, gender=nil, degree=nil, school=nil, occupation=nil, industry=nil, residentcountry=nil, residentprovince=nil, residentcity=nil, registertimestamp=nil, membershiplevel=nil, lastlogintimestamp=nil, lastloginip=nil, lastmodifytimestamp=nil, extension=nil)
@UserId = userid
@UserIdList = useridlist
@Tags = tags
@DislikeInfoList = dislikeinfolist
@Age = age
@Gender = gender
@Degree = degree
@School = school
@Occupation = occupation
@Industry = industry
@ResidentCountry = residentcountry
@ResidentProvince = residentprovince
@ResidentCity = residentcity
@RegisterTimestamp = registertimestamp
@MembershipLevel = membershiplevel
@LastLoginTimestamp = lastlogintimestamp
@LastLoginIp = lastloginip
@LastModifyTimestamp = lastmodifytimestamp
@Extension = extension
end
def deserialize(params)
@UserId = params['UserId']
unless params['UserIdList'].nil?
@UserIdList = []
params['UserIdList'].each do |i|
useridinfo_tmp = UserIdInfo.new
useridinfo_tmp.deserialize(i)
@UserIdList << useridinfo_tmp
end
end
@Tags = params['Tags']
unless params['DislikeInfoList'].nil?
@DislikeInfoList = []
params['DislikeInfoList'].each do |i|
dislikeinfo_tmp = DislikeInfo.new
dislikeinfo_tmp.deserialize(i)
@DislikeInfoList << dislikeinfo_tmp
end
end
@Age = params['Age']
@Gender = params['Gender']
@Degree = params['Degree']
@School = params['School']
@Occupation = params['Occupation']
@Industry = params['Industry']
@ResidentCountry = params['ResidentCountry']
@ResidentProvince = params['ResidentProvince']
@ResidentCity = params['ResidentCity']
@RegisterTimestamp = params['RegisterTimestamp']
@MembershipLevel = params['MembershipLevel']
@LastLoginTimestamp = params['LastLoginTimestamp']
@LastLoginIp = params['LastLoginIp']
@LastModifyTimestamp = params['LastModifyTimestamp']
@Extension = params['Extension']
end
end
# 电商行为
class GoodsBehaviorInfo < TencentCloud::Common::AbstractModel
# @param UserId: 用户唯一ID,客户自定义用户ID,作为一个用户的唯一标识
# @type UserId: String
# @param GoodsId: 商品唯一ID,skuId或spuId,客户根据需求自行决定商品主键粒度
# @type GoodsId: String
# @param BehaviorType: 行为类型:
● expose - 曝光,必须
● click - 点击,必须
● stay - 详情页停留时长,强烈建议
● videoover - 视频播放时长,强烈建议
● like - 点赞&喜欢,正效果
● collect - 收藏,正效果
● share - 转发&分享,正效果
● reward - 打赏,正效果
● unlike - 踩&不喜欢,负效果
● comment - 评论
● order - 下单
● buy - 购买成功
● addcart - 加入购物车
# 不支持的行为类型,可以映射到未被使用的其他行为类型。如实际业务数据中有私信行为,没有收藏行为,可以将私信行为映射到收藏行为
# @type BehaviorType: String
# @param BehaviorValue: 行为类型对应的行为值:
● expose - 曝光,固定填1
● click - 点击,固定填1
● stay - 详情页停留时长,填停留秒数,取值[1-86400]
● videoover - 视频播放时长,填播放结束的秒数,取值[1-86400]
● like - 点赞&喜欢,固定填1
● collect - 收藏,固定填1
● share - 转发&分享,固定填1
● reward - 打赏,填打赏金额,没有则填1
● unlike - 踩&不喜欢,填不喜欢的原因,没有则填1
● comment - 评论,填评论内容,如“上海加油”
● order - 下单,固定填1
● buy - 购买成功,固定填1
● addcart - 加入购物车,固定填1
# @type BehaviorValue: String
# @param BehaviorTimestamp: 行为发生的时间戳: 秒级时间戳,尽量实时上报,最长不超过半小时否则会影响推荐结果的准确性
# @type BehaviorTimestamp: Integer
# @param SceneId: 行为发生的场景ID,在控制台创建场景后获取
# @type SceneId: String
# @param Source: 算法来源:
● business 业务自己的算法对照组
● tencent 腾讯算法
● other 其他算法
默认为tencent,区分行为来源于哪个算法,用于Poc阶段的效果对比验证
# @type Source: String
# @param Page: 标识行为发生在app内哪个页面,取值客户自定,可以是明文或id,建议传明文便于理解、分析,如首页,发现页,用户中心等
# 用作上下文特征,刻画不同场景用户行为分布的差异
# @type Page: String
# @param Module: 标识行为发生在页面的哪一区块,取值客户自定,可以是明文或id,建议传明文便于理解、分析,如横幅、广告位、猜你喜欢等
# 用作上下文特征,刻画不同模块用户行为分布的差异
# @type Module: String
# @param GoodsTraceId: 推荐追踪ID,使用推荐结果中返回的GoodsTraceId填入。
# 注意:如果和推荐结果中的GoodsTraceId不同,会影响行为特征归因,影响推荐算法效果。强烈建议
# @type GoodsTraceId: String
# @param ReferrerGoodsId: 相关推荐场景点击进入详情页的内容id,该字段用来注明行为发生于哪个内容的详情页推荐中,相关推荐场景强烈建议
# @type ReferrerGoodsId: String
# @param OrderGoodsCnt: 订单商品购买个数,当behaviorType=order,buy或addcart时有值,用作特征
# @type OrderGoodsCnt: Integer
# @param OrderAmount: 订单总金额,当behaviorType=order或buy时有值(单位:元,统一货币体系,如统一为RMB,美元等),用作特征
# @type OrderAmount: Float
# @param UserIdList: 用户设备ID数组,可传入用户的多个类型ID,详见UserIdInfo结构体,建议补齐,用于构建用户画像信息
# @type UserIdList: Array
# @param UserPortraitInfo: 行为发生时用户基础特征信息,用作特征
# @type UserPortraitInfo: :class:`Tencentcloud::Irp.v20220805.models.UserPortraitInfo`
# @param Position: 标识行为发生在模块内的具体位置,如1、2、...
# 用作上下文特征,刻画不同位置用户行为分布的差异
# @type Position: Integer
# @param Extension: json字符串,用于行为数据的扩展
# @type Extension: String
attr_accessor :UserId, :GoodsId, :BehaviorType, :BehaviorValue, :BehaviorTimestamp, :SceneId, :Source, :Page, :Module, :GoodsTraceId, :ReferrerGoodsId, :OrderGoodsCnt, :OrderAmount, :UserIdList, :UserPortraitInfo, :Position, :Extension
def initialize(userid=nil, goodsid=nil, behaviortype=nil, behaviorvalue=nil, behaviortimestamp=nil, sceneid=nil, source=nil, page=nil, _module=nil, goodstraceid=nil, referrergoodsid=nil, ordergoodscnt=nil, orderamount=nil, useridlist=nil, userportraitinfo=nil, position=nil, extension=nil)
@UserId = userid
@GoodsId = goodsid
@BehaviorType = behaviortype
@BehaviorValue = behaviorvalue
@BehaviorTimestamp = behaviortimestamp
@SceneId = sceneid
@Source = source
@Page = page
@Module = _module
@GoodsTraceId = goodstraceid
@ReferrerGoodsId = referrergoodsid
@OrderGoodsCnt = ordergoodscnt
@OrderAmount = orderamount
@UserIdList = useridlist
@UserPortraitInfo = userportraitinfo
@Position = position
@Extension = extension
end
def deserialize(params)
@UserId = params['UserId']
@GoodsId = params['GoodsId']
@BehaviorType = params['BehaviorType']
@BehaviorValue = params['BehaviorValue']
@BehaviorTimestamp = params['BehaviorTimestamp']
@SceneId = params['SceneId']
@Source = params['Source']
@Page = params['Page']
@Module = params['Module']
@GoodsTraceId = params['GoodsTraceId']
@ReferrerGoodsId = params['ReferrerGoodsId']
@OrderGoodsCnt = params['OrderGoodsCnt']
@OrderAmount = params['OrderAmount']
unless params['UserIdList'].nil?
@UserIdList = []
params['UserIdList'].each do |i|
struseridinfo_tmp = StrUserIdInfo.new
struseridinfo_tmp.deserialize(i)
@UserIdList << struseridinfo_tmp
end
end
unless params['UserPortraitInfo'].nil?
@UserPortraitInfo = UserPortraitInfo.new
@UserPortraitInfo.deserialize(params['UserPortraitInfo'])
end
@Position = params['Position']
@Extension = params['Extension']
end
end
# 电商物料内容
class GoodsInfo < TencentCloud::Common::AbstractModel
# @param GoodsId: 商品唯一ID,skuId或spuId,客户根据需求自行决定商品主键粒度。建议限制在128字符以内
# @type GoodsId: String
# @param GoodsType: 商品物料展示类型:
● article -图文
● text -纯文本
● video -视频
● short_video -时长15秒以内的视频
● mini_video -竖屏视频
● image -纯图片
(如当前类型不满足,请提单沟通解决方案)
# @type GoodsType: String
# @param Status: 商品状态:
# ● 1 - 上架
# ● 2 - 下架
# Status=2的内容不会在推荐结果中出现
# 需要下架内容时,把Status的值修改为2即可
# @type Status: Integer
# @param PublishTimestamp: 商品生成时间,秒级时间戳(1639624786),需大于0,用作特征和物料管理
# @type PublishTimestamp: Integer
# @param ExpireTimestamp: 商品过期时间,秒级时间戳(1639624786),如未填,则默认PublishTimestamp往后延一年,用作特征,过期则不会被推荐,强烈建议
# @type ExpireTimestamp: Integer
# @param SpuId: spu((Standard Product Unit))维度id,商品聚合信息的最小单位,强烈建议
# @type SpuId: String
# @param CategoryLevel: 类目层级数,例如3级类目,则填3,和CategoryPath字段的类数据匹配,强烈建议
# @type CategoryLevel: Integer
# @param CategoryPath: 类目路径,一级二级三级等依次用英文冒号联接,和CategoryLevel字段值匹配,如体育:“女装:裙子:半身裙”。用于物料池管理,强烈建议
# @type CategoryPath: String
# @param Title: 商品标题,主要用于语义分析,强烈建议
# @type Title: String
# @param Tags: 商品标签,多个标签用英文冒号联接,用作特征,强烈建议
# @type Tags: String
# @param Brand: 商品对应的品牌,取值用户自定义,可以是品牌id或品牌明文,用作特征以及打散/过滤规则,强烈建议
# @type Brand: String
# @param ShopId: 商品所属店铺ID,取值客户自定义,用作特征,强烈建议
# @type ShopId: String
# @param OrgPrice: 商品原始价格(单位:元,统一货币体系,如统一为RMB或美元等),用作特征,强烈建议
# @type OrgPrice: Float
# @param CurPrice: 商品当前价格(单位:元,统一货币体系,如统一为RMB或美元等),用作特征,强烈建议
# @type CurPrice: Float
# @param SourceId: 商品来源类型,客户自定义,用于物料池管理
# @type SourceId: String
# @param Content: 商品正文关键片段,建议控制在500字符以内,主要用于语义分析
# @type Content: String
# @param ContentUrl: 商品正文详情,主要用于语义分析,当内容过大时建议用ContentUrl传递,与Content可二选一
# @type ContentUrl: String
# @param PicUrlList: 商品封面url,不超过10个,用作特征
# @type PicUrlList: Array
# @param Country: 卖家所在国家,ISO 3166-1 alpha-2编码,参考ISO 3166-1 alpha-2,中国:“CN”,用作特征
# @type Country: String
# @param Province: 卖家所在省份,ISO 3166-2行政区编码,如中国参考ISO_3166-2:CN,广东省:“CN-GD”,用作特征
# @type Province: String
# @param City: 卖家所在城市地区,统一用国家最新标准地区行政编码,如:2020年行政区编码,其他国家统一用国际公认城市简称或者城市编码,用作特征
# @type City: String
# @param FreeShipping: 商品是否包邮;1:包邮;2:不包邮;3:满足条件包邮,用作特征
# @type FreeShipping: Integer
# @param ShippingPrice: 商品邮费(单位:元,统一货币体系,如统一为RMB或美元等),用作特征
# @type ShippingPrice: Float
# @param PraiseCnt: 商品累计好评次数,用作特征
# @type PraiseCnt: Integer
# @param CommentCnt: 商品累计评论次数,用作特征
# @type CommentCnt: Integer
# @param ShareCnt: 商品累计分享次数,用作特征
# @type ShareCnt: Integer
# @param CollectCnt: 商品累计收藏次数,用作特征
# @type CollectCnt: Integer
# @param OrderCnt: 商品累积成交次数,用作特征
# @type OrderCnt: Integer
# @param Score: 商品平均客户评分,取值范围用户自定,用作特征
# @type Score: Float
# @param Extension: json字符串,用于物料池管理的自定义扩展
# @type Extension: String
attr_accessor :GoodsId, :GoodsType, :Status, :PublishTimestamp, :ExpireTimestamp, :SpuId, :CategoryLevel, :CategoryPath, :Title, :Tags, :Brand, :ShopId, :OrgPrice, :CurPrice, :SourceId, :Content, :ContentUrl, :PicUrlList, :Country, :Province, :City, :FreeShipping, :ShippingPrice, :PraiseCnt, :CommentCnt, :ShareCnt, :CollectCnt, :OrderCnt, :Score, :Extension
def initialize(goodsid=nil, goodstype=nil, status=nil, publishtimestamp=nil, expiretimestamp=nil, spuid=nil, categorylevel=nil, categorypath=nil, title=nil, tags=nil, brand=nil, shopid=nil, orgprice=nil, curprice=nil, sourceid=nil, content=nil, contenturl=nil, picurllist=nil, country=nil, province=nil, city=nil, freeshipping=nil, shippingprice=nil, praisecnt=nil, commentcnt=nil, sharecnt=nil, collectcnt=nil, ordercnt=nil, score=nil, extension=nil)
@GoodsId = goodsid
@GoodsType = goodstype
@Status = status
@PublishTimestamp = publishtimestamp
@ExpireTimestamp = expiretimestamp
@SpuId = spuid
@CategoryLevel = categorylevel
@CategoryPath = categorypath
@Title = title
@Tags = tags
@Brand = brand
@ShopId = shopid
@OrgPrice = orgprice
@CurPrice = curprice
@SourceId = sourceid
@Content = content
@ContentUrl = contenturl
@PicUrlList = picurllist
@Country = country
@Province = province
@City = city
@FreeShipping = freeshipping
@ShippingPrice = shippingprice
@PraiseCnt = praisecnt
@CommentCnt = commentcnt
@ShareCnt = sharecnt
@CollectCnt = collectcnt
@OrderCnt = ordercnt
@Score = score
@Extension = extension
end
def deserialize(params)
@GoodsId = params['GoodsId']
@GoodsType = params['GoodsType']
@Status = params['Status']
@PublishTimestamp = params['PublishTimestamp']
@ExpireTimestamp = params['ExpireTimestamp']
@SpuId = params['SpuId']
@CategoryLevel = params['CategoryLevel']
@CategoryPath = params['CategoryPath']
@Title = params['Title']
@Tags = params['Tags']
@Brand = params['Brand']
@ShopId = params['ShopId']
@OrgPrice = params['OrgPrice']
@CurPrice = params['CurPrice']
@SourceId = params['SourceId']
@Content = params['Content']
@ContentUrl = params['ContentUrl']
@PicUrlList = params['PicUrlList']
@Country = params['Country']
@Province = params['Province']
@City = params['City']
@FreeShipping = params['FreeShipping']
@ShippingPrice = params['ShippingPrice']
@PraiseCnt = params['PraiseCnt']
@CommentCnt = params['CommentCnt']
@ShareCnt = params['ShareCnt']
@CollectCnt = params['CollectCnt']
@OrderCnt = params['OrderCnt']
@Score = params['Score']
@Extension = params['Extension']
end
end
# 推荐返回的内容信息
class RecGoodsData < TencentCloud::Common::AbstractModel
# @param GoodsId: 推荐返回的商品ID
# @type GoodsId: String
# @param Score: 推荐结果分,取值范围[0,1000000]
# 注意:此字段可能返回 null,表示取不到有效值。
# @type Score: Float
# @param GoodsTraceId: 推荐追踪id,本次推荐内容产生的后续行为上报均要用该GoodsTraceId上报。每次接口调用返回的GoodsTraceId不同
# 注意:此字段可能返回 null,表示取不到有效值。
# @type GoodsTraceId: String
# @param Position: 商品所在位置
# 注意:此字段可能返回 null,表示取不到有效值。
# @type Position: Integer
attr_accessor :GoodsId, :Score, :GoodsTraceId, :Position
def initialize(goodsid=nil, score=nil, goodstraceid=nil, position=nil)
@GoodsId = goodsid
@Score = score
@GoodsTraceId = goodstraceid
@Position = position
end
def deserialize(params)
@GoodsId = params['GoodsId']
@Score = params['Score']
@GoodsTraceId = params['GoodsTraceId']
@Position = params['Position']
end
end
# 推荐返回的内容信息
class RecItemData < TencentCloud::Common::AbstractModel
# @param ItemId: 推荐的内容ID
# @type ItemId: String
# @param ItemType: 内容类型,同内容上报类型一致
# 注意:此字段可能返回 null,表示取不到有效值。
# @type ItemType: String
# @param ItemTraceId: 推荐追踪id,本次推荐内容产生的后续行为上报均要用该ItemTraceId上报。每次接口调用返回的ItemTraceId不同
# 注意:此字段可能返回 null,表示取不到有效值。
# @type ItemTraceId: String
# @param Score: 推荐预测分,分值越高被推荐的理由越充分,取值范围[0,1000000],用于做二次排序的参考
# 注意:此字段可能返回 null,表示取不到有效值。
# @type Score: Float
attr_accessor :ItemId, :ItemType, :ItemTraceId, :Score
def initialize(itemid=nil, itemtype=nil, itemtraceid=nil, score=nil)
@ItemId = itemid
@ItemType = itemtype
@ItemTraceId = itemtraceid
@Score = score
end
def deserialize(params)
@ItemId = params['ItemId']
@ItemType = params['ItemType']
@ItemTraceId = params['ItemTraceId']
@Score = params['Score']
end
end
# ReportFeedBehavior请求参数结构体
class ReportFeedBehaviorRequest < TencentCloud::Common::AbstractModel
# @param InstanceId: 实例ID,在控制台获取
# @type InstanceId: String
# @param FeedBehaviorList: 上报的行为数据数组,数量不超过50
# @type FeedBehaviorList: Array
attr_accessor :InstanceId, :FeedBehaviorList
def initialize(instanceid=nil, feedbehaviorlist=nil)
@InstanceId = instanceid
@FeedBehaviorList = feedbehaviorlist
end
def deserialize(params)
@InstanceId = params['InstanceId']
unless params['FeedBehaviorList'].nil?
@FeedBehaviorList = []
params['FeedBehaviorList'].each do |i|
feedbehaviorinfo_tmp = FeedBehaviorInfo.new
feedbehaviorinfo_tmp.deserialize(i)
@FeedBehaviorList << feedbehaviorinfo_tmp
end
end
end
end
# ReportFeedBehavior返回参数结构体
class ReportFeedBehaviorResponse < TencentCloud::Common::AbstractModel
# @param RequestId: 唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。
# @type RequestId: String
attr_accessor :RequestId
def initialize(requestid=nil)
@RequestId = requestid
end
def deserialize(params)
@RequestId = params['RequestId']
end
end
# ReportFeedItem请求参数结构体
class ReportFeedItemRequest < TencentCloud::Common::AbstractModel
# @param InstanceId: 实例ID,在控制台获取
# @type InstanceId: String
# @param FeedItemList: 上报的信息流内容数组,一次数量不超过50
# @type FeedItemList: Array
attr_accessor :InstanceId, :FeedItemList
def initialize(instanceid=nil, feeditemlist=nil)
@InstanceId = instanceid
@FeedItemList = feeditemlist
end
def deserialize(params)
@InstanceId = params['InstanceId']
unless params['FeedItemList'].nil?
@FeedItemList = []
params['FeedItemList'].each do |i|
docitem_tmp = DocItem.new
docitem_tmp.deserialize(i)
@FeedItemList << docitem_tmp
end
end
end
end
# ReportFeedItem返回参数结构体
class ReportFeedItemResponse < TencentCloud::Common::AbstractModel
# @param RequestId: 唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。
# @type RequestId: String
attr_accessor :RequestId
def initialize(requestid=nil)
@RequestId = requestid
end
def deserialize(params)
@RequestId = params['RequestId']
end
end
# ReportFeedUser请求参数结构体
class ReportFeedUserRequest < TencentCloud::Common::AbstractModel
# @param InstanceId: 实例ID,在控制台获取
# @type InstanceId: String
# @param FeedUserList: 上报的用户信息数组,数量不超过50
# @type FeedUserList: Array
attr_accessor :InstanceId, :FeedUserList
def initialize(instanceid=nil, feeduserlist=nil)
@InstanceId = instanceid
@FeedUserList = feeduserlist
end
def deserialize(params)
@InstanceId = params['InstanceId']
unless params['FeedUserList'].nil?
@FeedUserList = []
params['FeedUserList'].each do |i|
feeduserinfo_tmp = FeedUserInfo.new
feeduserinfo_tmp.deserialize(i)
@FeedUserList << feeduserinfo_tmp
end
end
end
end
# ReportFeedUser返回参数结构体
class ReportFeedUserResponse < TencentCloud::Common::AbstractModel
# @param RequestId: 唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。
# @type RequestId: String
attr_accessor :RequestId
def initialize(requestid=nil)
@RequestId = requestid
end
def deserialize(params)
@RequestId = params['RequestId']
end
end
# ReportGoodsBehavior请求参数结构体
class ReportGoodsBehaviorRequest < TencentCloud::Common::AbstractModel
# @param InstanceId: 实例ID,在控制台获取
# @type InstanceId: String
# @param GoodsBehaviorList: 上报的商品对应的用户行为数据数组,数量不超过50
# @type GoodsBehaviorList: Array
attr_accessor :InstanceId, :GoodsBehaviorList
def initialize(instanceid=nil, goodsbehaviorlist=nil)
@InstanceId = instanceid
@GoodsBehaviorList = goodsbehaviorlist
end
def deserialize(params)
@InstanceId = params['InstanceId']
unless params['GoodsBehaviorList'].nil?
@GoodsBehaviorList = []
params['GoodsBehaviorList'].each do |i|
goodsbehaviorinfo_tmp = GoodsBehaviorInfo.new
goodsbehaviorinfo_tmp.deserialize(i)
@GoodsBehaviorList << goodsbehaviorinfo_tmp
end
end
end
end
# ReportGoodsBehavior返回参数结构体
class ReportGoodsBehaviorResponse < TencentCloud::Common::AbstractModel
# @param RequestId: 唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。
# @type RequestId: String
attr_accessor :RequestId
def initialize(requestid=nil)
@RequestId = requestid
end
def deserialize(params)
@RequestId = params['RequestId']
end
end
# ReportGoodsInfo请求参数结构体
class ReportGoodsInfoRequest < TencentCloud::Common::AbstractModel
# @param InstanceId: 实例ID,在控制台获取
# @type InstanceId: String
# @param GoodsList: 上报的商品数组,一次数量不超过50
# @type GoodsList: Array
attr_accessor :InstanceId, :GoodsList
def initialize(instanceid=nil, goodslist=nil)
@InstanceId = instanceid
@GoodsList = goodslist
end
def deserialize(params)
@InstanceId = params['InstanceId']
unless params['GoodsList'].nil?
@GoodsList = []
params['GoodsList'].each do |i|
goodsinfo_tmp = GoodsInfo.new
goodsinfo_tmp.deserialize(i)
@GoodsList << goodsinfo_tmp
end
end
end
end
# ReportGoodsInfo返回参数结构体
class ReportGoodsInfoResponse < TencentCloud::Common::AbstractModel
# @param RequestId: 唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。
# @type RequestId: String
attr_accessor :RequestId
def initialize(requestid=nil)
@RequestId = requestid
end
def deserialize(params)
@RequestId = params['RequestId']
end
end
# 用户信息
class StrUserIdInfo < TencentCloud::Common::AbstractModel
def initialize()
end
def deserialize(params)
end
end
# 用户ID信息
class UserIdInfo < TencentCloud::Common::AbstractModel
# @param Type: 用户ID类型:
● qq: qq号码
● qq_md5:qq的md5值
● imei:设备imei
● imei_md5:imei的md5值
● idfa: Apple 向用户设备随机分配的设备标识符
● idfa_md5:idfa的md5值
● oaid:安卓10之后一种非永久性设备标识符
● oaid_md5:md5后的oaid
● wx_openid:微信openid
● qq_openid:QQ的openid
● phone:电话号码
● phone_md5:md5后的电话号码
● phone_sha256:SHA256加密的手机号
● phone_sm3:国密SM3加密的手机号
(如当前类型不满足,请提单沟通解决方案)
# @type Type: String
# @param Value: 用户ID值
# @type Value: String
attr_accessor :Type, :Value
def initialize(type=nil, value=nil)
@Type = type
@Value = value
end
def deserialize(params)
@Type = params['Type']
@Value = params['Value']
end
end
# 用户基础画像
class UserPortraitInfo < TencentCloud::Common::AbstractModel
def initialize()
end
def deserialize(params)
end
end
end
end
end