| """ |
| API服务器启动器 |
| |
| 提供API服务器的启动和配置功能 |
| """ |
|
|
| import uvicorn |
|
|
| from voice_dialogue.utils.logger import logger |
|
|
|
|
| def launch_api_server(host: str = "0.0.0.0", port: int = 8000, reload: bool = False): |
| """ |
| 启动API服务器 |
| |
| Args: |
| host (str): 服务器主机地址,默认为 "0.0.0.0" |
| port (int): 服务器端口,默认为 8000 |
| reload (bool): 是否启用热重载,默认为 False |
| """ |
| logger.info(f'{"=" * 80}') |
| logger.info(f'正在启动API服务器...') |
| logger.info(f"服务器地址: http://{host}:{port}") |
| logger.info(f"API文档: http://{host}:{port}/docs") |
| logger.info(f"热重载: {'启用' if reload else '禁用'}") |
| logger.info(f'{"=" * 80}') |
|
|
| uvicorn_config = uvicorn.Config( |
| "voice_dialogue.api.app:app", |
| host=host, |
| port=port, |
| reload=reload, |
| log_level="info", |
| log_config=None, |
| use_colors=True, |
| ) |
| server = uvicorn.Server(uvicorn_config) |
| server.run() |
|
|
|
|
| if __name__ == "__main__": |
| import argparse |
|
|
| parser = argparse.ArgumentParser(description="VoiceDialogue API服务器") |
| parser.add_argument("--host", default="0.0.0.0", help="服务器主机地址") |
| parser.add_argument("--port", "-p", type=int, default=8000, help="服务器端口") |
| parser.add_argument("--reload", action="store_true", help="启用热重载") |
|
|
| args = parser.parse_args() |
| launch_api_server(args.host, args.port, args.reload) |
|
|