Skip to content

Latest commit

 

History

History
82 lines (68 loc) · 2.19 KB

personalize-user.md

File metadata and controls

82 lines (68 loc) · 2.19 KB

Personalize의 User 정보 수집

얼굴로 인식한 사용자 정보를 Personalize에 사용자(User)로 등록합니다.

사용자(User) Metadata

Personalize의 사용자(User)에 대한 메타 정보는 USER_ID, GENDER, EMOTION 로 구성됩니다.

{
    "type": "record",
    "name": "Users",
    "namespace": "com.amazonaws.personalize.schema",
    "fields": [
        {
            "name": "USER_ID",
            "type": "string"
        },
        {
            "name": "GENDER",
            "type": "string",
            "categorical": true
        },
        {
            "name": "EMOTION",
            "type": "string",
            "categorical": true
        }
    ],
    "version": "1.0"
}

사용자 정보의 수집

lambda-createUser에서는 DynamoDB에 기존에 이미 등록된 사용자가 있는지 확인하여 없는 경우에 Personalize에 사용자(User)로 등록합니다. 등록할 때에는 putUsers를 사용합니다.

let queryParams = {
    TableName: userTableName,
    KeyConditionExpression: "USER_ID = :userId",
    ExpressionAttributeValues: {
        ":userId": userId
    }
};

let dynamoQuery = await dynamo.query(queryParams).promise();

if (!dynamoQuery.Count) {
    // Personalize
    var params = {
        datasetArn: datasetArn,
        users: [{
            userId: userId,
            properties: {
                "GENDER": gender,
                "EMOTION": emotion
            }
        }]
    };
    await personalizeevents.putUsers(params).promise();
}

사용자 데이터셋 정의

CDK stack에서는 아래와 같이 사용자 스키마로 사용자 데이터셋을 정의합니다.

const userSchema = new personalize.CfnSchema(this, 'UserSchema', {
  name: 'image-recommender-user-schema',
  schema: userSchemaJson,
});

const userDataset = new personalize.CfnDataset(this, 'UserDataset', {
  datasetGroupArn: datasetGroup.attrDatasetGroupArn,
  datasetType: 'Users',
  name: 'image-recommender-user-dataset',
  schemaArn: userSchema.attrSchemaArn,
});