"""CLI:根据 JSON 配置(15 类文件数组)构建知识图谱。 用法: uv run python scripts/build_graph.py [config.json] [--clear] """ from __future__ import annotations import argparse import json import sys from pathlib import Path def main() -> None: sys.stdout.reconfigure(encoding="utf-8") ap = argparse.ArgumentParser() ap.add_argument("config", nargs="?", default="data/config_example.json") ap.add_argument("--clear", action="store_true", help="先清空图再构建") args = ap.parse_args() config_path = Path(args.config) if not config_path.exists(): print(f"配置文件不存在: {config_path}") sys.exit(1) config = json.loads(config_path.read_text(encoding="utf-8")) from knowledge_agent.graph import build_knowledge_graph result = build_knowledge_graph(config, clear_first=args.clear) print("ok:", result["ok"]) print("读取记录数:", result.get("records")) print("构建记录数:", result.get("built")) print("图谱统计:", result.get("graph")) if result.get("issues"): print("\n校验问题:") for i in result["issues"]: print(" -", i) if result.get("warnings"): print("\n构建警告:") for w in result["warnings"]: print(" -", w) if not result["ok"]: sys.exit(1) if __name__ == "__main__": main()