← Lesson
Vendor APIs
Joeven
Run
Reset
Python loads on first run
import json class FakeChatClient: def __init__(self, script): self.script = list(script) self.calls = [] def complete(self, model, messages, temperature=0, max_tokens=256): for m in messages: if m.get("role") not in {"system", "user", "assistant", "tool"}: raise ValueError("bad role: " + str(m.get("role"))) if "content" not in m: raise ValueError("missing content") self.calls.append({"model": model, "n": len(messages)}) if not self.script: raise RuntimeError("model over-called") text = self.script.pop(0) prompt_tokens = sum(len(str(m["content"]).split()) for m in messages) return { "message": {"role": "assistant", "content": text}, "usage": { "prompt_tokens": prompt_tokens, "completion_tokens": len(text.split()), }, "finish_reason": "stop", } client = FakeChatClient(["Need a tool: get_job", "Job 17 failed: timeout"]) msgs = [ {"role": "system", "content": "You are a job-status agent."}, {"role": "user", "content": "Status of job 17?"}, ] r1 = client.complete("tiny-1", msgs, temperature=0) print(json.dumps(r1, indent=2)) msgs.append(r1["message"]) msgs.append({"role": "tool", "content": "status=failed error=timeout"}) r2 = client.complete("tiny-1", msgs) print("second:", r2["message"]["content"]) print("calls billed:", len(client.calls))
Run to execute this in your browser. Nothing is sent to a server.