from transformers import AutoTokenizer, AutoModelForCausalLMfrom peft import PeftModelimport torch # Load base modelbase_model = "google/medgemma-27b-text-it"model = AutoModelForCausalLM.from_pretrained( base_model, torch_dtype=torch.bfloat16, device_map="auto")tokenizer = AutoTokenizer.from_pretrained(base_model) # Load adaptermodel = PeftModel.from_pretrained( model, "bobby07007/surgicalcopilot-phase1b-27b") # System promptsystem_prompt = ( 'You are a surgical triage AI. Output ONLY a single raw JSON object — ' 'no markdown, no code fences, no explanation. ' 'The JSON must contain the key "label_class" with value ' '"operate_now", "watch_wait", or "avoid".') # Example casecase_text = """62M POD1 laparoscopic cholecystectomy.Vitals: HR 115, BP 90/60, Temp 38.9°C, RR 22, SpO2 94%Labs: WBC 18k, Lactate 3.2, Cr 1.4Exam: Abdominal distension++, guarding, absent bowel soundsImaging: CT shows free fluid and pneumoperitoneum""" # Build chatmessages = [ {"role": "system", "content": system_prompt}, {"role": "user", "content": case_text}] prompt = tokenizer.apply_chat_template( messages, tokenize=False, add_generation_prompt=True) # Generateinputs = tokenizer(prompt, return_tensors="pt").to(model.device)outputs = model.generate( **inputs, max_new_tokens=512, do_sample=False, pad_token_id=tokenizer.pad_token_id) # Decoderesponse = tokenizer.decode( outputs[0][inputs['input_ids'].shape[1]:], skip_special_tokens=True)print(response)