someonesphantom's picture
Fix env loading, HF Space import path, and Gradio 6 compatibility
4e83bf0
Raw
History Blame Contribute Delete
1.83 kB
"""Hugging Face Spaces entrypoint.
This file is owned by Person C. It contains no agent logic — only imports the
three per-person tabs and stitches them into a TabbedInterface so the three
people rarely touch this file at the same time.
Set HF_SPACE_BACKEND_URL via Spaces Secrets to point at the deployed FastAPI.
"""
from __future__ import annotations
import os
import sys
from pathlib import Path
# Make `app/...` importable when running from deploy/hf_space/.
# Insert at the front unconditionally: this file is named app.py, so its own
# directory (sys.path[0]) would otherwise shadow the real `app` package — which
# happens once the project is installed editable (repo root already on sys.path,
# so a presence check would skip the insert).
ROOT = Path(__file__).resolve().parents[2]
sys.path.insert(0, str(ROOT))
import gradio as gr # noqa: E402
from app.ui.doctor_tab import build_tab as build_doctor_tab # noqa: E402
from app.ui.nurse_admin_tab import build_tab as build_nurse_admin_tab # noqa: E402
from app.ui.patient_tab import build_tab as build_patient_tab # noqa: E402
BACKEND_URL = os.getenv("HF_SPACE_BACKEND_URL", "http://localhost:8000")
def build_app() -> gr.Blocks:
with gr.Blocks(title="CliniqAI") as demo:
gr.Markdown(
f"# 🪶 CliniqAI\nClinical operations AI for Indian hospitals. "
f"Backend: `{BACKEND_URL}`"
)
with gr.Tabs():
with gr.Tab("Doctor"):
build_doctor_tab()
with gr.Tab("Patient"):
build_patient_tab()
with gr.Tab("Nurse & Admin"):
build_nurse_admin_tab()
return demo
if __name__ == "__main__":
build_app().launch(
server_name="0.0.0.0",
server_port=7860,
theme=gr.themes.Soft(),
share=True
)