ローカル開発ガイド
July 5, 2026 · View on GitHub
コードのカスタマイズやローカルでの動作確認を行う場合の手順です。
前提条件
- 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 にアクセス
テスト
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 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/ # ビジネスロジック層
│ │ ├── shared/ # 複数Managerが共有するユーティリティ(file_utils, document_loader等)
│ │ ├── persona_manager.py # ペルソナCRUD・検索
│ │ ├── persona_generation_manager.py # ペルソナ生成ワークフロー
│ │ ├── persona_memory_manager.py # 長期記憶(AgentCore Memory)管理
│ │ ├── discussion_manager.py # 簡易議論の実行・インサイト抽出
│ │ ├── agent_discussion_manager.py # エージェント駆動議論(しっかり議論)
│ │ ├── interview_manager.py # リアルタイムインタビュー
│ │ ├── survey_template_manager.py # テンプレートCRUD + AI設問生成
│ │ ├── survey_dataset_manager.py # データセット管理 + DWH連携
│ │ ├── survey_execution_manager.py # アンケート実行制御
│ │ ├── survey_analysis_manager.py # ビジュアル分析 + インサイトレポート
│ │ ├── report_manager.py # レポート生成(議論・インタビュー)
│ │ ├── dataset_manager.py # 行動データ管理
│ │ └── file_manager.py, settings_manager.py, job_manager.py
│ ├── services/ # 外部サービス連携層
│ │ ├── ai_service.py # Bedrock Converse/Invoke API
│ │ ├── agent_service.py # Strands Agent SDK操作
│ │ ├── database_service.py # DynamoDB CRUD
│ │ ├── s3_service.py # S3操作
│ │ ├── survey_batch_service.py # DuckDB/Parquet + Bedrock Batch Inference
│ │ ├── data_agent_service.py # DWHエージェントツール
│ │ └── service_factory.py # DI用シングルトンファクトリー
│ ├── prompts/ # プロンプトテンプレート定数・ヘルパー関数
│ ├── models/ # データモデル(イミュータブル、標準ライブラリのみ依存)
│ └── config.py # 設定管理
├── cdk/ # AWS CDKインフラストラクチャコード
├── tests/ # テストコード(unit, integration, api)
├── docs/ # ドキュメント
├── scripts/ # ユーティリティスクリプト
└── sample_data/ # サンプルデータセット
テスト構成
tests/
├── conftest.py # 共通フィクスチャ(DB、モデル、モック)
├── unit/ # 単体テスト(外部依存をモック)
├── integration/ # 統合テスト(モックDB、AIモック)
└── api/ # APIエンドポイントテスト