1from transformers import AutoModelForCausalLM, AutoTokenizer
2import torch
3
4model_id = "anthonym21/slipstream-glm-z1-9b-grpo-v2"
5
6tokenizer = AutoTokenizer.from_pretrained(model_id, trust_remote_code=True)
7model = AutoModelForCausalLM.from_pretrained(
8 model_id,
9 torch_dtype=torch.bfloat16,
10 device_map="auto",
11 trust_remote_code=True,
12)
13
14# Set padding for batch inference
15tokenizer.padding_side = "left"
16if tokenizer.pad_token is None:
17 tokenizer.pad_token = tokenizer.eos_token
18
19SYSTEM_PROMPT = """You are a Slipstream protocol agent. Translate user intent into a SLIP message.
20
21Output exactly one line in this format:
22SLIP v1 <sender> <receiver> <ANCHOR> <args...>
23
24Valid ANCHORS: ObserveState, ObserveChange, ObserveError, InformResult, InformStatus, InformComplete, InformBlocked, InformProgress, AskClarify, AskStatus, AskPermission, AskResource, RequestTask, RequestPlan, RequestReview, RequestHelp, RequestCancel, RequestPriority, RequestResource, ProposePlan, ProposeChange, ProposeAlternative, ProposeRollback, CommitTask, CommitDeadline, CommitResource, EvalApprove, EvalReject, EvalNeedsWork, EvalComplete, EvalBlocked, MetaAck, MetaSync, MetaHandoff, MetaEscalate, MetaAbort, Accept, Reject, AcceptWithCondition, Defer, ErrorGeneric, ErrorTimeout, ErrorResource, ErrorPermission, ErrorValidation, Fallback"""
25
26def generate_slip(user_intent: str) -> str:
27 messages = [
28 {"role": "system", "content": SYSTEM_PROMPT},
29 {"role": "user", "content": user_intent}
30 ]
31
32 prompt = tokenizer.apply_chat_template(
33 messages, tokenize=False, add_generation_prompt=True
34 )
35 inputs = tokenizer(prompt, return_tensors="pt").to(model.device)
36
37 with torch.no_grad():
38 outputs = model.generate(
39 **inputs,
40 max_new_tokens=256,
41 temperature=0.6,
42 top_p=0.95,
43 top_k=40,
44 do_sample=True,
45 repetition_penalty=1.1,
46 )
47
48 return tokenizer.decode(outputs[0][inputs["input_ids"].shape[1]:], skip_special_tokens=True)
49
50# Example
51print(generate_slip("Please review my pull request for the authentication module"))
52# Output: SLIP v1 developer reviewer RequestReview authentication_module pr_review