Abeshith's picture
Scripts Stages Added
cbb53b6
"""CLI script to start the FastAPI server."""
import sys
from pathlib import Path
import argparse
import uvicorn
# Add project root to path
project_root = Path(__file__).parent.parent
sys.path.insert(0, str(project_root))
from mlpipeline.logging.logger import get_logger
logger = get_logger(__name__)
def main():
"""Start the FastAPI server."""
parser = argparse.ArgumentParser(description="Start AutoML API server")
parser.add_argument(
"--host",
type=str,
default="0.0.0.0",
help="Host to bind (default: 0.0.0.0)"
)
parser.add_argument(
"--port",
type=int,
default=8000,
help="Port to bind (default: 8000)"
)
parser.add_argument(
"--reload",
action="store_true",
help="Enable auto-reload for development"
)
args = parser.parse_args()
try:
logger.info(f"πŸš€ Starting FastAPI server at {args.host}:{args.port}")
logger.info(f"πŸ“š API docs: http://{args.host if args.host != '0.0.0.0' else 'localhost'}:{args.port}/docs")
uvicorn.run(
"app.main:app",
host=args.host,
port=args.port,
reload=args.reload
)
return 0
except Exception as e:
logger.error(f"❌ Server failed to start: {e}")
return 1
if __name__ == "__main__":
exit(main())