fastapi_django_main_live / controllers /README_contbk_integration.md
GitHub Action
🚀 Auto-deploy from GitHub Actions
70766d2
# ContBK インターフェース統合例
## 📋 概要
`controllers/contbk_example.py` は、`contbk` フォルダーにある全てのGradioインターフェースをタブ表示で統合する例です。
## 🚀 機能
### 📝 デモ機能
- **テキスト変換**: 大文字・小文字変換、文字数カウント、逆順変換
- **計算機**: 基本的な四則演算
- **リスト生成**: テキストから番号付きリスト、ブレットリスト、チェックリストを生成
### 🔧 ContBK統合機能
- **天気予報** (`gra_09_weather.weather`)
- **フロントエンド生成** (`gra_10_frontend.frontend_generator`)
- **マルチモーダル** (`gra_11_multimodal.image_to_ui`)
## 📂 ファイル構成
```
controllers/
├── contbk_example.py # メインの統合ダッシュボード
├── contbk_dashboard.py # 旧バージョン(参考用)
└── example_gradio_interface.py # 初期バージョン(参考用)
```
## 🔧 使用方法
### 1. スタンドアロン実行
```bash
cd /workspaces/fastapi_django_main_live
python controllers/contbk_example.py
```
サーバーが http://0.0.0.0:7864 で起動します。
### 2. メインアプリケーションに統合
```python
# mysite/asgimain.py などで
# インポート
from controllers.contbk_example import gradio_interface as contbk_dashboard
# 既存のタブに追加
existing_interfaces = [demo, create_ui(), democ, democs, appdb]
existing_names = ["AIで開発", "FineTuning", "Chat", "仕様書から作成", "DataBase"]
# ContBKダッシュボードを追加
all_interfaces = existing_interfaces + [contbk_dashboard]
all_names = existing_names + ["🎯 ContBK ダッシュボード"]
# タブ付きインターフェースを作成
tabs = gr.TabbedInterface(all_interfaces, all_names)
```
### 3. 個別インターフェースとして使用
```python
from controllers.contbk_example import (
create_demo_interfaces,
load_contbk_interfaces,
create_info_tab
)
# デモ機能のみ使用
demo_interfaces, demo_names = create_demo_interfaces()
# ContBK機能のみ使用
contbk_interfaces, contbk_names = load_contbk_interfaces()
# 情報タブのみ使用
info_tab = create_info_tab()
```
## 🎯 新しいインターフェースの追加
### ContBKフォルダーに新しいインターフェースを追加する方法
1. **新しいフォルダーを作成**
```
contbk/gra_XX_mynewfeature/
```
2. **Pythonファイルを作成**
```python
# contbk/gra_XX_mynewfeature/mynewfeature.py
import gradio as gr
def my_function(input_text):
return f"処理結果: {input_text}"
gradio_interface = gr.Interface(
fn=my_function,
inputs=gr.Textbox(label="入力"),
outputs=gr.Textbox(label="出力"),
title="新機能"
)
```
3. **自動検出設定の更新**
`contbk_example.py``stable_modules` リストに追加:
```python
stable_modules = [
("gra_09_weather.weather", "🌤️ 天気予報"),
("gra_10_frontend.frontend_generator", "🎨 フロントエンド生成"),
("gra_11_multimodal.image_to_ui", "🖼️ マルチモーダル"),
("gra_XX_mynewfeature.mynewfeature", "🆕 新機能"), # 追加
]
```
## 🔍 トラブルシューティング
### よくある問題
1. **ModuleNotFoundError: No module named 'mysite'**
- 原因: ContBKの一部モジュールがmysiteパッケージに依存
- 解決: `stable_modules` リストから該当モジュールを除外
2. **Port already in use**
- 原因: 指定したポートが既に使用中
- 解決: 別のポートを指定 (`server_port=7865` など)
3. **gradio_interface not found**
- 原因: モジュールに `gradio_interface` 変数が定義されていない
- 解決: モジュール内で正しく `gradio_interface` を定義
### デバッグ方法
```python
# モジュールのインポートテスト
python -c "
import sys
sys.path.insert(0, '/workspaces/fastapi_django_main_live/contbk')
import gra_XX_yourmodule.yourfile
print(hasattr(gra_XX_yourmodule.yourfile, 'gradio_interface'))
"
```
## 📊 パフォーマンス
- **起動時間**: 約5-10秒(ContBKモジュールの読み込み含む)
- **メモリ使用量**: 基本的な機能で約200MB
- **同時接続**: Gradioの標準制限に従う
## 🔗 関連ファイル
- `contbk/` - 統合対象のインターフェース群
- `mysite/routers/gradio.py` - 既存の動的読み込みシステム
- `app.py` - メインアプリケーション
- `FOLDER_STRUCTURE.md` - プロジェクト全体の構成
## 📝 ライセンス
このプロジェクトのライセンスに従います。