このプロジェクトは、AWS Entity Resolution を活用して異なるデータソース間で顧客データを照合・統合し、自然言語による対話でセグメントを作成することができる、Customer 360 を始めるためのサンプル実装です。Amazon Personalize item-affinity recipe によるセグメンテーション機能にも対応しています。
デフォルトでは、メインブランドとサブブランドの 2 つの自社ECサイトを運用している事業者が持つデータを使って、ワークフローが実行されます。ワークフローでは、はじめに 2つの EC サイトで重複している顧客情報が AWS Entity Resolution の ML を用いたマッチングにより統合された後に、Amazon Personalize によってユーザーが好みそうな商品の推薦を生成します。その後、チャットインターフェイスを通じてセグメンテーション(条件に合致するユーザーの抽出)や、属性・購買行動の分析を行うことができます。例えば、以下のような質問文を与えると、分析結果を得られます。
- “メインブランドとサブブランドの両方で2回以上購買経験がある顧客がメインブランドで買っている商品のトップ3をおしえて”
- “その3つのアイテムいずれかを購入しそうな顧客のリストをください。ただし、すでに購入した実績のある顧客は除外して“
- “顧客のリストをCSVで出力して”
デジタルやリアル店舗、自社データと他社データなど、ブランドと顧客のタッチポイントから得られるデータは多様化しています。不揃いなデータを統合すること、また膨大なデータからインサイトを得ることは、より良い顧客体験創出のために重要であることは理解されつつも、取り組めていないという企業も多数存在します。このサンプルソリューションでは、データ、システム、組織の課題に対して解決策を提供し、企業がデータを活用して顧客体験を向上させる取り組みを後押しします。
下記のデプロイオプションが設定可能です。cdk.json を開き、それぞれをtrue/falseで設定してください。
- AWS Entity Resolution を利用するかどうか: entityResolutionEnabled
- Amazon Personalize を利用するかどうか: personalizeEnabled なお、entityResolutionEnabled が true の場合のみ利用可能です
- クレデンシャルの設定
AWS のクレデンシャルを作業ターミナルで設定してください
- Bedrock モデルアクセス許可
AWS マネジメントコンソールから、Anthropic Claude 3.7 Sonnet を有効化してください (リージョン us-east-1, us-east-2, us-west-2 全てで行ってください)
- 依存関係をインストール
npm ci
- CDK bootstrap(初回のみ)
npm run cdk bootstrap
- デプロイ実行
npm run cdk -- deploy --all
- 完了
完了時、表示される Outputs から下記二つの値をメモしてください
AmtC360MarketingStack.DataStorageDataBucketOutput
AmtC360MarketingStack.WebAppUrl
- テストデータ生成
下記のようにスクリプトを実行し、テスト用CSVを作成してください
python dbloader/gen_testdata.py
- テストデータアップロードスクリプト編集
dbloader/upload_to_s3.py
をテキストエディタで開き、S3_BUCKET_NAME 変数に、デプロイ時にメモしたバケット名を設定してください
- テストデータアップロード
アップロードを実行してください
python dbloader/upload_to_s3.py
- データ統合ワークフロー実行
AWS Entity Resolution / Amazon Personalize によるデータ統合ワークフローを実行します。
AWS Step Functions のマネジメントコンソールを開いて DataIntegrationWorkflow
で始まる StateMachine を実行してください
Amazon Cognito User Pool でユーザを作成します。 マネジメントコンソール から、ユーザを作成してください。
以上で準備が完了です。
デプロイ時にメモした AmtC360MarketingStack.WebAppUrl
のURLにブラウザからアクセスしてください