未来日記エージェントは、ユーザーが実現したい未来の目標を相談すると、その目標を視覚化した実際の動画と、目標達成までのステップを示した計画案を自動で生成するAIエージェントシステムです。
- 🎬 実際の動画生成: Google Veo 3を使用した8秒間の720p高品質動画を自動生成
- 📊 段階的計画作成: 目標達成までの具体的なマイルストーン計画を生成
- 👥 パーソナライズ: ユーザーのプロフィール(年代、家族構成、興味・関心、現在の状況等)に基づいた個別対応
- 📅 カレンダー連携: 生成された計画をカレンダー登録用形式で出力
- 📋 高度な履歴管理:
- 🎬 動画ファイルの有無でフィルタリング
- 🙈 不要な履歴の非表示機能
- 👁️ 非表示履歴の表示切り替え
- 📊 統計情報とサマリー表示
- ☁️ Google Cloud Storage永続化: コンテナ再起動後もデータ保持
- 🔄 自動バックアップ: タイムスタンプ付きバックアップ自動作成
- 🛠️ データ復旧機能: 履歴消失時の復旧スクリプト提供
- 🌐 Web フォーム: ブラウザから簡単に計画を作成できる直感的なインターフェース
- 📋 Web履歴閲覧: ブラウザで動画と計画を確認できる専用インターフェース
▶️ 動画再生・ダウンロード: 生成された動画をブラウザで再生・ダウンロード可能- 📺 統合ビュー: 動画とマイルストーンを同一画面で表示する完全な計画体験
- 🔍 詳細動画説明: 動画生成に失敗した場合でも詳細なシナリオ説明を提供
┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐
│ Web Interface │ │ ユーザー │ │ カレンダー │
│ (履歴閲覧) │ │ プロフィール │ │ アプリ連携 │
└─────────────────┘ └─────────────────┘ └─────────────────┘
│ │ │
▼ ▼ ▼
┌───────────────────────────────────────────────────────────────────┐
│ FastAPI REST API + Static Files │
├───────────────────────────────────────────────────────────────────┤
│ 統合エンジン (Integration) │
├───────────────────────────────────────────────────────────────────┤
│ 入力処理 │ プロフィール │ 動画生成 │ 計画 │ 履歴管理 │
│ エンジン │ 分析エンジン │ (Veo 3対応) │ 生成 │ エンジン │
└───────────────────────────────────────────────────────────────────┘
│ │ │
▼ ▼ ▼
┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐
│ Google Veo 3 │ │ Google Gemini │ │ LangSmith │
│ + Imagen 3.0 │ │ 2.5 Flash │ │ トレース │
└─────────────────┘ └─────────────────┘ └─────────────────┘
- 入力データ処理エンジン - ユーザープロファイルとVisionを構造化
- プロファイル分析エンジン - パーソナライゼーション情報を抽出
- 動画生成エンジン - Google Veo 3 + Imagen 3.0を使用した実際の動画生成
- マイルストーン計画生成エンジン - 段階的な実行計画を生成
- 実行履歴管理エンジン - 過去の実行結果を管理
- Web履歴インターフェース - 動画再生・ダウンロード機能付きのWeb UI
- Python 3.11+
- Google Gemini API キー
- LangSmith API キー(オプション)
- リポジトリのクローン
git clone <repository-url>
cd vision-planning-agent- 仮想環境の作成
python -m venv venv
source venv/bin/activate # Windowsの場合: venv\\Scripts\\activate- 依存関係のインストール
pip install -r requirements.txt- 環境変数の設定
cp .env.example .env
# .envファイルを編集してAPIキーを設定# Google Gemini API設定
GOOGLE_GEMINI_API_KEY=your_google_gemini_api_key_here
# Google Cloud Storage設定(Cloud Run環境用)
USE_GCS=true
GCS_BUCKET_NAME=future-diary-agent-storage
# LangSmith設定(オプション)
LANGSMITH_API_KEY=your_langsmith_api_key_here
LANGSMITH_PROJECT=future-diary-agent
# アプリケーション設定
ENVIRONMENT=development
DEBUG=true# 仮想環境を有効化
source venv/bin/activate
# 開発サーバーを起動
uvicorn src.future_diary_agent.api.main:app --reload --host 0.0.0.0 --port 8000# Docker イメージをビルド
# Apple Silicon (M1/M2) Mac の場合は --platform linux/amd64 を指定
docker build -t future-diary-agent .
# コンテナを実行
docker run -p 8000:8080 --env-file .env future-diary-agent# 簡単デプロイ(推奨)
./deploy.sh YOUR_PROJECT_ID asia-northeast1
# 手動デプロイ
gcloud run deploy future-diary-agent \
--source . \
--platform managed \
--region asia-northeast1 \
--allow-unauthenticated \
--memory 2Giサーバー起動後、以下のURLでサービスにアクセスできます:
- 🏠 メインページ(計画作成フォーム): http://localhost:8000/
- 📝 計画作成ページ: http://localhost:8000/create
- 📋 Web履歴閲覧画面: http://localhost:8000/history
- 📚 API ドキュメント: http://localhost:8000/docs
- 🔍 ヘルスチェック: http://localhost:8000/health
# 計画生成のテスト
curl -X POST "http://localhost:8000/api/generate-plan" \
-H "Content-Type: application/json" \
-d '{
"request_id": "test_001",
"user_profile": {
"age": 35,
"marital_status": "married",
"children": [{"age": 8, "gender": "male"}],
"interests": ["旅行", "家族の時間", "写真撮影"],
"current_situation": "会社員"
},
"vision": "3年後に息子とラスベガス旅行に行きたい"
}'
# 動画ファイルがある履歴のみ取得
curl "http://localhost:8000/api/execution-history?video_only=true&limit=5"
# 履歴を非表示にする
curl -X POST "http://localhost:8000/api/execution-history/exec_1234567890/hide"
# 非表示履歴も含めて取得
curl "http://localhost:8000/api/execution-history?show_hidden=true"
# データ復旧スクリプトの使用
python restore_history.py --list
python restore_history.py --restore execution_history_20250818_051234.jsonPOST /api/generate-plan
{
\"user_profile\": {
\"age\": 35,
\"marital_status\": \"married\",
\"children\": [
{\"age\": 8, \"gender\": \"male\"},
{\"age\": 5, \"gender\": \"female\"}
],
\"interests\": [\"旅行\", \"家族の時間\", \"写真撮影\"],
\"current_situation\": \"会社員\",
\"calendar_categories\": [\"家族\", \"旅行\", \"仕事\"]
},
\"vision\": \"3年後に息子とラスベガス旅行に行きたい\"
}レスポンス例:
{
\"success\": true,
\"request_id\": \"req_1234567890\",
\"result\": {
\"video_file\": \"base64_encoded_mp4_video_data\",
\"video_metadata\": {
\"duration\": 8,
\"resolution\": \"720p\",
\"model\": \"veo-3.0-generate-preview\",
\"audio\": true
},
\"milestones\": [
{
\"title\": \"旅行予算の計画立案\",
\"description\": \"ラスベガス旅行に必要な予算を詳細に計算し、貯蓄計画を立てる\",
\"target_date\": \"2025-02-17\",
\"priority\": \"high\",
\"estimated_duration\": 120
}
],
\"summary\": \"3年間の段階的な旅行準備計画\",
\"recommendations\": [
\"各マイルストーンをカレンダーに登録して、定期的にリマインダーを設定しましょう\",
\"月に1回、進捗を見直して必要に応じて計画を調整しましょう\"
]
},
\"processing_time\": 45000
}GET /api/execution-history?limit=10&video_only=false&show_hidden=false
パラメータ:
limit: 取得件数(1-50、デフォルト: 10)video_only: 動画ファイルがある履歴のみ表示(デフォルト: false)show_hidden: 非表示履歴も含めて表示(デフォルト: false)
レスポンス例:
{
\"success\": true,
\"records\": [...],
\"count\": 5,
\"limit\": 10,
\"show_hidden\": false,
\"video_only\": true
}POST /api/execution-history/{execution_id}/hide
- 指定した履歴を非表示にする
POST /api/execution-history/{execution_id}/show
- 指定した履歴を表示に戻す
GET /api/video/{execution_id}
GET /api/view/{execution_id}
動画とマイルストーンを統合したWebページを表示します。
GET /api/demo-samples
GET /api/statistics
# 全てのテストを実行
pytest
# カバレッジ付きでテスト実行
pytest --cov=src
# 特定のテストファイルを実行
pytest tests/test_api.py -vvision-planning-agent/
├── src/future_diary_agent/
│ ├── api/ # FastAPI関連
│ ├── engines/ # 各種処理エンジン
│ ├── models/ # Pydanticモデル
│ └── __init__.py
├── tests/ # テストコード
├── config/ # 設定ファイル
├── docs/ # ドキュメント
├── data/history/ # ローカル履歴データ
├── static/ # フロントエンドファイル
├── restore_history.py # データ復旧スクリプト
├── requirements.txt # 依存関係
├── Dockerfile # Docker設定
└── README.md
# フォーマット
black src/ tests/
# リント
flake8 src/ tests/
# 型チェック
mypy src/入力:
- 年齢: 35歳
- 家族構成: 既婚、子供2人(8歳男児、5歳女児)
- 目標: "3年後に息子とラスベガス旅行に行きたい"
出力:
- 🎬 実際の動画: 家族でラスベガスを楽しむ8秒間の720p動画(Veo 3生成)
- 📊 計画: 5つの段階的マイルストーン計画
- 📅 カレンダー: 登録用テキスト
- 🌐 Web閲覧: 履歴画面で動画再生・ダウンロード可能
入力:
- 年齢: 28歳
- 家族構成: 独身
- 目標: "5年後に自分のカフェを開きたい"
出力:
- 🎬 実際の動画: カフェ経営の理想シーンを映した高品質動画
- 📊 計画: スキルアップから開業までの詳細計画
- ✅ ステップ: 実現可能性の高い段階的ステップ
- 📱 アクセス: Webインターフェースでいつでも確認可能
- 📝 直感的フォーム: プロフィールと目標を簡単入力
- 🎯 サンプルボタン: 夫婦旅行、キャリア、健康の3種類のサンプル
- 👨👩👧👦 動的子供情報: お子様の年齢・性別を追加・削除可能
- ⚡ リアルタイム生成: フォーム送信で即座に計画・動画を生成
- 📋 実行履歴一覧: 過去の全ての計画生成結果を表示
- 🎬 高度なフィルタリング:
- 動画ファイルの有無でフィルタリング
- 非表示履歴の表示/非表示切り替え
- 🙈 履歴管理:
- 不要な履歴を個別に非表示にする機能
- 非表示履歴を表示に戻す機能
- 📺 統合ビュー: 動画とマイルストーンを同一画面で表示
- 🎬 動画再生: ブラウザで直接動画を視聴
- 💾 動画ダウンロード: MP4ファイルとしてローカル保存
- 📊 統計情報: 総実行数・成功数・平均処理時間を表示
- 🔍 詳細表示: プロファイル・マイルストーン・動画説明を確認
- 📋 プロファイル情報: 年齢、結婚状況、お子様、興味・関心、現在の状況を正確に表示
- 🎯 ワンストップ体験: 動画視聴からマイルストーン確認まで一つの画面で完結
- 📱 レスポンシブデザイン: モバイル・タブレット・デスクトップに対応
- 🎨 美しいUI: 直感的で使いやすいインターフェースデザイン
- ⚡ 高速表示: 効率的な読み込みと快適な操作性
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature) - Commit your Changes (
git commit -m 'Add some AmazingFeature') - Push to the Branch (
git push origin feature/AmazingFeature) - Open a Pull Request
このプロジェクトはMITライセンスの下で配布されています。詳細はLICENSEファイルを参照してください。
- Google Gemini API - テキスト生成・プランニング
- Google Veo 3 - 動画生成
- Google Imagen 3.0 - 画像生成
- LangSmith - AIトレース・監視
- 🚀 Cloud Run デプロイメントガイド
- 📚 API仕様書 (サーバー起動後)
- ローカル開発:
data/history/execution_history.json - Cloud Run本番:
gs://future-diary-agent-storage/execution_history.json - 自動切り替え:
USE_GCS環境変数で自動判定
# 利用可能なバックアップ確認
python restore_history.py --list
# バックアップから復元
python restore_history.py --restore execution_history_YYYYMMDD_HHMMSS.json
# ローカル履歴をCloud Runに同期
gcloud storage cp data/history/execution_history.json gs://future-diary-agent-storage/execution_history.json履歴保存時に以下のバックアップが自動作成されます:
- GCS:
gs://future-diary-agent-storage/backups/execution_history_YYYYMMDD_HHMMSS.json - ローカル:
data/history/execution_history_backup.json
質問や問題がある場合は、Issueを作成してください。
未来日記エージェント - あなたの夢を現実にする第一歩をサポートします 🌟