RoutePilot / app.py
cmulgy's picture
update
937d315
raw
history blame
2.27 kB
"""
RoutePilot - GNN-LLM Intelligent Selection System
Hugging Face Spaces Entry Point
This is the main entry point for the Hugging Face Spaces deployment.
It imports the necessary components from the existing application and
sets up the Gradio interface for deployment.
"""
import os
import sys
import gradio as gr
# Add the current directory to Python path for imports
sys.path.append(os.path.dirname(__file__))
# Import the main application components
from demo import create_interface
# Set up environment variables for Hugging Face Spaces
def setup_environment():
"""Set up environment variables for Hugging Face Spaces deployment"""
# Check if we're running on Hugging Face Spaces
if os.getenv("SPACE_ID"):
print("πŸš€ Running on Hugging Face Spaces")
# Check for NVIDIA API key
if not os.getenv("NVIDIA_API_KEY"):
print("⚠️ NVIDIA_API_KEY not set in Space secrets.")
print(" Please set NVIDIA_API_KEY in the Space Repository Secrets.")
print(" Some features may be limited without API access.")
else:
print("βœ… NVIDIA_API_KEY found in Space secrets")
# Set CUDA device for Spaces (usually limited resources)
os.environ["CUDA_VISIBLE_DEVICES"] = "0"
# Set memory optimization flags
os.environ["PYTORCH_CUDA_ALLOC_CONF"] = "max_split_size_mb:128"
else:
print("🏠 Running locally")
# Check for local .env file
if not os.getenv("NVIDIA_API_KEY"):
print("ℹ️ NVIDIA_API_KEY not found. For local development, create a .env file")
print(" or set the environment variable manually.")
def main():
"""Main function to launch the application"""
# Set up environment
setup_environment()
# Create the Gradio interface
print("🎯 Creating RoutePilot interface...")
demo = create_interface()
# Launch the application
# For Hugging Face Spaces, we don't need to specify server_name and port
# The platform handles this automatically
demo.launch(
show_error=True,
debug=False, # Set to False for production
show_api=False
)
if __name__ == "__main__":
main()