本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
记录单个物品交互事件
以下示例显示了用于传递一个物品交互事件的 PutEvents
操作。将显示对应的架构,以及物品交互数据集中的一个示例行。
当用户首次访问您的网站或使用您的应用程序时,您的应用程序会生成唯一 sessionId
。在整个会话中,您必须在所有活动中使用相同的 sessionId
。Amazon Personalize 在用户登录(匿名用户)之前使用 sessionId
将事件与用户关联起来。有关更多信息,请参阅 为匿名用户记录事件。
事件列表是 Event 对象的数组。每个事件都需要一个 eventType
,但在本示例中,由于 eventType
数据未包含在架构中,因此在训练中不使用此类数据。您可以提供占位符值来满足要求。
trackingId
来自您在创建物品交互事件跟踪器中创建的事件跟踪器。userId
、itemId
和 sentAt
参数映射到相应的历史 Interactions
数据集的 USER_ID、ITEM_ID 和 TIMESTAMP 字段。有关更多信息,请参阅 架构。
相应的数据集列
Dataset columns: USER_ID, ITEM_ID, TIMESTAMP
Item interactions dataset data: user123, item-xyz, 1543631760
代码示例
- Python
-
import boto3
personalize_events = boto3.client(service_name='personalize-events')
personalize_events.put_events(
trackingId = 'tracking_id
',
userId= 'USER_ID
',
sessionId = 'session_id
',
eventList = [{
'sentAt': TIMESTAMP
,
'eventType': 'eventTypePlaceholder',
'itemId': 'ITEM_ID
'
}]
)
- AWS CLI
-
aws personalize-events put-events \
--tracking-id tracking_id \
--user-id USER_ID
\
--session-id session_id \
--event-list '[{
"sentAt": TIMESTAMP
,
"eventType": "eventTypePlaceholder",
"itemId": "ITEM_ID
"
}]'
- SDK for Java 2.x
-
public static void putEvents(PersonalizeEventsClient personalizeEventsClient,
String trackingId,
String sessionId,
String userId,
String itemId) {
try {
Event event = Event.builder()
.sentAt(Instant.ofEpochMilli(System.currentTimeMillis() + 10 * 60 * 1000))
.itemId(itemId)
.eventType("typePlaceholder")
.build();
PutEventsRequest putEventsRequest = PutEventsRequest.builder()
.trackingId(trackingId)
.userId(userId)
.sessionId(sessionId)
.eventList(event)
.build();
int responseCode = personalizeEventsClient.putEvents(putEventsRequest)
.sdkHttpResponse()
.statusCode();
System.out.println("Response code: " + responseCode);
} catch (PersonalizeEventsException e) {
System.out.println(e.awsErrorDetails().errorMessage());
}
}
在本示例中,您将仅使用所需属性来继续训练模型。