Coverage for agentos/cli/serve.py: 54%
24 statements
« prev ^ index » next coverage.py v7.14.3, created at 2026-07-09 09:19 +0800
« prev ^ index » next coverage.py v7.14.3, created at 2026-07-09 09:19 +0800
1"""v0.80 — `agentos serve` API 服务器启动器。"""
3from __future__ import annotations
5import os
6from dataclasses import dataclass
9@dataclass
10class ServeConfig:
11 """API 服务配置。"""
13 host: str = "127.0.0.1"
14 port: int = 8000
15 reload: bool = False
16 workers: int = 1
17 log_level: str = "info"
18 env_file: str = ".env"
21def start_api_server(config: ServeConfig | None = None) -> None:
22 """启动 AgentOS API 服务器(FastAPI + Uvicorn)。
24 Args:
25 config: ServeConfig 配置对象。
26 """
27 cfg = config or ServeConfig()
29 if cfg.env_file and os.path.exists(cfg.env_file):
30 from dotenv import load_dotenv
32 load_dotenv(cfg.env_file)
34 import uvicorn
36 uvicorn.run(
37 "agentos.api.server:app",
38 host=cfg.host,
39 port=cfg.port,
40 reload=cfg.reload,
41 workers=cfg.workers,
42 log_level=cfg.log_level,
43 )
46async def start_api_server_async(config: ServeConfig | None = None) -> None:
47 """异步启动 API 服务器。"""
48 cfg = config or ServeConfig()
49 import uvicorn
51 server_config = uvicorn.Config(
52 "agentos.api.server:app",
53 host=cfg.host,
54 port=cfg.port,
55 reload=cfg.reload,
56 workers=cfg.workers,
57 log_level=cfg.log_level,
58 )
59 server = uvicorn.Server(server_config)
60 await server.serve()