기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
이벤트 값 데이터로 여러 항목 상호 작용 이벤트 기록
다음 예제는 이벤트 유형과 이벤트 값이 서로 다른 여러 항목 상호 작용 이벤트를 기록하는 방법을 보여줍니다.
솔루션을 구성할 때 항목 상호 작용 데이터 세트에 EVENT_TYPE 및 EVENT_VALUE 필드가 포함되어 있는 경우, 특정 값을 임곗값으로 설정하여 교육에서 레코드를 제외할 수 있습니다. 자세한 내용은 교육에 사용할 항목 상호 작용 데이터 선택 섹션을 참조하세요.
특정 레시피에 의해 메타데이터로 사용되는 추가 속성 numRatings
의 기록도 보여줍니다.
Dataset columns: USER_ID, ITEM_ID, TIMESTAMP, EVENT_TYPE, EVENT_VALUE, NUM_RATINGS
Item interactions dataset: user123, movie_xyz, 1543531139, rating, 5, 12
user321, choc-ghana, 1543531760, like, 4
user111, choc-fake, 1543557118, like, 3
- Python
-
import boto3
import json
personalize_events = boto3.client(service_name='personalize-events')
personalize_events.put_events(
trackingId = 'tracking_id
',
userId= 'user555',
sessionId = 'session1',
eventList = [{
'eventId': 'event1',
'sentAt': 1553631760,
'eventType': 'like',
'properties': json.dumps({
'itemId': 'choc-panama',
'eventValue': 4,
'numRatings': 0
})
}, {
'eventId': 'event2',
'sentAt': 1553631782,
'eventType': 'rating',
'properties': json.dumps({
'itemId': 'movie_ten',
'eventValue': 3,
'numRatings': 13
})
}]
)
- AWS CLI
-
aws personalize-events put-events \
--tracking-id tracking_id
\
--user-id user555 \
--session-id session1 \
--event-list '[{
"eventId": "event1",
"sentAt": 1553631760,
"eventType": "like",
"properties": "{\"itemId\": \"choc-panama\", \"eventValue\": \"true\"}"
}, {
"eventId": "event2",
"sentAt": 1553631782,
"eventType": "rating",
"properties": "{\"itemId\": \"movie_ten\", \"eventValue\": \"4\", \"numRatings\": \"13\"}"
}]'
- SDK for Java 2.x
-
public static void putMultipleEvents(PersonalizeEventsClient personalizeEventsClient,
String trackingId,
String sessionId,
String userId,
String event1Type,
Float event1Value,
String event1ItemId,
int event1NumRatings,
String event2Type,
Float event2Value,
String event2ItemId,
int event2NumRatings) {
ArrayList<Event> eventList = new ArrayList<Event>();
try {
Event event1 = Event.builder()
.eventType(event1Type)
.sentAt(Instant.ofEpochMilli(System.currentTimeMillis() + 10 * 60 * 1000))
.itemId(event1ItemId)
.eventValue(event1Value)
.properties("{\"numRatings\": "+ event1NumRatings +"}")
.build();
eventList.add(event1);
Event event2 = Event.builder()
.eventType(event2Type)
.sentAt(Instant.ofEpochMilli(System.currentTimeMillis() + 10 * 60 * 1000))
.itemId(event2ItemId)
.eventValue(event2Value)
.properties("{\"numRatings\": "+ event2NumRatings +"}")
.build();
eventList.add(event2);
PutEventsRequest putEventsRequest = PutEventsRequest.builder()
.trackingId(trackingId)
.userId(userId)
.sessionId(sessionId)
.eventList(eventList)
.build();
int responseCode = personalizeEventsClient.putEvents(putEventsRequest)
.sdkHttpResponse()
.statusCode();
System.out.println("Response code: " + responseCode);
} catch (PersonalizeEventsException e) {
System.out.println(e.awsErrorDetails().errorMessage());
}
}
속성 키는 상호작용 스키마의 필드와 일치하는 낙타 대문자 이름을 사용합니다. 예를 들어 상호작용 스키마에서 ‘NUM_RATINGS’ 필드를 정의한 경우 속성 키는 numRatings
이 되어야 합니다.