Spaces:
Sleeping
Sleeping
| import os | |
| import logging | |
| from modules.api.api_setup import setup_api_args, setup_model_args, setup_uvicon_args | |
| from modules.ffmpeg_env import setup_ffmpeg_path | |
| setup_ffmpeg_path() | |
| logging.basicConfig( | |
| level=os.getenv("LOG_LEVEL", "INFO"), | |
| format="%(asctime)s - %(name)s - %(levelname)s - %(message)s", | |
| ) | |
| import argparse | |
| import uvicorn | |
| from modules import config | |
| from modules.utils import env | |
| from fastapi import FastAPI | |
| logger = logging.getLogger(__name__) | |
| if __name__ == "__main__": | |
| import dotenv | |
| dotenv.load_dotenv( | |
| dotenv_path=os.getenv("ENV_FILE", ".env.api"), | |
| ) | |
| parser = argparse.ArgumentParser( | |
| description="Start the FastAPI server with command line arguments" | |
| ) | |
| setup_api_args(parser) | |
| setup_model_args(parser) | |
| setup_uvicon_args(parser=parser) | |
| args = parser.parse_args() | |
| host = env.get_and_update_env(args, "host", "0.0.0.0", str) | |
| port = env.get_and_update_env(args, "port", 7870, int) | |
| reload = env.get_and_update_env(args, "reload", False, bool) | |
| workers = env.get_and_update_env(args, "workers", 1, int) | |
| log_level = env.get_and_update_env(args, "log_level", "info", str) | |
| access_log = env.get_and_update_env(args, "access_log", True, bool) | |
| proxy_headers = env.get_and_update_env(args, "proxy_headers", True, bool) | |
| timeout_keep_alive = env.get_and_update_env(args, "timeout_keep_alive", 5, int) | |
| timeout_graceful_shutdown = env.get_and_update_env( | |
| args, "timeout_graceful_shutdown", 0, int | |
| ) | |
| ssl_keyfile = env.get_and_update_env(args, "ssl_keyfile", None, str) | |
| ssl_certfile = env.get_and_update_env(args, "ssl_certfile", None, str) | |
| ssl_keyfile_password = env.get_and_update_env( | |
| args, "ssl_keyfile_password", None, str | |
| ) | |
| uvicorn.run( | |
| "modules.api.worker:app", | |
| host=host, | |
| port=port, | |
| reload=reload, | |
| workers=workers, | |
| log_level=log_level, | |
| access_log=access_log, | |
| proxy_headers=proxy_headers, | |
| timeout_keep_alive=timeout_keep_alive, | |
| timeout_graceful_shutdown=timeout_graceful_shutdown, | |
| ssl_keyfile=ssl_keyfile, | |
| ssl_certfile=ssl_certfile, | |
| ssl_keyfile_password=ssl_keyfile_password, | |
| ) | |