Spaces:
Runtime error
Runtime error
Upload main_app.py
Browse files- main_app.py +10 -7
main_app.py
CHANGED
|
@@ -25,7 +25,7 @@ HF_ENDPOINT = "https://huggingface.co"
|
|
| 25 |
CLIENT_ID = os.environ.get("OAUTH_CLIENT_ID")
|
| 26 |
CLIENT_SECRET = os.environ.get("OAUTH_CLIENT_SECRET")
|
| 27 |
SPACE_ID = os.environ.get("SPACE_ID")
|
| 28 |
-
|
| 29 |
|
| 30 |
st.set_page_config(
|
| 31 |
page_title="麻理プロジェクト", page_icon="🤖",
|
|
@@ -38,14 +38,17 @@ USER_DATA_DIR = "/mnt/data/mari_users"
|
|
| 38 |
os.makedirs(USER_DATA_DIR, exist_ok=True)
|
| 39 |
|
| 40 |
|
|
|
|
| 41 |
def get_redirect_uri():
|
| 42 |
-
"""
|
| 43 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 44 |
return f"https://huggingface.co/spaces/{SPACE_ID}"
|
| 45 |
-
else:
|
| 46 |
-
# ローカル開発用のフォールバック(必要に応じて変更)
|
| 47 |
-
# st.query_paramsはローカルではうまく機能しない場合がある
|
| 48 |
-
return "http://localhost:8501"
|
| 49 |
|
| 50 |
def get_hf_token(code: str, redirect_uri: str) -> dict | None:
|
| 51 |
"""認可コード(code)をアクセストークンに交換する"""
|
|
|
|
| 25 |
CLIENT_ID = os.environ.get("OAUTH_CLIENT_ID")
|
| 26 |
CLIENT_SECRET = os.environ.get("OAUTH_CLIENT_SECRET")
|
| 27 |
SPACE_ID = os.environ.get("SPACE_ID")
|
| 28 |
+
SPACE_HOST = os.environ.get("SPACE_HOST")
|
| 29 |
|
| 30 |
st.set_page_config(
|
| 31 |
page_title="麻理プロジェクト", page_icon="🤖",
|
|
|
|
| 38 |
os.makedirs(USER_DATA_DIR, exist_ok=True)
|
| 39 |
|
| 40 |
|
| 41 |
+
# vvv 修正点: この関数を全面的に書き換え
|
| 42 |
def get_redirect_uri():
|
| 43 |
+
"""
|
| 44 |
+
SpaceのURL形式(直接形式 or パス形式)に応じて正しいリダイレクトURIを生成する
|
| 45 |
+
"""
|
| 46 |
+
# SPACE_HOSTが設定されている場合(直接形式URL)はそれを使うのが最も確実
|
| 47 |
+
if SPACE_HOST:
|
| 48 |
+
return f"https://{SPACE_HOST}"
|
| 49 |
+
# SPACE_HOSTがない場合(古い形式のSpaceなど)はSPACE_IDから組み立てる
|
| 50 |
+
elif SPACE_ID:
|
| 51 |
return f"https://huggingface.co/spaces/{SPACE_ID}"
|
|
|
|
|
|
|
|
|
|
|
|
|
| 52 |
|
| 53 |
def get_hf_token(code: str, redirect_uri: str) -> dict | None:
|
| 54 |
"""認可コード(code)をアクセストークンに交換する"""
|