willykeenan's picture
Publish reproducible BANKING77 model and agent-evaluation evidence
438f1e0 verified
Raw History Blame Contribute Delete
976 Bytes
"""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()