A newer version of the Gradio SDK is available:
5.34.2
📁 プロジェクト構成ガイド
このドキュメントでは、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
CREATE TABLE prompts (
id INTEGER PRIMARY KEY,
title TEXT NOT NULL,
content TEXT NOT NULL,
created_at TIMESTAMP,
updated_at TIMESTAMP
);
chat_history.db
CREATE TABLE history (
id INTEGER PRIMARY KEY,
role TEXT NOT NULL,
type TEXT,
content TEXT NOT NULL,
timestamp TIMESTAMP
);
🚀 クイックスタート
1. 環境セットアップ
# 依存関係インストール
make requirements
# 環境変数設定
cp .env.example .env
# .env ファイルを編集してAPIキーを設定
2. アプリケーション起動
# 開発モードで起動
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
)
🔍 トラブルシューティング
よくある問題
データベース接続エラー
# データベース初期化 python manage.py migrate
依存関係エラー
# 依存関係再インストール make clean make requirements
ポート競合
# 使用中ポートの確認 lsof -i :7860
📈 開発ガイドライン
🏗️ 新機能追加
controllers/gra_XX_newfeature/
に新しいGradioインターフェースを作成apps/newapp/
に新しいDjangoアプリを作成mysite/routers/
にFastAPIルーターを追加
🧪 テスト
# 特定テスト実行
pytest tests/test_specific.py
# カバレッジ付きテスト
pytest --cov=mysite tests/
📦 デプロイ
# Docker イメージビルド
make docker-build
# コンテナ起動
make docker-up
📞 サポート
- 📖 ドキュメント:
/docs/
フォルダ参照 - 🐛 バグ報告: GitHub Issues
- 💡 機能要求: GitHub Discussions
最終更新: 2025年6月11日