File size: 11,167 Bytes
7cd8277 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 |
# 📁 プロジェクト構成ガイド
このドキュメントでは、`fastapi_django_main_live` プロジェクトのフォルダ構成について詳しく説明します。
## 🏗️ 概要
このプロジェクトは、FastAPI、Django、Gradio、そして各種AI/ML ツールを統合したマルチフレームワーク開発環境です。
```
fastapi_django_main_live/
├── 🌐 Webアプリケーション層
├── 🤖 AI/ML統合層
├── 💾 データベース層
├── 🔧 開発・運用ツール層
└── 📚 ドキュメント・リソース層
```
---
## 📂 ルートディレクトリ構成
### 🚀 **メインアプリケーションファイル**
| ファイル | 説明 | 用途 |
|---------|------|------|
| `app.py` | メインアプリケーションエントリーポイント | FastAPI/Django統合起動 |
| `manage.py` | Django管理コマンド | Django標準管理ツール |
| `app_debug_server.py` | デバッグ用サーバー | 開発時のデバッグサーバー |
### ⚙️ **設定・構成ファイル**
| ファイル | 説明 | 用途 |
|---------|------|------|
| `Makefile` | プロジェクト管理コマンド | 開発・運用の自動化 |
| `docker-compose.yml` | Docker構成 | コンテナ化環境 |
| `Dockerfile` | Dockerイメージ定義 | アプリケーションコンテナ |
| `pyproject.toml` | Python依存関係管理 | Poetry設定 |
| `requirements.txt` | pip依存関係 | パッケージ管理 |
| `pytest.ini` | テスト設定 | pytest構成 |
### 🔐 **環境・認証ファイル**
| ファイル | 説明 | 用途 |
|---------|------|------|
| `.env` | 環境変数設定 | API キー、DB接続情報等 |
| `.env.example` | 環境変数テンプレート | 設定例 |
| `fix_secrets.sh` | シークレット修正スクリプト | セキュリティ設定 |
### 💾 **データベースファイル**
| ファイル | 説明 | 用途 |
|---------|------|------|
| `prompts.db` | プロンプト管理用SQLite | プロンプト履歴・テンプレート |
| `chat_history.db` | チャット履歴用SQLite | 会話履歴保存 |
| `users.db` | ユーザー情報用SQLite | ユーザー管理 |
---
## 🏢 **メインアプリケーション構造**
### 🌐 `mysite/` - Django メインサイト
Djangoプロジェクトのコア部分
```
mysite/
├── settings.py # Django設定
├── urls.py # URLルーティング
├── asgi.py # ASGI設定
├── wsgi.py # WSGI設定
├── libs/ # 共通ライブラリ
├── routers/ # FastAPIルーター
├── config/ # 設定管理
├── database/ # データベース操作
└── interpreter/ # インタープリター機能
```
### 🎮 `controllers/` - Gradio コントローラー
各種Gradioインターフェースの実装
```
controllers/
├── gra_01_chat/ # チャット機能
├── gra_02_openInterpreter/ # OpenInterpreter統合
├── gra_03_programfromdoc/ # ドキュメントからプログラム生成
├── gra_04_database/ # データベース操作UI
├── gra_05_files/ # ファイル操作
├── gra_07_html/ # HTML生成
├── gra_08_hasula/ # Hasula機能
├── gra_09_weather/ # 天気情報
├── gra_10_frontend/ # フロントエンド生成
└── gra_11_multimodal/ # マルチモーダル機能
```
### 📱 `apps/` - Django アプリケーション
業務固有のDjangoアプリケーション
```
apps/
├── buyback/ # 買取システム
├── clothing_project/ # 衣類プロジェクト
├── diamond_project/ # ダイヤモンドプロジェクト
├── gold_price_project/ # 金価格プロジェクト
├── metal_assessment/ # 金属査定
├── mainapi/ # メインAPI
└── mydjangoapp/ # 汎用Djangoアプリ
```
---
## 🤖 **AI/ML 統合層**
### 🧠 `AutoPrompt/` - プロンプト最適化
自動プロンプト生成・最適化システム
```
AutoPrompt/
├── optimization_pipeline.py # 最適化パイプライン
├── run_pipeline.py # 実行スクリプト
├── config/ # 設定ファイル
├── prompts/ # プロンプトテンプレート
├── estimator/ # 推定器
└── eval/ # 評価システム
```
### 🦙 `LLaMA-Factory/` - LLM ファインチューニング
LLaMAモデルのファインチューニング環境
```
LLaMA-Factory/
├── src/ # ソースコード
├── data/ # 学習データ
├── examples/ # 使用例
├── evaluation/ # 評価スクリプト
└── scripts/ # 実行スクリプト
```
### 👶 `babyagi/` - 自律AIエージェント
BabyAGI実装とカスタマイズ
```
babyagi/
├── babyagi.py # メインエージェント
├── classic/ # クラシック版
├── babycoder/ # コーディング特化
├── extensions/ # 拡張機能
└── tools/ # ツール群
```
### 🔍 `open-interpreter/` - オープンインタープリター
コード実行・解釈システム
```
open-interpreter/
├── interpreter/ # インタープリターコア
├── docs/ # ドキュメント
└── examples/ # 使用例
```
### 🏗️ `gpt-engineer/` - AI コード生成
GPTベースのコード生成システム
```
gpt-engineer/
├── gpt_engineer/ # コア機能
├── projects/ # 生成プロジェクト
└── benchmark/ # ベンチマーク
```
---
## 💾 **データ・ストレージ層**
### 🗄️ `chroma/` - ベクトルデータベース
埋め込みベクトル保存・検索
```
chroma/
├── chroma.sqlite3 # ChromaDB データベース
└── [collection-id]/ # コレクションデータ
```
### 📊 `workspace/` - ワークスペース
プロジェクト固有のワークスペース
### 🗃️ `static/` & `staticfiles/` - 静的ファイル
```
static/ # 開発用静的ファイル
staticfiles/ # 本番用静的ファイル
├── css/ # スタイルシート
├── js/ # JavaScript
├── images/ # 画像ファイル
└── admin/ # Django管理画面用
```
---
## 🔧 **開発・運用ツール層**
### 🐳 **コンテナ化**
- `Dockerfile` - アプリケーションコンテナ
- `docker-compose.yml` - マルチコンテナ構成
- `.dockerignore` - Docker除外ファイル
### 🔄 **CI/CD**
```
.github/
├── workflows/ # GitHub Actions
├── ISSUE_TEMPLATE/ # Issue テンプレート
└── PULL_REQUEST_TEMPLATE/ # PR テンプレート
```
### 🛠️ **開発環境**
```
.devcontainer/
├── devcontainer.json # VS Code 開発コンテナ設定
└── Dockerfile # 開発用コンテナ
```
### 🧪 `tests/` - テストスイート
```
tests/
├── test_*.py # 各種テストファイル
├── test_folders*/ # テスト用データ
└── fixtures/ # テスト固定データ
```
---
## 📝 **設定・コマンド詳細**
### 🎯 **Makefileコマンド**
| コマンド | 説明 | 用途 |
|---------|------|------|
| `make app` | メインアプリ起動 | FastAPI/Django サーバー開始 |
| `make dev` | 開発モード起動 | ホットリロード有効 |
| `make debug` | デバッグモード起動 | ブレークポイント使用可能 |
| `make test` | テスト実行 | 全テストスイート実行 |
| `make clean` | クリーンアップ | 一時ファイル削除 |
| `make docker-up` | Docker起動 | コンテナ環境開始 |
### 🌍 **環境変数 (.env)**
| 変数 | 説明 | 例 |
|------|------|-----|
| `GROQ_API_KEY` | GroqAI APIキー | `gsk_...` |
| `DATABASE_URL` | データベースURL | `sqlite:///./app.db` |
| `SPACE_ID` | Hugging Face Space ID | `username/space-name` |
| `WEBHOOK_URL` | Google Chat Webhook | `https://chat.googleapis.com/...` |
### 🗄️ **データベーススキーマ**
#### `prompts.db`
```sql
CREATE TABLE prompts (
id INTEGER PRIMARY KEY,
title TEXT NOT NULL,
content TEXT NOT NULL,
created_at TIMESTAMP,
updated_at TIMESTAMP
);
```
#### `chat_history.db`
```sql
CREATE TABLE history (
id INTEGER PRIMARY KEY,
role TEXT NOT NULL,
type TEXT,
content TEXT NOT NULL,
timestamp TIMESTAMP
);
```
---
## 🚀 **クイックスタート**
### 1. 環境セットアップ
```bash
# 依存関係インストール
make requirements
# 環境変数設定
cp .env.example .env
# .env ファイルを編集してAPIキーを設定
```
### 2. アプリケーション起動
```bash
# 開発モードで起動
make dev
# または通常モードで起動
make app
```
### 3. 主要URL
- **メインアプリ**: http://localhost:7860
- **Django管理**: http://localhost:7860/admin
- **API文書**: http://localhost:7860/docs
---
## 📚 **主要機能**
### 🎨 **Gradio インターフェース**
- チャット機能 (`gra_01_chat`)
- プログラム自動生成 (`gra_03_programfromdoc`)
- データベース操作UI (`gra_04_database`)
- ファイル処理 (`gra_05_files`)
### 🤖 **AI 統合**
- OpenInterpreter によるコード実行
- LLaMA ファインチューニング
- プロンプト自動最適化
- BabyAGI 自律エージェント
### 💼 **業務アプリケーション**
- 買取システム (`buyback`)
- 金属査定システム (`metal_assessment`)
- 価格管理システム (`gold_price_project`)
---
## 🔍 **トラブルシューティング**
### よくある問題
1. **データベース接続エラー**
```bash
# データベース初期化
python manage.py migrate
```
2. **依存関係エラー**
```bash
# 依存関係再インストール
make clean
make requirements
```
3. **ポート競合**
```bash
# 使用中ポートの確認
lsof -i :7860
```
---
## 📈 **開発ガイドライン**
### 🏗️ **新機能追加**
1. `controllers/gra_XX_newfeature/` に新しいGradioインターフェースを作成
2. `apps/newapp/` に新しいDjangoアプリを作成
3. `mysite/routers/` にFastAPIルーターを追加
### 🧪 **テスト**
```bash
# 特定テスト実行
pytest tests/test_specific.py
# カバレッジ付きテスト
pytest --cov=mysite tests/
```
### 📦 **デプロイ**
```bash
# Docker イメージビルド
make docker-build
# コンテナ起動
make docker-up
```
---
## 📞 **サポート**
- 📖 **ドキュメント**: `/docs/` フォルダ参照
- 🐛 **バグ報告**: GitHub Issues
- 💡 **機能要求**: GitHub Discussions
---
*最終更新: 2025年6月11日*
|