import torchfrom transformers import AutoModelForCausalLM, AutoTokenizerfrom peft import PeftModel # 1. Load Base Modelbase_model_path = "Qwen/Qwen2.5-Coder-14B-Instruct"model = AutoModelForCausalLM.from_pretrained( base_model_path, torch_dtype="auto", device_map="auto", trust_remote_code=True)tokenizer = AutoTokenizer.from_pretrained(base_model_path, trust_remote_code=True) # 2. Load LoRA Adapterlora_path = "RnniaSnow/ST-Coder-14B-LoRA"model = PeftModel.from_pretrained(model, lora_path) # 3. Generate Codeprompt = "Write a Function Block (ST) for a PID controller with anti-windup mechanism."messages = [ {"role": "system", "content": "You are an expert IEC 61131-3 PLC programmer."}, {"role": "user", "content": prompt}] text = tokenizer.apply_chat_template(messages, tokenize=False, add_generation_prompt=True)model_inputs = tokenizer([text], return_tensors="pt").to(model.device) generated_ids = model.generate( **model_inputs, max_new_tokens=1024, temperature=0.2, # Low temperature for code precision top_p=0.9) output_text = tokenizer.batch_decode(generated_ids, skip_special_tokens=True)[0]print(output_text)