fastapi_django_main_live / wiki-repo /System-Architecture.md
GitHub Action
🚀 Auto-deploy from GitHub Actions
5a5e7a2
# 🏗️ システムアーキテクチャ
## 🎯 システム概要
**FastAPI Django Main Live**は、**AI協働開発**により構築された自動成長型Webアプリケーションです。
### 🌟 核心コンセプト
- **動的機能拡張**: AIの指示だけで新機能を自動追加
- **命名規則による自動統合**: 特定の名前を使うだけで機能統合
- **プラグイン式アーキテクチャ**: 既存機能に影響せずに機能追加
- **ゼロ設定ファイル**: 複雑な設定なしで即座に動作
## 🏢 アーキテクチャ全体像
```
┌─────────────────────────────────────────────────────────┐
│ 🌐 Web ブラウザ │
└─────────────────────┬───────────────────────────────────┘
│ HTTP/WebSocket
┌─────────────────────┴───────────────────────────────────┐
│ 🚀 FastAPI Core │
│ ┌─────────────────┬─────────────────┬─────────────────┐ │
│ │ 📊 Gradio │ 🔄 Django │ 🤖 AI Core │ │
│ │ WebUI │ Backend │ OpenAI/Groq │ │
│ └─────────────────┴─────────────────┴─────────────────┘ │
└─────────────────────┬───────────────────────────────────┘
┌─────────────────────┴───────────────────────────────────┐
│ 🔄 動的ルーターインポートシステム │
│ ┌─────────────────────────────────────────────────────┐ │
│ │ controllers/ スキャナー (mysite/routers/gradio.py) │ │
│ │ • gradio_interface 自動検出 │ │
│ │ • router 自動検出 │ │
│ │ • 新機能の即座統合 │ │
│ └─────────────────────────────────────────────────────┘ │
└─────────────────────┬───────────────────────────────────┘
┌─────────────────────┴───────────────────────────────────┐
│ 📦 機能モジュール群 │
│ ┌─────────────────┬─────────────────┬─────────────────┐ │
│ │ 🏠 ContBK │ 🐙 GitHub │ 🖼️ RPA │ │
│ │ ダッシュボード │ Issue 作成 │ 画像取得 │ │
│ └─────────────────┼─────────────────┼─────────────────┤ │
│ │ 💬 AI Chat │ 📊 Database │ 🔧 Debug │ │
│ │ OpenInterpreter│ 操作 │ VS Code連携 │ │
│ └─────────────────┴─────────────────┴─────────────────┘ │
└─────────────────────┬───────────────────────────────────┘
┌─────────────────────┴───────────────────────────────────┐
│ 💾 データ層 │
│ ┌─────────────────┬─────────────────┬─────────────────┐ │
│ │ 📝 SQLite │ 📂 ファイル │ 🌐 外部API │ │
│ │ 各種DB │ システム │ GitHub/Groq │ │
│ └─────────────────┴─────────────────┴─────────────────┘ │
└─────────────────────────────────────────────────────────┘
```
## 🔄 動的インポートシステム(核心技術)
### 📍 自動検出の仕組み
#### 1. ディレクトリスキャン
```python
# mysite/routers/gradio.py
def include_gradio_interfaces():
package_dir = "controllers" # スキャン対象
# controllers/ 配下をすべて探索
for root, dirs, files in os.walk(package_dir):
for file in files:
if file.endswith('.py'):
# Python モジュール自動インポート
module = importlib.import_module(module_path)
# gradio_interface オブジェクト検出
if hasattr(module, 'gradio_interface'):
# 自動でWebUIに統合
interfaces[tab_name] = module.gradio_interface
```
#### 2. 命名規則による自動統合
```python
# ✅ 自動検出される例
gradio_interface = gr.Interface(...) # 必須の名前
router = APIRouter() # 必須の名前
# ❌ 検出されない例
interface = gr.Interface(...) # 名前が違う
my_router = APIRouter() # 名前が違う
```
#### 3. 即座の機能統合
- サーバー再起動不要
- 新しいタブが自動表示
- 既存機能への影響なし
## 🛠️ 技術スタック詳細
### 🎨 フロントエンド層
```
🌐 Gradio WebUI
├── 📊 Blocks Layout Engine
├── 🎯 Component System (Textbox, Button, etc.)
├── 📱 Responsive Design
└── ⚡ Real-time Updates
```
### ⚙️ バックエンド層
```
🚀 FastAPI Framework
├── 🔄 Django Integration
├── 📡 RESTful API
├── 🔌 WebSocket Support
└── 🛡️ Middleware Stack
```
### 🤖 AI統合層
```
🧠 AI Engine
├── 🤖 OpenInterpreter (Code Execution)
├── ⚡ Groq API (LLM Inference)
├── 🧩 GitHub Copilot (Code Generation)
└── 💬 Natural Language Processing
```
### 🔧 自動化層
```
🤖 RPA System
├── 🎭 Playwright (Browser Automation)
├── 📸 Screenshot Capture
├── 🖼️ Image Collection
└── 📊 Execution History
```
### 💾 データ層
```
📊 Database Layer
├── 💬 chat_history.db (チャット履歴)
├── 🤖 rpa_history.db (RPA実行記録)
├── 📝 conversation_history.db (会話記録)
└── 📋 prompts.db (プロンプト管理)
```
## 📁 ディレクトリ構造と責務
### 🎯 核心ディレクトリ
```
fastapi_django_main_live/
├── app.py # 🚀 メインアプリケーション
├── mysite/ # 🔄 Django統合・ルーティング
│ └── routers/gradio.py # ⭐ 動的インポートエンジン
├── controllers/ # 📦 機能モジュール群
│ ├── gra_01_chat/ # 💬 基本チャット
│ ├── gra_02_openInterpreter/ # 🤖 AI統合
│ ├── contbk_unified_dashboard.py # 🏠 統合ダッシュボード
│ ├── conversation_logger.py # 📝 会話記録
│ └── github_issue_creator.py # 🐙 Issue作成
└── contbk/ # 🔧 高度な機能群
└── gra_12_rpa/ # 🖼️ RPA・画像取得
```
### 📋 機能別ディレクトリ
```
controllers/gra_XX_功能名/ # Gradio UI機能
├── __init__.py # パッケージ初期化
├── main.py # メイン実装
└── gradio_interface # ⭐ 必須オブジェクト
routers/api_XX_功能名.py # FastAPI エンドポイント
└── router # ⭐ 必須オブジェクト
```
## 🔌 プラグイン式機能追加システム
### 🎯 新機能追加フロー
#### 1. AI指示による要求
```
ユーザー: 「天気予報機能を追加して」
```
#### 2. AI による自動実装
```python
# controllers/gra_13_weather/weather.py を自動生成
import gradio as gr
import requests
def get_weather(city):
# 天気API呼び出し
return f"{city}の天気: 晴れ"
# この名前でないと自動統合されない
gradio_interface = gr.Interface(
fn=get_weather,
inputs=gr.Textbox(label="都市名"),
outputs=gr.Textbox(label="天気"),
title="🌤️ 天気予報"
)
```
#### 3. 自動統合・即座利用
- `controllers/` にファイル配置
- 動的スキャナーが自動検出
- WebUIタブに即座表示
- ユーザーがすぐに利用可能
### 🔄 自動統合の流れ
```mermaid
graph TD
A[AI指示受信] --> B[コード自動生成]
B --> C[controllers/配下に配置]
C --> D[動的スキャナーが検出]
D --> E[gradio_interface 確認]
E --> F[WebUIタブ自動追加]
F --> G[即座に利用可能]
```
## 🔐 セキュリティアーキテクチャ
### 🛡️ 多層防御システム
```
🔐 Security Layers
├── 🌐 Web Layer (HTTPS, CORS)
├── 🔑 Auth Layer (Environment Variables)
├── 🛡️ App Layer (Input Validation)
├── 💾 Data Layer (SQLite Encryption)
└── 🔧 Debug Layer (Dev-only Access)
```
### 🔑 認証・認可
- **環境変数**: 機密情報の安全管理
- **パスワード認証**: OpenInterpreter 保護
- **GitHub CLI**: 自動認証
- **デバッグ環境**: 開発時のみアクセス
## 📊 パフォーマンス設計
### ⚡ 高速化技術
- **非同期処理**: `async/await` による並行処理
- **動的ロード**: 必要な機能のみ読み込み
- **キャッシュ**: 重複処理の削減
- **軽量DB**: SQLite による高速データアクセス
### 📈 スケーラビリティ
- **モジュラー設計**: 機能の独立性
- **プラグイン式**: 無制限の機能拡張
- **自動統合**: 設定ファイル不要
- **メモリ効率**: リソース使用量最適化
## 🔄 データフロー
### 📊 主要なデータの流れ
#### 1. ユーザー入力 → AI処理
```
ブラウザ → FastAPI → OpenInterpreter → AI処理 → レスポンス
```
#### 2. 機能追加フロー
```
AI指示 → コード生成 → ファイル配置 → 自動検出 → UI統合
```
#### 3. データ永続化
```
ユーザー操作 → アプリ処理 → SQLite保存 → 履歴管理
```
## 🚀 拡張性設計
### 🔮 将来の拡張可能性
#### 技術拡張
- **PostgreSQL**: より高性能なデータベース
- **Redis**: キャッシュ・セッション管理
- **Docker**: コンテナ化
- **Kubernetes**: オーケストレーション
#### 機能拡張
- **多言語対応**: 国際化
- **モバイルアプリ**: React Native連携
- **クラウド統合**: AWS/Azure連携
- **エンタープライズ**: 大規模運用対応
### 💡 設計原則
#### 1. **Keep It Simple**
- 複雑さよりもわかりやすさ
- 設定ファイルよりも命名規則
- ドキュメントよりも直感的操作
#### 2. **Convention over Configuration**
- 決まった場所に決まった名前で配置
- 自動検出による設定レス
- 一貫性のある命名規則
#### 3. **AI-First Design**
- AIによる自動生成を前提
- 自然言語での操作
- 人間とAIの協働最適化
---
**アーキテクト**: GitHub Copilot AI + miyataken999
**設計思想**: AI協働による自動成長システム
**最終更新**: 2025年06月11日
> 🏗️ **このアーキテクチャは、AIと人間が協働して設計した革新的なシステムです。技術的な完璧さだけでなく、使いやすさと拡張性を両立しています。**