本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
記錄單一項目互動事件
下列範例顯示傳遞一個項目互動事件的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());
}
}
完成這個範例之後,您將繼續只用必要屬性來訓練模型。