#!/usr/bin/env python3 """ FastAPI应用启动脚本 """ import uvicorn import argparse from config import settings def main(): """ 主函数:解析命令行参数并启动服务器 """ parser = argparse.ArgumentParser(description="algorithm service") parser.add_argument( "--host", type=str, default="0.0.0.0", help="监听主机 (默认: 0.0.0.0)" ) parser.add_argument( "--port", type=int, default=8000, help="监听端口 (默认: 8000)" ) parser.add_argument( "--reload", action="store_true", help="启用热重载 (开发模式)" ) parser.add_argument( "--workers", type=int, default=1, help="工作进程数 (生产模式)" ) parser.add_argument( "--log-level", type=str, default="info", choices=["debug", "info", "warning", "error", "critical"], help="日志级别" ) args = parser.parse_args() # 根据环境选择配置 if settings.DEBUG: print("🔧 开发模式") uvicorn_config = { "host": args.host, "port": args.port, "reload": True, "log_level": "debug", "workers": 1 } else: print("🚀 生产模式") uvicorn_config = { "host": args.host, "port": args.port, "reload": False, "log_level": args.log_level, "workers": args.workers } # 启动服务器 print(f"🌐 启动服务器: http://{args.host}:{args.port}") print(f"📚 API文档: http://{args.host}:{args.port}/docs") print(f"📊 健康检查: http://{args.host}:{args.port}/health") uvicorn.run( "app:app", **uvicorn_config ) if __name__ == "__main__": main()