from transformers import AutoModelForCausalLM, AutoTokenizerimport torch, json, re tok = AutoTokenizer.from_pretrained("enterprise-ai-lab/codeguard-jev-style-1.5b")model = AutoModelForCausalLM.from_pretrained( "enterprise-ai-lab/codeguard-jev-style-1.5b", dtype=torch.float32).eval() SYS = ( "You are a senior code-review triage assistant. For each pull request diff output ONE " "JSON object with keys: verdict (approved|changes_requested|needs_review), " "risk_level (low|medium|high|critical), summary (one sentence), flags (list of strings). " "Output only the JSON.") def review_pr(title, diff): content = f"PR Title: {title}\n\nDiff:\n{diff}" msgs = [{"role": "system", "content": SYS}, {"role": "user", "content": content}] prompt = tok.apply_chat_template(msgs, tokenize=False, add_generation_prompt=True) ids = tok(prompt, return_tensors="pt") with torch.no_grad(): out = model.generate(**ids, max_new_tokens=150, do_sample=False, pad_token_id=tok.eos_token_id) text = tok.decode(out[0][ids["input_ids"].shape[1]:], skip_special_tokens=True) m = re.search(r"\{.*\}", text, re.DOTALL) return json.loads(m.group(0)) if m else {} result = review_pr( "Fix null check in user service", "- return user.name\n+ return user.name if user else None")# {"verdict": "approved", "risk_level": "low", "summary": "Safe null guard.", "flags": []}