# 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` - プロジェクト全体の構成 ## 📝 ライセンス このプロジェクトのライセンスに従います。