from __future__ import annotations import argparse from pathlib import Path from engine.refinement.reflexion import ( REFLEXION_CSV_PATH, REFLEXION_MODEL_PATH, train_reflexion_model, ) def main() -> None: parser = argparse.ArgumentParser( description=( "Entrena el model KNN de 'reflexion' a partir de les parelles " "(MoE/Salamandra, HITL) a demo/temp/audiodescriptions.db." ) ) parser.add_argument( "--max-examples", type=int, default=None, help=( "Nombre màxim de mostres d'entrenament a processar. " "Per defecte es processen totes." ), ) args = parser.parse_args() train_reflexion_model(max_examples=args.max_examples) n_rows = 0 if REFLEXION_CSV_PATH.exists(): try: text = REFLEXION_CSV_PATH.read_text(encoding="utf-8") # descomptar la capçalera n_rows = max(0, len([l for l in text.splitlines() if l.strip()]) - 1) except Exception: n_rows = 0 model_str = "creat" if REFLEXION_MODEL_PATH.exists() else "no creat" print( f"✅ Entrenament de reflexion completat. " f"Mostres al CSV: {n_rows}, fitxer de model: {model_str} ({REFLEXION_MODEL_PATH})." ) if __name__ == "__main__": main()