fastapi_django_main_live / FOLDER_STRUCTURE.md
GitHub Action
🚀 Auto-deploy from GitHub Actions
7cd8277
# 📁 プロジェクト構成ガイド
このドキュメントでは、`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日*