"""Genera baseline Python desde services-count para comparar con el servicio Go.""" from __future__ import annotations import json import os import sys from pathlib import Path ROOT = Path(__file__).resolve().parents[1] SC_ROOT = Path(os.environ.get("SERVICES_COUNT_ROOT", ROOT.parent / "services-count")) sys.path.insert(0, str(SC_ROOT / "src")) from services_count.config import load_config from services_count.inference import predict_pdf def python_result(pdf_path: Path) -> dict: config = load_config(SC_ROOT / "config" / "default.yaml") features_df, total = predict_pdf(pdf_path, config) services = [] for row in features_df.itertuples(): if row.prediction == 1: services.append({ "text": row.texto_fila, "probability": round(float(row.probability), 4), }) return { "filename": pdf_path.name, "service_count": total, "status": "ok", "services": services, } def main() -> None: config = load_config(SC_ROOT / "config" / "default.yaml") pdfs = sorted(config.pdfs_dir.glob("*.pdf")) if not pdfs: raise SystemExit(f"No hay PDFs en {config.pdfs_dir}") out = ROOT / "data" / "parity_baseline.json" out.parent.mkdir(parents=True, exist_ok=True) results = [python_result(p) for p in pdfs] out.write_text(json.dumps(results, indent=2, ensure_ascii=False), encoding="utf-8") print(f"Baseline guardado: {out} ({len(results)} PDFs)") if __name__ == "__main__": main()