Spaces:
Runtime error
Runtime error
Download sso_app.py from Leodass1433/RAG-TechXfluence: direct link, hf CLI and curl.
- Browser
- Download file 2.29 kB
-
https://huggingface.co/spaces/Leodass1433/RAG-TechXfluence/resolve/main/sso_app.py
- Command line
-
hf download hf://spaces/Leodass1433/RAG-TechXfluence/sso_app.py
-
curl -L -o sso_app.py https://huggingface.co/spaces/Leodass1433/RAG-TechXfluence/resolve/main/sso_app.py
2.29 kB
| import os | |
| import gradiologin as grlogin | |
| from decouple import config | |
| from fastapi import FastAPI | |
| from fastapi.responses import FileResponse | |
| from theflow.settings import settings as flowsettings | |
| KH_APP_DATA_DIR = getattr(flowsettings, "KH_APP_DATA_DIR", ".") | |
| GRADIO_TEMP_DIR = os.getenv("GRADIO_TEMP_DIR", None) | |
| AUTHENTICATION_METHOD = config("AUTHENTICATION_METHOD", "GOOGLE") | |
| # override GRADIO_TEMP_DIR if it's not set | |
| if GRADIO_TEMP_DIR is None: | |
| GRADIO_TEMP_DIR = os.path.join(KH_APP_DATA_DIR, "gradio_tmp") | |
| os.environ["GRADIO_TEMP_DIR"] = GRADIO_TEMP_DIR | |
| # for authentication with Google | |
| GOOGLE_CLIENT_ID = config("GOOGLE_CLIENT_ID", default="") | |
| GOOGLE_CLIENT_SECRET = config("GOOGLE_CLIENT_SECRET", default="") | |
| # for authentication with Open ID by keycloak | |
| KEYCLOAK_SERVER_URL = config("KEYCLOAK_SERVER_URL", default="") | |
| KEYCLOAK_REALM = config("KEYCLOAK_REALM", default="") | |
| KEYCLOAK_CLIENT_ID = config("KEYCLOAK_CLIENT_ID", default="") | |
| KEYCLOAK_CLIENT_SECRET = config("KEYCLOAK_CLIENT_SECRET", default="") | |
| from ktem.main import App # noqa | |
| gradio_app = App() | |
| demo = gradio_app.make() | |
| app = FastAPI() | |
| if AUTHENTICATION_METHOD == "KEYCLOAK": | |
| # for authentication with Open ID by keycloak | |
| grlogin.register( | |
| name="keycloak", | |
| server_metadata_url=( | |
| f"{KEYCLOAK_SERVER_URL}/realms/{KEYCLOAK_REALM}/" | |
| ".well-known/openid-configuration" | |
| ), | |
| client_id=KEYCLOAK_CLIENT_ID, | |
| client_secret=KEYCLOAK_CLIENT_SECRET, | |
| client_kwargs={ | |
| "scope": "openid email profile", | |
| }, | |
| ) | |
| else: | |
| # for authentication with Google | |
| grlogin.register( | |
| name="google", | |
| server_metadata_url=( | |
| "https://accounts.google.com/.well-known/openid-configuration" | |
| ), | |
| client_id=GOOGLE_CLIENT_ID, | |
| client_secret=GOOGLE_CLIENT_SECRET, | |
| client_kwargs={ | |
| "scope": "openid email profile", | |
| }, | |
| ) | |
| async def favicon(): | |
| return FileResponse(gradio_app._favicon) | |
| grlogin.mount_gradio_app( | |
| app, | |
| demo, | |
| "/app", | |
| allowed_paths=[ | |
| "libs/ktem/ktem/assets", | |
| GRADIO_TEMP_DIR, | |
| ], | |
| ) | |