"""Predict banking intents with the adjacent local model.skops artifact.""" import argparse import json from pathlib import Path import skops.io as sio def main(): parser = argparse.ArgumentParser(description=__doc__) parser.add_argument("text", nargs="+") parser.add_argument("--model", type=Path, default=Path(__file__).with_name("model.skops")) args = parser.parse_args() unexpected = sio.get_untrusted_types(file=args.model) if unexpected: raise RuntimeError(f"Unexpected model types: {unexpected}") model = sio.load(args.model, trusted=[]) probabilities = model.predict_proba(args.text) for text, probability in zip(args.text, probabilities): order = sorted(range(len(model.classes_)), key=lambda i: (-probability[i], model.classes_[i]))[:3] print(json.dumps({"text": text, "top3": [{"label": str(model.classes_[i]), "score": float(probability[i])} for i in order]})) if __name__ == "__main__": main()