记录单个物品交互事件 - Amazon Personalize

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

记录单个物品交互事件

以下示例显示了用于传递一个物品交互事件的 PutEvents 操作。将显示对应的架构,以及物品交互数据集中的一个示例行。

当用户首次访问您的网站或使用您的应用程序时,您的应用程序会生成唯一 sessionId。在整个会话中,您必须在所有活动中使用相同的 sessionId。Amazon Personalize 在用户登录(匿名用户)之前使用 sessionId 将事件与用户关联起来。有关更多信息,请参阅 为匿名用户记录事件

事件列表是 Event 对象的数组。每个事件都需要一个 eventType,但在本示例中,由于 eventType 数据未包含在架构中,因此在训练中不使用此类数据。您可以提供占位符值来满足要求。

trackingId 来自您在创建物品交互事件跟踪器中创建的事件跟踪器。userIditemIdsentAt 参数映射到相应的历史 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()); } }

在本示例中,您将仅使用所需属性来继续训练模型。