INNER CODE UNIT · Python

cmd_serve

Laurent00TT/PharosRAG · src/pharos/cli.py:26

def cmd_serve(args) -> None:
    logging.basicConfig(level=logging.INFO, format="%(asctime)s %(name)s %(levelname)s %(message)s")
    import uvicorn
    from .service import create_app
    cfg = config.from_env()
    host, port = args.host or cfg.host, args.port or cfg.port
    print(f"Pharos v{__version__}  http://{host}:{port}  index={cfg.qdrant_path} "
          f"collection={cfg.collection} tenant={cfg.tenant or '(未设,fail-closed)'}", flush=True)
    # 优雅停机(阶段F):SIGTERM -> uvicorn 停止收新请求、drain 在途,最多等 25s 后强制退出。
    # 25 < compose stop_grace_period 30s -> 在 docker SIGKILL 前干净退出(in-flight /v1/ask 不被截杀)。
    uvicorn.run(create_app(cfg), host=host, port=port, log_level="info",
                timeout_graceful_shutdown=25)


def cmd_mcp(args) -> None:
    if getattr(args, "direct", False):
        # no-daemon 兜底:stdio 直连引擎(独占嵌入式 Qdrant 锁 + 常驻 GPU),不经守护进程
        from .mcp_stdio import main as stdio_main

View source record →

📰 Research Paper
Loading…
⏳ Fetching content…