from transformers import AutoTokenizer, AutoModelForCausalLMfrom peft import PeftModelimport torch, json BASE = "Qwen/Qwen3-4B"; ADAPTER = "Cochon123/qwen3-4b-scrabble"tok = AutoTokenizer.from_pretrained(ADAPTER)model = AutoModelForCausalLM.from_pretrained(BASE, torch_dtype=torch.bfloat16, device_map="cuda")model = PeftModel.from_pretrained(model, ADAPTER).eval() board = ["."*15]*15 # 15 strings of 15 charsboard[7] = ".......CAT......." # place existing tilesrack = "AEGHOUV"msgs = [{"role":"system","content":"Pick the highest-scoring legal Scrabble move..."}, {"role":"user","content":json.dumps({"rack":rack,"board":board})}]text = tok.apply_chat_template(msgs, tokenize=False, add_generation_prompt=True, enable_thinking=False)out = model.generate(**tok(text, return_tensors="pt").to("cuda"), max_new_tokens=120, do_sample=False)print(tok.decode(out[0][tok(text, return_tensors="pt")["input_ids"].shape[1]:], skip_special_tokens=True))