在AWS Personalize中,如果要过滤掉用户已经与其互动的所有项目,可以使用Amazon Personalize的“filter”功能。但是,在某些情况下,这种过滤似乎无法持久化,导致返回的推荐列表中仍然包含已经与用户互动过的项目。
以下是一个示例代码,可以在用户互动后使用过滤器持久化过滤:
import boto3
personalize = boto3.client('personalize')
# User completes an interaction with an item
user_id = "user-id"
item_id = "item-id"
interaction_type = "click"
response = personalize.put_events(
trackingId='tracking-id',
userId=user_id,
sessionId='session-id',
eventList=[
{
'eventId': 'event-id',
'sentAt': 'timestamp',
'eventType': interaction_type,
'itemId': item_id
}
]
)
# Retrieve recommendations for the user with persistence filter
response = personalize.get_recommendations(
campaignArn='campaign-arn',
userId=user_id,
filterArn='filter-arn'
)
这里通过传递一个过滤器ARN到get_recommendations
函数中来持久化过滤。在创建过滤器时,需要指定用于过滤的条件,例如排除用户已经互动的所有项目等。