{
 "head": "<bos><|turn>user\n",
 "tail": "<turn|>\n<|turn>model\n<|channel>thought\n<channel|>",
 "user_text_rule": "trim",
 "template_sha256": "ae53464bf3be25802b3a5b37def7fd89667067d7577049b3b2d74c4d8de4c6d4",
 "tokenizer_config_sha256": "13c6e1a5abadc12374393fa5fa352682f7326d8091b60cc66d9cb90e640da9b9",
 "repo": "google/gemma-4-12B-it-qat-w4a16-ct",
 "revision": "1d2c2d7f2466070e69d6fb3fd5ce9a7d75f2f6ee",
 "rendered_at_utc": "2026-09-28T10:27:29Z",
 "renderer": "jinja2 3.1.6, ImmutableSandboxedEnvironment(trim_blocks, lstrip_blocks, loopcontrols), raise_exception + strftime_now globals, the tokenizer's *_token strings",
 "context": {
  "messages": [
   {
    "role": "user",
    "content": "<SENTINEL>"
   }
  ],
  "add_generation_prompt": true,
  "enable_thinking": false
 },
 "rule": "head + user_text_rule(nonce + prompt) + tail is the user turn the pinned chat_template.jinja renders with add_generation_prompt=True and enable_thinking=False (`trim`: the template strips a user turn's text, `message['content'] | trim`); head's leading <bos> is removed by framing.compose (each engine adds exactly one BOS itself)"
}
