Skip to main content

Python class

ReasoningParser

ReasoningParser

class max.interfaces.ReasoningParser

source

Bases: ABC

Parser for identifying reasoning spans in model output.

from_tokenizer()

abstract async classmethod from_tokenizer(tokenizer)

source

Constructs a reasoning parser from a tokenizer.

Parameters:

tokenizer (PipelineTokenizer[Any, Any, Any]) – The PipelineTokenizer to use for resolving reasoning delimiter token IDs.

Returns:

A new ReasoningParser instance.

Return type:

ReasoningParser

is_prompt_in_reasoning()

is_prompt_in_reasoning(prompt_token_ids)

source

Decide whether the next generated token continues a reasoning span.

Called once at turn initiation, given the full prompt token ids (including any chat-template prefill). The result is used to seed the streaming reasoning state machine before the model emits its first token.

Multi-turn prompts can legitimately contain </think> tokens from prior assistant turns. The default implementation delegates to stream(), which scans left-to-right and would treat any such stale </think> as “reasoning has ended” — incorrect for the new assistant turn. Architectures whose chat templates emit reasoning delimiters per turn should override this to consider only the most recent delimiter (e.g., a right-to-left scan).

Parameters:

prompt_token_ids (Sequence[int]) – The full prompt token id sequence.

Returns:

True if the next generated token should be treated as part of a reasoning span; False otherwise.

Return type:

bool

reset()

reset()

source

Resets per-request state.

Called at the start of each request to clear any internal state accumulated during a prior request.

Return type:

None

stream()

abstract stream(delta_token_ids)

source

Identifies a reasoning span within a streaming delta chunk.

Parameters:

delta_token_ids (Sequence[int]) – The token IDs of the incremental streaming chunk.

Returns:

A ParsedReasoningDelta containing the reasoning span, whether reasoning is still active, and an optional formatter for decoded reasoning text.

Return type:

ParsedReasoningDelta