INNER CODE UNIT · Python
main
Laurent00TT/PharosRAG · src/pharos/cli.py:120
def main(argv: list[str] | None = None) -> None:
p = argparse.ArgumentParser(prog="pharos", description="Pharos:多格式 agentic RAG 服务")
p.add_argument("--version", action="version", version=f"pharos {__version__}")
sub = p.add_subparsers(dest="cmd", required=True)
sp = sub.add_parser("serve", help="启动 HTTP 守护进程(独占索引 + GPU 模型)")
sp.add_argument("--host", default=None)
sp.add_argument("--port", type=int, default=None)
sp.set_defaults(fn=cmd_serve)
sp = sub.add_parser("mcp", help="启动 MCP 薄适配器(stdio→HTTP,接 Claude Code)")
sp.add_argument("--direct", action="store_true",
help="no-daemon 兜底:stdio 直连引擎(独占 Qdrant 锁 + 常驻 GPU,不经守护进程)")
sp.set_defaults(fn=cmd_mcp)
sp = sub.add_parser("index", help="从 MinerU 解析目录建索引(需 GPU;先停 serve)")
sp.add_argument("--corpus", default=None, help="语料目录(MinerU 解析产物;默认 PHAROS_CORPUS_DIR)")
sp.add_argument("--dest", default=None, help="索引输出目录(默认 PHAROS_INDEX_DIR=~/rag_real)")