"""执行 NL2SQL 离线 Golden Case 评测。""" from __future__ import annotations import argparse import json import sys from pathlib import Path sys.path.insert(0, str(Path(__file__).resolve().parents[1])) from nl2sql.evaluation import build_evaluation_report, load_cases def main() -> None: parser = argparse.ArgumentParser(description="NL2SQL 离线质量评测") parser.add_argument( "--cases", default=str(Path(__file__).resolve().parents[1] / "tests" / "fixtures" / "nl2sql_golden_cases.json"), help="Golden Case JSON 文件路径", ) parser.add_argument("--prompt-version", default="unknown") parser.add_argument("--semantic-version", default="unknown") parser.add_argument("--model-version", default="unknown") args = parser.parse_args() report = build_evaluation_report( load_cases(args.cases), prompt_version=args.prompt_version, semantic_version=args.semantic_version, model_version=args.model_version, ) print(json.dumps(report, ensure_ascii=False)) if __name__ == "__main__": main()