Spaces:
Running
Running
| import os | |
| import threading | |
| import time | |
| import uvicorn | |
| from optipfair_backend import app as fastapi_app | |
| from optipfair_frontend import create_interface | |
| def run_fastapi(): | |
| """Run FastAPI backend in a separate thread""" | |
| uvicorn.run(fastapi_app, host="0.0.0.0", port=8000, log_level="info") | |
| def main(): | |
| """Main function to start both FastAPI and Gradio""" | |
| # Start FastAPI in background thread | |
| fastapi_thread = threading.Thread(target=run_fastapi, daemon=True) | |
| fastapi_thread.start() | |
| # Wait a moment for FastAPI to start | |
| print("π Starting FastAPI backend...") | |
| time.sleep(3) | |
| # Create and launch Gradio interface | |
| print("π¨ Starting Gradio frontend...") | |
| interface = create_interface() | |
| # Launch configuration for HF Spaces | |
| interface.launch( | |
| server_name="0.0.0.0", server_port=7860, share=False, show_error=True | |
| ) | |
| if __name__ == "__main__": | |
| main() | |