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