Spaces:
Sleeping
Sleeping
File size: 2,403 Bytes
73ec251 657aec6 73ec251 657aec6 73ec251 657aec6 73ec251 | 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 | """
Frontend Proxy
公開用Spaceとして動作するフロントエンド・プロキシ。
プライベートなバックエンドSpaceを gr.load() で読み込み、
ユーザーに提供します。
ユーザーにはバックエンドのSpace IDやロジックが見えません。
"""
import gradio as gr
import os
from dotenv import load_dotenv
load_dotenv()
# プライベートなバックエンドSpaceのID
# 例: "username/gemini-backend-private"
BACKEND_SPACE_ID = os.getenv("BACKEND_SPACE_ID")
# HF Token
HF_TOKEN = os.getenv("HF_TOKEN")
# トークンの存在確認(デバッグ用)
if HF_TOKEN:
print(f"HF_TOKEN is found (starts with: {HF_TOKEN[:8]}...)")
else:
print("Warning: HF_TOKEN is NOT found in environment variables.")
if not BACKEND_SPACE_ID:
# フォールバック: ローカルテスト用にダミーUIを表示
with gr.Blocks(title="Gemini Chat (Frontend)") as demo:
gr.Markdown("# 🚀 Gemini Chat")
gr.Markdown("""
⚠️ **バックエンドが設定されていません**
このフロントエンドを動作させるには、以下の環境変数を設定してください:
- `BACKEND_SPACE_ID`: プライベートなバックエンドSpaceのID
- `HF_TOKEN`: Hugging Face APIトークン
**ローカルテストの場合:**
直接 `app.py` を実行してください。
""")
else:
# プライベートバックエンドをロード
try:
demo = gr.load(
name=BACKEND_SPACE_ID,
src="spaces",
token=HF_TOKEN # hf_token から token に変更(最新のGradioに対応)
)
print(f"Successfully loaded backend: {BACKEND_SPACE_ID}")
except Exception as e:
# エラー発生時のフォールバック
with gr.Blocks(title="Gemini Chat (Error)") as demo:
gr.Markdown("# 🚀 Gemini Chat")
gr.Markdown(f"""
⚠️ **バックエンドへの接続に失敗しました**
エラー: `{e}`
考えられる原因:
- バックエンドSpaceがスリープ中(数秒後にリロードしてください)
- HF_TOKENが無効
- BACKEND_SPACE_IDが間違っている
""")
if __name__ == "__main__":
demo.launch()
|