AI ペルソナシステム

May 9, 2026 · View on GitHub

概要

このプロジェクトは Amazon Bedrock を活用し、AIペルソナの構築と、そのAIペルソナをもとにペルソナ同士の議論、インタビューそしてアンケート調査などを通じて商品企画やマーケティング戦略立案のためのインサイトを生成するためのサンプル実装です。

ai-persona-image-01

セットアップ

AWS 上へのデプロイ

ローカル環境でのアプリケーション起動

前提条件

  • Python 3.13+、uv
  • バックエンドリソース(DynamoDB、S3、AgentCore Memory)がAWS CDKで構築済み
  • AWS認証情報(Bedrock、DynamoDB、S3へのアクセス)

ローカルでの起動手順

# 1. 依存関係のインストール
uv sync

# 2. 環境変数を設定(.env.exampleを参考に実際の値を記入)
cp .env.example .env
# .env を編集してAWSリソース名等を設定

# 3. Tailwind CSSビルド
./scripts/build-css.sh --minify

# 4. アプリケーション起動
uv run python run_htmx.py

ブラウザで http://localhost:8000 にアクセス

主要機能

🎙️ インタビュー

AIペルソナとの議論・対話を通じてインサイトを発見します。

ステップ機能概要
1ペルソナ生成インタビュー、調査レポート、レビュー、購買データなど多様なデータ+自然言語の指示でAIペルソナを自動生成
2ペルソナ管理ペルソナの編集・削除、長期記憶(AgentCore Memory)、知識・外部データの管理
3議論設定ペルソナを選択し、3つのモードで議論・インタビューを実行
4議論結果インサイト確認(信頼度スコア付き)、カスタムカテゴリー、レポート生成、過去議論の検索

議論モード:

モード処理時間ペルソナ数特徴
簡易議論3-5分2-5体高速な意見収集
しっかり議論5-15分2-5体エージェント駆動の深い議論。長期記憶対応
インタビューリアルタイム1-5体ペルソナとの直接チャット。長期記憶対応

📊 アンケート調査

数百〜数千のAIペルソナに大規模アンケートを実施します。

ステップ機能概要
1ペルソナデータ設定オープンデータセット(Nemotron)のDLや自社顧客データ(CSV)のアップロード・カラムマッピング
2テンプレート管理選択式・自由記述・スケール評価の質問作成、画像添付、AIチャットでの設問ドラフト自動生成
3アンケート開始ペルソナデータソース選択、属性フィルタ、サンプリング数、アンケートジョブ開始
4結果表示CSVダウンロード、ビジュアル分析(棒グラフ)、AIインサイトレポート

詳細な使用方法は ユーザーガイド を参照してください。

技術スタック

カテゴリ技術
言語・フレームワークPython 3.13, FastAPI, htmx, Jinja2, Tailwind CSS, Alpine.js
AIAmazon Bedrock (Claude Sonnet 4.6 / Haiku 4.5), Strands Agent SDK
データDynamoDB, DuckDB, Polars, S3
インフラAWS CDK (TypeScript), ECS Express Mode, CloudFront, Lambda@Edge, WAF, ECR, Cognito
リアルタイムServer-Sent Events (SSE)

テスト

uv sync --extra dev
uv run pytest                          # 全テスト
uv run pytest -m unit                  # 単体テスト(マーカー指定)
uv run pytest -m integration           # 統合テスト(マーカー指定)
uv run pytest -m api                   # APIテスト(マーカー指定)
uv run pytest --cov=src --cov-report=html  # カバレッジ付き

開発

uv sync --extra dev
uv run ruff check .          # リント
uv run ruff check --fix .    # 自動修正
uv run mypy src/ web/             # 型チェック
プロジェクト構造
ai-persona-system/
├── run_htmx.py             # 起動スクリプト
├── web/                    # フロントエンド
│   ├── main.py            # FastAPIアプリケーション
│   ├── routers/           # APIルーター(persona, discussion, interview, survey, settings, api)
│   ├── templates/         # Jinja2テンプレート
│   └── static/            # 静的ファイル(CSS/JS)
├── src/
│   ├── managers/          # ビジネスロジック層
│   ├── services/          # 外部サービス連携層(AI, DB, S3, Memory, Survey)
│   ├── models/            # データモデル
│   ├── database/          # データベース管理
│   └── config.py          # 設定管理
├── cdk/                   # AWS CDKインフラストラクチャコード
├── tests/                 # テストコード(unit, integration, api)
├── docs/                  # ドキュメント
├── scripts/               # ユーティリティスクリプト
└── sample_data/             # サンプルデータセット
テスト構成
tests/
├── conftest.py        # 共通フィクスチャ(DB、モデル、モック)
├── unit/              # 単体テスト(外部依存をモック)
├── integration/       # 統合テスト(モックDB、AIモック)
└── api/               # APIエンドポイントテスト

他ソリューションとの連携オプション

AI ペルソナシステムは、他の AWS ソリューションと連携することで機能を拡張できます。

連携先概要詳細
sample-text2sql-agent自社の業務知識を持ったデータ分析エージェントと連携し、多様な業務データに基づいたペルソナ生成やディスカッションレポートの作成が可能に連携ガイド
Amazon QuickAI ペルソナシステムの主要機能(ペルソナ生成、議論シミュレーション、インサイト生成)を MCP ツールとして利用する AIエージェントを構築し、リサーチ業務を高度化連携ガイド

ドキュメント

対象ドキュメント
ユーザー向けユーザーガイド
開発者向けCDKデプロイガイド
共通データ分析エージェント連携ガイド
共通AI ペルソナ MCP Server 設定ガイド

トラブルシューティング

詳細は トラブルシューティングガイド を参照してください。

問題対処
AWS認証エラーaws sts get-caller-identity で認証情報を確認
ファイルアップロードエラー対応形式(.txt, .md)・サイズ上限(10MB)を確認
データベースエラーuv run python src/database/create_dynamodb_tables.py でテーブル再作成
長期記憶が動作しないENABLE_LONG_TERM_MEMORY=true と各Memory IDの設定を確認
CDKデプロイエラーcd cdk && npm installnpx cdk bootstrap を確認

Citation

This project uses nvidia/Nemotron-Personas-Japan, licensed under CC BY 4.0. https://creativecommons.org/licenses/by/4.0/

@software{nvidia/Nemotron-Personas-Japan,
  author = {Fujita, Atsunori and Gong, Vincent and Ogushi, Masaya and Yamamoto, Kotaro and Suhara, Yoshi and Corneil, Dane and Meyer, Yev},
  title = {{Nemotron-Personas-Japan}: Synthetic Personas Aligned to Real-World Distributions},
  month = {September},
  year = {2025},
  url = {https://huggingface.co/datasets/nvidia/Nemotron-Personas-Japan}
}

Security

See CONTRIBUTING for more information.

License

This library is licensed under the MIT-0 License. See the LICENSE file.