← Lesson
Prompt Caching
Joeven
Run
Reset
Python loads on first run
def prefix_key(messages, cache_n): blob = "\n".join(m["role"] + ":" + m["content"] for m in messages) return blob[:cache_n] spec = {"role": "system", "content": "PINNED SPEC " + "rule " * 20} tool = {"role": "system", "content": "tools: get_job"} user_a = {"role": "user", "content": "job 17"} user_b = {"role": "user", "content": "job 18"} clock = {"role": "system", "content": "now=12:01"} stable = [spec, tool, user_a] unstable = [clock, spec, tool, user_a] other = [spec, tool, user_b] n = 80 print("same user, stable prefix match", prefix_key(stable, n) == prefix_key([spec, tool, user_a], n)) print("clock first breaks prefix", prefix_key(unstable, n) == prefix_key(stable, n)) print("new user keeps spec prefix", prefix_key(other, n)[:40] == prefix_key(stable, n)[:40])
Run to execute this in your browser. Nothing is sent to a server.