spoon-1 commited on
Commit
73ec251
·
verified ·
1 Parent(s): ba40fe1

Create app.py

Browse files
Files changed (1) hide show
  1. app.py +65 -0
app.py ADDED
@@ -0,0 +1,65 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ """
2
+ Frontend Proxy
3
+
4
+ 公開用Spaceとして動作するフロントエンド・プロキシ。
5
+ プライベートなバックエンドSpaceを gr.load() で読み込み、
6
+ ユーザーに提供します。
7
+
8
+ ユーザーにはバックエンドのSpace IDやロジックが見えません。
9
+ """
10
+
11
+ import gradio as gr
12
+ import os
13
+ from dotenv import load_dotenv
14
+
15
+ load_dotenv()
16
+
17
+ # プライベートなバックエンドSpaceのID
18
+ # 例: "username/gemini-backend-private"
19
+ BACKEND_SPACE_ID = os.getenv("BACKEND_SPACE_ID")
20
+
21
+ # HF Token(プライベートSpaceにアクセスするために必要)
22
+ HF_TOKEN = os.getenv("HF_TOKEN")
23
+
24
+ if not BACKEND_SPACE_ID:
25
+ # フォールバック: ローカルテスト用にダミーUIを表示
26
+ with gr.Blocks(title="Gemini Chat (Frontend)") as demo:
27
+ gr.Markdown("# 🚀 Gemini Chat")
28
+ gr.Markdown("""
29
+ ⚠️ **バックエンドが設定されていません**
30
+
31
+ このフロントエンドを動作させるには、以下の環境変数を設定してください:
32
+
33
+ - `BACKEND_SPACE_ID`: プライベートなバックエンドSpaceのID
34
+ - `HF_TOKEN`: Hugging Face APIトークン
35
+
36
+ **ローカルテストの場合:**
37
+ 直接 `app.py` を実行してください。
38
+ """)
39
+ else:
40
+ # プライベートバックエンドをロード
41
+ try:
42
+ demo = gr.load(
43
+ name=BACKEND_SPACE_ID,
44
+ src="spaces",
45
+ hf_token=HF_TOKEN
46
+ )
47
+ print(f"Successfully loaded backend: {BACKEND_SPACE_ID}")
48
+ except Exception as e:
49
+ # エラー発生時のフォールバック
50
+ with gr.Blocks(title="Gemini Chat (Error)") as demo:
51
+ gr.Markdown("# 🚀 Gemini Chat")
52
+ gr.Markdown(f"""
53
+ ⚠️ **バックエンドへの接続に失敗しました**
54
+
55
+ エラー: `{e}`
56
+
57
+ 考えられる原因:
58
+ - バックエンドSpaceがスリープ中(数秒後にリロードしてください)
59
+ - HF_TOKENが無効
60
+ - BACKEND_SPACE_IDが間違っている
61
+ """)
62
+
63
+
64
+ if __name__ == "__main__":
65
+ demo.launch()