Project Structure Guide - bpmbox/fastapi_django_main_lives GitHub Wiki
📁 プロジェクト構造詳細ガイド
🎯 ディレクトリ構造完全解説
このページでは、FastAPI Django Main Liveプロジェクトの実際のフォルダー構造と、各ディレクトリの具体的な役割を詳しく説明します。
🏗️ ルートディレクトリ構造
fastapi_django_main_live/
├── 📁 __pycache__/ # Python バイトコードキャッシュ
├── 📄 __init__.py # Pythonパッケージマーカー
├── 📄 app.py # メインアプリケーションエントリーポイント
├── 📄 app_debug.py # デバッグ用アプリケーション
├── 📄 app_light.py # 軽量版アプリケーション
├── 📄 app_simple.py # シンプル版アプリケーション
├── 📄 app.log # アプリケーションログ
├── 📄 artisan # Laravel風CLIツール ⭐
├── 📄 main.py # FastAPI メインファイル
├── 📄 manage.py # Django管理コマンド
├── 📄 Makefile # ビルド・デプロイ自動化
├── 📄 requirements.txt # Python依存関係
├── 📄 pyproject.toml # Python プロジェクト設定
├── 📄 poetry.lock # Poetry ロックファイル
├── 📄 package.json # Node.js 依存関係
├── 📄 pytest.ini # テスト設定
├── 📄 setup.cfg # セットアップ設定
├── 📄 Dockerfile # Docker コンテナ設定
├── 📄 docker-compose.yml # Docker Compose設定
├── 📄 README.md # プロジェクト説明
├── 📄 LICENSE # ライセンス
└── 📄 .gitignore # Git除外設定
🏢 Laravel風アプリケーション構造
📁 app/ - アプリケーションコア
app/
├── 📄 __init__.py
├── 📁 __pycache__/
├── 📁 Http/ # HTTP処理層
│ ├── 📁 Controllers/ # コントローラー群
│ │ ├── 📄 GradioController.py # Gradio統合制御
│ │ ├── 📄 HybridController.py # ハイブリッド機能
│ │ ├── 📁 Api/ # API専用コントローラー
│ │ ├── 📁 Web/ # Web UI コントローラー
│ │ └── 📁 Gradio/ # Gradio専用コントローラー
│ └── 📁 Middleware/ # ミドルウェア
├── 📁 Models/ # データモデル
├── 📁 Services/ # ビジネスロジック層
├── 📁 app_core/ # アプリケーション中核
└── 📁 command/ # コマンド処理
役割: Laravel風のアプリケーション構造で、MVC分離とビジネスロジックの整理
📁 bootstrap/ - アプリケーション起動
bootstrap/
├── 📄 __init__.py
├── 📄 app.py # アプリケーション初期化
├── 📄 bootstrap_app.py # 起動プロセス
├── 📁 __pycache__/
└── 📁 core/ # 起動コア機能
役割: アプリケーションの起動とサービス初期化
📁 config/ - 設定管理
config/
├── 📄 __init__.py
├── 📄 app.py # アプリケーション設定
├── 📄 database.py # データベース設定
└── 📁 __pycache__/
役割: 環境固有の設定とコンフィギュレーション管理
🗄️ データ・ストレージ構造
📁 database/ - データベース関連
database/
├── 📁 migrations/ # データベースマイグレーション
├── 📁 seeders/ # 初期データ投入
└── 📁 controllers/ # データベース操作専用コントローラー
役割: データベーススキーマ管理と初期データ設定
📁 storage/ - ファイルストレージ
storage/
├── 📁 app/ # アプリケーションファイル
├── 📁 logs/ # ログファイル
├── 📁 cache/ # キャッシュデータ
└── 📁 uploads/ # アップロードファイル
役割: ファイル保存、ログ管理、キャッシュ管理
📁 chroma/ - ベクターデータベース
chroma/
├── 📄 chroma.sqlite3 # ChromaDB SQLite
└── 📁 1303e1ad-d2ff-495f-b987-6ef0f8327781/ # コレクションデータ
役割: AI埋め込みベクター検索とRAG機能
🌐 Web・フロントエンド構造
📁 templates/ - Jinja2テンプレート
templates/
├── 📄 base.html # ベーステンプレート
├── 📄 dashboard.html # ダッシュボード
├── 📄 tool_redirect.html # ツールリダイレクト
├── 📄 tool_not_found.html # 404ページ
└── 📄 api_docs.html # API文書
役割: HTML テンプレート管理(Jinja2エンジン)
📁 static/ - 静的ファイル
static/
└── 📁 css/
└── 📄 main.css # メインスタイルシート
役割: CSS、JavaScript、画像などの静的アセット
📁 public/ - 公開ファイル
public/
├── 📄 index.html # メインエントリーポイント
└── 📁 assets/ # 公開アセット
役割: Web公開用ファイル(Laravel Public/と同等)
📁 resources/ - リソース
resources/
├── 📁 views/ # ビューファイル
├── 📁 css/ # 開発用CSS
└── 📁 js/ # 開発用JavaScript
役割: 開発用リソース(コンパイル前のファイル)
🛤️ ルーティング・コントローラー
📁 routes/ - ルーティング定義
routes/
├── 📄 web.py # Web ルート
├── 📄 api.py # API ルート
└── 📁 laravel_routes/ # Laravel風ルーティング
役割: URL ルーティング定義(Laravel Routes/と同等)
📁 controllers/ - 機能別コントローラー
controllers/
├── 📁 gra_01_chat/ # チャット機能
│ ├── 📄 chat.py # チャット処理
│ └── 📄 gradio_interface # Gradio UI定義
├── 📁 gra_02_openInterpreter/ # OpenInterpreter
├── 📁 contbk_unified_dashboard/ # 統合ダッシュボード
├── 📁 github_issue_creator/ # GitHub Issue作成
├── 📁 rpa_screenshot/ # RPA画像取得
└── 📁 ... # その他機能
役割: 機能ごとの独立したコントローラーとGradio UI
🐍 Django統合構造
📁 mysite/ - Django プロジェクト
mysite/
├── 📄 __init__.py
├── 📄 asgi.py # ASGI設定(FastAPI+Django統合)
├── 📄 settings.py # Django設定
├── 📄 urls.py # Django URL設定
├── 📄 wsgi.py # WSGI設定
├── 📄 logger.py # ログ設定
├── 📁 routers/ # FastAPI ルーター
│ ├── 📄 gradio.py # Gradio統合ルーター
│ ├── 📄 fastapi.py # FastAPI ルーター
│ └── 📄 database.py # データベースルーター
├── 📁 interpreter/ # OpenInterpreter統合
└── 📁 config/ # 設定管理
役割: Django + FastAPI の統合ハブ
📁 polls/ - Django アプリ例
polls/
├── 📄 __init__.py
├── 📄 admin.py # Django管理画面
├── 📄 apps.py # アプリ設定
├── 📄 models.py # Djangoモデル
├── 📄 tests.py # テスト
├── 📄 views.py # Djangoビュー
└── 📁 migrations/ # マイグレーション
役割: Django標準アプリケーション構造
🔧 開発・ツール構造
📁 vendor/ - 外部ライブラリ
vendor/
├── 📁 open-interpreter/ # OpenInterpreter統合
├── 📁 dify-setup/ # Dify AI プラットフォーム
├── 📁 docker-gui-setup/ # Docker GUI セットアップ
├── 📁 simple_ai_env/ # AI環境設定
└── 📁 LLaMA-Factory/ # LLaMA ファインチューニング
役割: 外部パッケージと大規模ライブラリ
📁 tests/ - テストスイート
tests/
├── 📄 __init__.py
├── 📄 test_logger.py # ログ機能テスト
└── 📁 unit/ # ユニットテスト
役割: 自動テストとQA
📁 scripts/ - スクリプト
scripts/
├── 📄 setup.py # セットアップスクリプト
├── 📄 deploy.sh # デプロイスクリプト
└── 📄 backup.py # バックアップスクリプト
役割: 運用・管理スクリプト
📚 ドキュメント・情報
📁 docs/ - ドキュメント
docs/
├── 📄 README.md # プロジェクト説明
├── 📄 API.md # API仕様
├── 📄 DEPLOYMENT.md # デプロイガイド
└── 📁 images/ # 画像資料
役割: プロジェクト文書化
📁 wiki/ - GitHub Wiki
wiki/
├── 📄 Home.md # Wikiホーム
├── 📄 System-Architecture.md # アーキテクチャ
├── 📄 Implemented-Features.md # 実装機能
├── 📄 Jinja2-Template-Integration.md # テンプレート統合
├── 📄 Laravel-Style-Architecture.md # Laravel風構造
└── 📄 _Sidebar.md # サイドバー
役割: GitHub Wiki 管理
🗃️ データファイル
データベースファイル
📄 db.sqlite3 # Django メインDB
📄 conversation_history.db # 会話履歴DB
📄 prompts.db # プロンプト管理DB
設定・キャッシュ
📁 cache/ # 各種キャッシュファイル
📁 flagged/ # Gradio フラグ付きデータ
🚀 実行ファイル・エントリーポイント
メインアプリケーション
artisan
⭐ - Laravel風CLIツールapp.py
- メインアプリケーションmain.py
- FastAPI エントリーポイントmanage.py
- Django管理コマンド
デバッグ・開発用
app_debug.py
- デバッグモードapp_light.py
- 軽量版app_simple.py
- シンプル版
🎯 この構造の設計思想
🏆 Laravel MVC + Python の融合
- 馴染みやすさ: Laravel開発者なら直感的に理解可能
- Python力活用: Django ORM + FastAPI + Gradio の強力な機能
- 拡張性: 新機能追加時の構造的一貫性
- 保守性: 各層の明確な分離と責任範囲
🔄 自動統合システム
# controllers/ 配下の自動検出例
def include_gradio_interfaces():
for root, dirs, files in os.walk("controllers"):
for file in files:
if hasattr(module, 'gradio_interface'):
# 自動統合
interfaces[name] = module.gradio_interface
🛡️ エンタープライズ対応
- セキュリティ: 適切な分離とアクセス制御
- スケーラビリティ: モジュラー設計
- 可読性: 標準的なMVC構造
- テスタビリティ: 各層の独立テスト可能
📈 開発フロー例
新機能追加の手順
./artisan make:controller NewFeatureController
- コントローラー生成controllers/new_feature/gradio_interface
- UI作成routes/web.py
- ルート追加(必要に応じて)- 自動統合 - システムが自動検出・統合
ファイル配置ルール
controllers/feature_name/
├── 📄 controller.py # メイン処理
├── 📄 gradio_interface # UI定義(この名前で自動検出)
├── 📄 models.py # データモデル
├── 📄 services.py # ビジネスロジック
└── 📄 tests.py # テスト
この構造は、Laravel の優れた設計思想をPython で実現し、AI時代のWeb開発に最適化された革新的なアーキテクチャです。 🚀