import jsonimport torchfrom huggingface_hub import hf_hub_downloadfrom peft import PeftModelfrom transformers import AutoModelForCausalLM, AutoTokenizer base_id = "Qwen/Qwen2.5-1.5B-Instruct"adapter_id = "Hedmm/qwen2.5-1.5b-instruct-banking77-lora" tokenizer = AutoTokenizer.from_pretrained(adapter_id)model = AutoModelForCausalLM.from_pretrained(base_id, dtype=torch.bfloat16, device_map="auto")model = PeftModel.from_pretrained(model, adapter_id).eval()labels = json.load(open(hf_hub_download(adapter_id, "labels.json"))) def classify(message: str) -> str: """Return the predicted Banking77 intent for one customer message.""" chat = [ {"role": "system", "content": "You are an intent classifier for a bank's customer support."}, {"role": "user", "content": "Classify the customer message into exactly one of these intents:\n" + ", ".join(labels) + f"\n\nMessage: {message}\nAnswer with the intent label only."}, ] prompt = tokenizer.apply_chat_template(chat, tokenize=False, add_generation_prompt=True) inputs = tokenizer(prompt, return_tensors="pt", add_special_tokens=False).to(model.device) output = model.generate(**inputs, max_new_tokens=16, do_sample=False) answer = tokenizer.decode(output[0, inputs["input_ids"].shape[1]:], skip_special_tokens=True) return answer.strip().split("\n")[0].strip().strip(".") print(classify("I still haven't received my new card, it's been two weeks."))