このプロジェクトは、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.DataStorageDataBucketOutputAmtC360MarketingStack.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にブラウザからアクセスしてください
workshop/ ディレクトリには、本ソリューションのデプロイからカスタマイズまでを段階的に進めるためのワークショップ資材が含まれています。各ディレクトリは Kiro Power として提供されており、Kiro に指示することで対話的に進められます。
| ディレクトリ | 内容 | 概要 |
|---|---|---|
1-deploy |
デプロイ | CDK デプロイ、Cognito ユーザー作成、テストデータ生成・アップロードを自動化 |
2-ai-bpr |
AI BPR ワークショップ | AI Driven Business Process Re-engineering。業務プロセスの分析から AI エージェントのプロトタイプ実装までを実施 |
3-customize |
カスタマイズ | AI BPR の成果物をもとに、CSV データの Glue Catalog 登録やエージェント設定の更新を実行 |
1-deploy— Kiro で「C360 をデプロイして」と指示し、環境を構築2-ai-bpr— ワークショップ本編。prompts/配下のプロンプトを順に Kiro に渡して進行3-customize— Kiro で「C360 をカスタマイズして」と指示し、AI BPR の成果を環境に反映
各 Power の詳細は、それぞれのディレクトリ内の POWER.md / README.md を参照してください。
自社で保有するCSVデータのスキーマに合わせてシステムをカスタマイズしたい場合は、csvtool/ディレクトリのツールを使用してください。
- csvtoolディレクトリに移動
cd csvtool- 依存関係をインストール
pip install -r requirements.txt- 設定ファイルを編集
csv_to_glue_catalog.pyの冒頭で以下の変数を設定:
S3_BUCKET_NAME = "<デプロイ時にメモしたDataBucketOutput>"
GLUE_DATABASE_NAME = "<実際のGlueデータベース名>"- CSVファイルを配置
./workshop/2-ai-bpr/dataディレクトリを作成し、ヘッダー付きのCSVファイルを配置
python csv_to_glue_catalog.py- 既存のGlue Catalogテーブルを削除
- CSVファイルをヘッダーでグループ化
- Amazon Bedrockでスキーマを自動分析・推測
- AWS Glue Catalogにテーブルを作成
- S3にCSVファイルをアップロード
このツールにより、自社のCSVデータを簡単にCustomer 360システムに統合できます。
workshop/ ディレクトリには、Kiro Power を活用したワークショップ用のリソースが含まれています。各ステップは順番に実行してください。
| ディレクトリ | 内容 | 概要 |
|---|---|---|
1-deploy |
デプロイ | CDK デプロイ、Cognito ユーザー作成、テストデータ生成・アップロードを自動化する Power |
2-ai-bpr |
AI BPR ワークショップ | AI Driven Business Process Re-engineering。業務プロセスへの AI エージェント組込みを検討するワークショップ |
3-customize |
カスタマイズ | AI BPR の成果物をもとに、CSV の Glue Catalog 登録やエージェント指示・UI タイトルの更新を行う Power |
- Kiro で本リポジトリを開く
- 各
workshop/サブディレクトリの Power をインストールする 1-deploy→2-ai-bpr→3-customizeの順にチャットから指示して実行する

