---
title: "ClikaRT::tokenizer::ChatTemplateInputs"
sidebar_label: "ChatTemplateInputs"
description: "The full per-render inputs for apply_chat_template: the chat turns plus everything a tool-calling or context-aware template consumes. All JSON values are read during the call, not retained."
---

<!-- Generated by tools/doxygen2mdx from Doxygen XML. Do not edit. -->

<span class="api-kind api-kind--struct">struct</span>

**Header:** `ClikaRT/tokenizer/tokenizer.h`

The full per-render inputs for `apply_chat_template`: the chat turns plus everything a tool-calling or context-aware template consumes. All JSON values are read during the call, not retained.

## Data members

### messages {#messages}

<div class="api-signature">

[`json::Json`](../json/Json.md) **`messages`**

</div>

Array of `{"role", "content", ...}` turn objects. Assistant turns may carry `tool_calls`; a `"tool"` role turn carries a tool response (with `tool_call_id` where the template expects one).

<div class="api-declared">

Declared in `ClikaRT/tokenizer/tokenizer.h`, line 95

</div>

### tools {#tools}

<div class="api-signature">

[`json::Json`](../json/Json.md) **`tools`**

</div>

Array of tool/function schemas offered to the model, or null for none. A template that cannot express tools natively gets the standard polyfills.

<div class="api-declared">

Declared in `ClikaRT/tokenizer/tokenizer.h`, line 98

</div>

### add\_generation\_prompt {#add_generation_prompt}

<div class="api-signature">

`bool` **`add_generation_prompt`** `= true`

</div>

Append the assistant-turn priming so the model continues as the assistant.

<div class="api-declared">

Declared in `ClikaRT/tokenizer/tokenizer.h`, line 100

</div>

### extra\_context {#extra_context}

<div class="api-signature">

[`json::Json`](../json/Json.md) **`extra_context`**

</div>

Object whose keys are injected as additional top-level template variables, or null for none.

<div class="api-declared">

Declared in `ClikaRT/tokenizer/tokenizer.h`, line 103

</div>

### now\_epoch\_seconds {#now_epoch_seconds}

<div class="api-signature">

`std::int64_t` **`now_epoch_seconds`** `= 0`

</div>

The fixed clock behind the template's `strftime_now`, formatted as UTC, so a render is reproducible and byte-identical across host timezones. Pass the current Unix time for wall-clock templates; the default renders at epoch 0.

<div class="api-declared">

Declared in `ClikaRT/tokenizer/tokenizer.h`, line 108

</div>
