Spaces:
Runtime error
Runtime error
File size: 1,486 Bytes
d6049f5 | 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 40 41 42 43 44 | import os
import sys
from pathlib import Path
from fastapi.middleware.cors import CORSMiddleware
# Add root and backend directories to sys.path
ROOT_DIR = Path(__file__).resolve().parent
if str(ROOT_DIR) not in sys.path:
sys.path.insert(0, str(ROOT_DIR))
if str(ROOT_DIR / "backend") not in sys.path:
sys.path.insert(0, str(ROOT_DIR / "backend"))
import gradio as gr
from backend.config import settings
from backend.routes import health, query
# Create Gradio Blocks UI
with gr.Blocks(title="SatQuery AI API") as demo:
gr.Markdown("# 🛰️ SatQuery AI — Remote Sensing Vision Engine")
gr.Markdown(
"Live FastAPI backend running **GeoRSCLIP (ViT-B-32)** zero-shot spatial grounding.\n\n"
"- **Health Endpoint**: `/api/health`\n"
"- **Single Query**: `POST /api/query`\n"
"- **Change Detection**: `POST /api/query/change`\n"
"- **Interactive API Docs**: `/docs`"
)
# Gradio's internal engine is FastAPI (demo.app)
# Mount CORS middleware & SatQuery routers directly onto demo.app
demo.app.add_middleware(
CORSMiddleware,
allow_origins=["*"],
allow_credentials=True,
allow_methods=["*"],
allow_headers=["*"],
)
demo.app.include_router(health.router, prefix=settings.api_prefix, tags=["health"])
demo.app.include_router(query.router, prefix=settings.api_prefix, tags=["query"])
# Standard Hugging Face Gradio launch
if __name__ == "__main__":
demo.launch(server_name="0.0.0.0", server_port=7860)
|