File size: 1,246 Bytes
de852c2
 
2d9affa
de852c2
 
 
2d9affa
de852c2
 
 
 
 
 
 
 
 
 
 
2d9affa
 
 
 
 
 
de852c2
 
 
2d9affa
 
de852c2
 
 
 
 
 
 
 
 
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
from fastapi import APIRouter
from app.config import get_settings
from app.core.secrets import normalize_secret
from app.version import __version__

import logging
import os

logger = logging.getLogger(__name__)

router = APIRouter()

# NB: keep this OFF the bare "/" path. In the single-container / Hugging Face
# Spaces deployment the React SPA is mounted at "/" as a catch-all, and any
# API route registered at exactly "/" would shadow the SPA's index.html and
# leave users staring at this JSON banner instead of the app.
@router.get("/api/health")
def root():
    settings = get_settings()
    title = settings.app.title
    openai_key_configured = bool(
        normalize_secret(settings.llm.openai.api_key)
        or normalize_secret(os.getenv("OPENAI_API_KEY", ""))
    )
    return {
        "message": f"{title} Backend is up and running",
        "version": __version__,
        "llm_provider": settings.llm.provider,
        "openai_api_key_configured": openai_key_configured,
        "features": [
            "Configurable Personas",
            "Improved Session Management",
            "Unified Context Handling",
            "Ollama Support",
            "Gemini API Support",
            "Provider Switching"
        ]
    }