agent-1.2e / chat.py
alextripplet's picture
Upload folder using huggingface_hub
784c58a verified
Raw
History Blame Contribute Delete
1.46 kB
#!/usr/bin/env python3
"""Interactive chat with Agent 1.2e. Run: python3 chat.py"""
from pathlib import Path
import torch
from transformers import AutoModelForCausalLM, AutoTokenizer, TextStreamer
MODEL = Path(__file__).parent / "model"
tok = AutoTokenizer.from_pretrained(MODEL)
model = AutoModelForCausalLM.from_pretrained(MODEL, dtype=torch.bfloat16)
streamer = TextStreamer(tok, skip_prompt=True, skip_special_tokens=True)
history = []
print("Agent 1.2e — type 'exit' to quit, 'reset' to clear history.\n")
while True:
try:
user = input("you> ").strip()
except (EOFError, KeyboardInterrupt):
break
if not user:
continue
if user == "exit":
break
if user == "reset":
history = []
print("(history cleared)")
continue
history.append({"role": "user", "content": user})
enc = tok.apply_chat_template(history, add_generation_prompt=True,
return_tensors="pt", return_dict=True)
print("agent> ", end="", flush=True)
# repetition_penalty matters here: merging with the base model weakens
# the instruct model's stopping behavior, so it loops without it
out = model.generate(**enc, max_new_tokens=512, do_sample=False,
repetition_penalty=1.15, streamer=streamer)
reply = tok.decode(out[0][enc["input_ids"].shape[1]:], skip_special_tokens=True)
history.append({"role": "assistant", "content": reply})