| """Compare baseline and NLP global model metrics.""" |
|
|
| from __future__ import annotations |
|
|
| import argparse |
| import logging |
| from pathlib import Path |
| import sys |
|
|
| from kag.logging import configure_logging |
| from kag.modeling.global_model import ( |
| build_model_comparison, |
| load_result_json, |
| write_json, |
| write_model_comparison_markdown, |
| ) |
|
|
|
|
| DEFAULT_BASELINE_METRICS_PATH = Path("reports/baseline_metrics.json") |
| DEFAULT_NLP_METRICS_PATH = Path("reports/nlp_metrics.json") |
| DEFAULT_OUTPUT_PATH = Path("reports/metrics.json") |
| DEFAULT_MARKDOWN_PATH = Path("reports/model_comparison.md") |
| logger = logging.getLogger(__name__) |
|
|
|
|
| def parse_args() -> argparse.Namespace: |
| parser = argparse.ArgumentParser(description=__doc__) |
| parser.add_argument("--baseline-metrics", type=Path, default=DEFAULT_BASELINE_METRICS_PATH) |
| parser.add_argument("--nlp-metrics", type=Path, default=DEFAULT_NLP_METRICS_PATH) |
| parser.add_argument("--output", type=Path, default=DEFAULT_OUTPUT_PATH) |
| parser.add_argument("--markdown-output", type=Path, default=DEFAULT_MARKDOWN_PATH) |
| return parser.parse_args() |
|
|
|
|
| def main() -> int: |
| args = parse_args() |
| configure_logging() |
|
|
| try: |
| baseline_result = load_result_json(args.baseline_metrics) |
| nlp_result = load_result_json(args.nlp_metrics) |
| comparison = build_model_comparison(baseline_result, nlp_result) |
| write_json(comparison, args.output) |
| write_model_comparison_markdown(comparison, args.markdown_output) |
| except Exception: |
| logger.exception("Model evaluation failed") |
| return 1 |
|
|
| logger.info("Model evaluation succeeded; output=%s markdown=%s", args.output, args.markdown_output) |
| return 0 |
|
|
|
|
| if __name__ == "__main__": |
| sys.exit(main()) |
|
|