<!-- Generated by scripts/gen_api_reference.py. Do not edit directly. -->

# Python symbol index

Search every runtime class, function, method, and nested helper by its exact Python name or input signature. Select a result to open its detailed API record. Source links are pinned to the immutable revision used to build this documentation.

<div class="api-symbol-tools">
  <label for="api-symbol-filter">Filter symbols</label>
  <input id="api-symbol-filter" type="search" placeholder="Try SchedulerConfig, cache_ttl_seconds, or stream_outputs" autocomplete="off">
  <label for="api-symbol-kind">Kind</label>
  <select id="api-symbol-kind">
    <option value="">All kinds</option>
    <option value="class">Classes</option>
    <option value="function">Functions</option>
    <option value="method">Methods</option>
    <option value="nested function">Nested functions</option>
  </select>
  <p id="api-symbol-count" aria-live="polite">2003 symbols</p>
</div>

<div class="api-symbol-table" tabindex="0" aria-label="Python symbol index">
<table>
<thead><tr><th>Name</th><th>Kind</th><th>Signature and inputs</th><th>What it does</th><th>Source</th></tr></thead>
<tbody>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.__getattr__ function vllm_mlx.__getattr__(name) -&gt; not annotated lazy load all components to avoid mlx_lm import on non-apple platforms.">
<td><a href="../api/vllm_mlx/#contract-vllm_mlx.__getattr__"><code>vllm_mlx.__getattr__</code></a></td>
<td>function</td>
<td><code>vllm_mlx.__getattr__(name) -&gt; not annotated</code></td>
<td>Lazy load all components to avoid mlx_lm import on non-Apple platforms.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/__init__.py#L21-L90">#L21-L90</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.api.anthropic_adapter._convert_message function vllm_mlx.api.anthropic_adapter._convert_message(msg: anthropicmessage) -&gt; list[message] convert an anthropic message to one or more openai messages.">
<td><a href="../api/vllm_mlx/api/anthropic_adapter/#contract-vllm_mlx.api.anthropic_adapter._convert_message"><code>vllm_mlx.api.anthropic_adapter._convert_message</code></a></td>
<td>function</td>
<td><code>vllm_mlx.api.anthropic_adapter._convert_message(msg: AnthropicMessage) -&gt; list[Message]</code></td>
<td>Convert an Anthropic message to one or more OpenAI messages.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/api/anthropic_adapter.py#L165-L261">#L165-L261</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.api.anthropic_adapter._convert_stop_reason function vllm_mlx.api.anthropic_adapter._convert_stop_reason(openai_reason: str | none) -&gt; str convert openai finish_reason to anthropic stop_reason.">
<td><a href="../api/vllm_mlx/api/anthropic_adapter/#contract-vllm_mlx.api.anthropic_adapter._convert_stop_reason"><code>vllm_mlx.api.anthropic_adapter._convert_stop_reason</code></a></td>
<td>function</td>
<td><code>vllm_mlx.api.anthropic_adapter._convert_stop_reason(openai_reason: str | None) -&gt; str</code></td>
<td>Convert OpenAI finish_reason to Anthropic stop_reason.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/api/anthropic_adapter.py#L305-L321">#L305-L321</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.api.anthropic_adapter._convert_tool function vllm_mlx.api.anthropic_adapter._convert_tool(tool: anthropictooldef) -&gt; tooldefinition convert an anthropic tool definition to openai format.">
<td><a href="../api/vllm_mlx/api/anthropic_adapter/#contract-vllm_mlx.api.anthropic_adapter._convert_tool"><code>vllm_mlx.api.anthropic_adapter._convert_tool</code></a></td>
<td>function</td>
<td><code>vllm_mlx.api.anthropic_adapter._convert_tool(tool: AnthropicToolDef) -&gt; ToolDefinition</code></td>
<td>Convert an Anthropic tool definition to OpenAI format.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/api/anthropic_adapter.py#L264-L278">#L264-L278</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.api.anthropic_adapter._convert_tool_choice function vllm_mlx.api.anthropic_adapter._convert_tool_choice(tool_choice: dict) -&gt; str | dict | none convert anthropic tool_choice to openai format.">
<td><a href="../api/vllm_mlx/api/anthropic_adapter/#contract-vllm_mlx.api.anthropic_adapter._convert_tool_choice"><code>vllm_mlx.api.anthropic_adapter._convert_tool_choice</code></a></td>
<td>function</td>
<td><code>vllm_mlx.api.anthropic_adapter._convert_tool_choice(tool_choice: dict) -&gt; str | dict | None</code></td>
<td>Convert Anthropic tool_choice to OpenAI format.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/api/anthropic_adapter.py#L281-L302">#L281-L302</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.api.anthropic_adapter.anthropic_to_openai function vllm_mlx.api.anthropic_adapter.anthropic_to_openai(request: anthropicrequest) -&gt; chatcompletionrequest convert an anthropic messages api request to openai chat completions format.">
<td><a href="../api/vllm_mlx/api/anthropic_adapter/#contract-vllm_mlx.api.anthropic_adapter.anthropic_to_openai"><code>vllm_mlx.api.anthropic_adapter.anthropic_to_openai</code></a></td>
<td>function</td>
<td><code>vllm_mlx.api.anthropic_adapter.anthropic_to_openai(request: AnthropicRequest) -&gt; ChatCompletionRequest</code></td>
<td>Convert an Anthropic Messages API request to OpenAI Chat Completions format.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/api/anthropic_adapter.py#L31-L99">#L31-L99</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.api.anthropic_adapter.openai_to_anthropic function vllm_mlx.api.anthropic_adapter.openai_to_anthropic(response: chatcompletionresponse, model: str) -&gt; anthropicresponse convert an openai chat completions response to anthropic messages api format.">
<td><a href="../api/vllm_mlx/api/anthropic_adapter/#contract-vllm_mlx.api.anthropic_adapter.openai_to_anthropic"><code>vllm_mlx.api.anthropic_adapter.openai_to_anthropic</code></a></td>
<td>function</td>
<td><code>vllm_mlx.api.anthropic_adapter.openai_to_anthropic(response: ChatCompletionResponse, model: str) -&gt; AnthropicResponse</code></td>
<td>Convert an OpenAI Chat Completions response to Anthropic Messages API format.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/api/anthropic_adapter.py#L102-L162">#L102-L162</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="class" data-symbol-search="vllm_mlx.api.anthropic_models.anthropiccontentblock class vllm_mlx.api.anthropic_models.anthropiccontentblock(type: str, text: str | none = none, id: str | none = none, name: str | none = none, input: dict | none = none, tool_use_id: str | none = none, content: str | list | none = none, is_error: bool | none = none, source: dict | none = none) a content block in an anthropic message.">
<td><a href="../api/vllm_mlx/api/anthropic_models/#contract-vllm_mlx.api.anthropic_models.AnthropicContentBlock"><code>vllm_mlx.api.anthropic_models.AnthropicContentBlock</code></a></td>
<td>class</td>
<td><code>vllm_mlx.api.anthropic_models.AnthropicContentBlock(type: str, text: str | None = None, id: str | None = None, name: str | None = None, input: dict | None = None, tool_use_id: str | None = None, content: str | list | None = None, is_error: bool | None = None, source: dict | None = None)</code></td>
<td>A content block in an Anthropic message.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/api/anthropic_models.py#L20-L35">#L20-L35</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="class" data-symbol-search="vllm_mlx.api.anthropic_models.anthropicmessage class vllm_mlx.api.anthropic_models.anthropicmessage(role: str, content: str | list[anthropiccontentblock]) a message in an anthropic conversation.">
<td><a href="../api/vllm_mlx/api/anthropic_models/#contract-vllm_mlx.api.anthropic_models.AnthropicMessage"><code>vllm_mlx.api.anthropic_models.AnthropicMessage</code></a></td>
<td>class</td>
<td><code>vllm_mlx.api.anthropic_models.AnthropicMessage(role: str, content: str | list[AnthropicContentBlock])</code></td>
<td>A message in an Anthropic conversation.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/api/anthropic_models.py#L38-L42">#L38-L42</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="class" data-symbol-search="vllm_mlx.api.anthropic_models.anthropicrequest class vllm_mlx.api.anthropic_models.anthropicrequest(model: str, messages: list[anthropicmessage], system: str | list[dict] | none = none, max_tokens: int = field(gt=0), temperature: float | none = none, top_p: float | none = none, stream: bool = false, stop_sequences: list[str] | none = none, tools: list[anthropictooldef] | none = none, tool_choice: dict | none = none, metadata: dict | none = none, top_k: int | none = none, response_format: dict | none = none, chat_template_kwargs: dict[str, any] | none = none) request for anthropic messages api.">
<td><a href="../api/vllm_mlx/api/anthropic_models/#contract-vllm_mlx.api.anthropic_models.AnthropicRequest"><code>vllm_mlx.api.anthropic_models.AnthropicRequest</code></a></td>
<td>class</td>
<td><code>vllm_mlx.api.anthropic_models.AnthropicRequest(model: str, messages: list[AnthropicMessage], system: str | list[dict] | None = None, max_tokens: int = Field(gt=0), temperature: float | None = None, top_p: float | None = None, stream: bool = False, stop_sequences: list[str] | None = None, tools: list[AnthropicToolDef] | None = None, tool_choice: dict | None = None, metadata: dict | None = None, top_k: int | None = None, response_format: dict | None = None, chat_template_kwargs: dict[str, Any] | None = None)</code></td>
<td>Request for Anthropic Messages API.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/api/anthropic_models.py#L53-L73">#L53-L73</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="class" data-symbol-search="vllm_mlx.api.anthropic_models.anthropicresponse class vllm_mlx.api.anthropic_models.anthropicresponse(id: str = field(default_factory=lambda: f&#x27;msg_{uuid.uuid4().hex[:24]}&#x27;), type: str = &#x27;message&#x27;, role: str = &#x27;assistant&#x27;, model: str, content: list[anthropicresponsecontentblock], stop_reason: str | none = none, stop_sequence: str | none = none, usage: anthropicusage = field(default_factory=anthropicusage)) response for anthropic messages api.">
<td><a href="../api/vllm_mlx/api/anthropic_models/#contract-vllm_mlx.api.anthropic_models.AnthropicResponse"><code>vllm_mlx.api.anthropic_models.AnthropicResponse</code></a></td>
<td>class</td>
<td><code>vllm_mlx.api.anthropic_models.AnthropicResponse(id: str = Field(default_factory=lambda: f&#x27;msg_{uuid.uuid4().hex[:24]}&#x27;), type: str = &#x27;message&#x27;, role: str = &#x27;assistant&#x27;, model: str, content: list[AnthropicResponseContentBlock], stop_reason: str | None = None, stop_sequence: str | None = None, usage: AnthropicUsage = Field(default_factory=AnthropicUsage))</code></td>
<td>Response for Anthropic Messages API.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/api/anthropic_models.py#L103-L113">#L103-L113</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="class" data-symbol-search="vllm_mlx.api.anthropic_models.anthropicresponsecontentblock class vllm_mlx.api.anthropic_models.anthropicresponsecontentblock(type: str, text: str | none = none, thinking: str | none = none, id: str | none = none, name: str | none = none, input: any | none = none) a content block in the anthropic response.">
<td><a href="../api/vllm_mlx/api/anthropic_models/#contract-vllm_mlx.api.anthropic_models.AnthropicResponseContentBlock"><code>vllm_mlx.api.anthropic_models.AnthropicResponseContentBlock</code></a></td>
<td>class</td>
<td><code>vllm_mlx.api.anthropic_models.AnthropicResponseContentBlock(type: str, text: str | None = None, thinking: str | None = None, id: str | None = None, name: str | None = None, input: Any | None = None)</code></td>
<td>A content block in the Anthropic response.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/api/anthropic_models.py#L90-L100">#L90-L100</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="class" data-symbol-search="vllm_mlx.api.anthropic_models.anthropictooldef class vllm_mlx.api.anthropic_models.anthropictooldef(name: str, description: str | none = none, input_schema: dict | none = none) definition of a tool in anthropic format.">
<td><a href="../api/vllm_mlx/api/anthropic_models/#contract-vllm_mlx.api.anthropic_models.AnthropicToolDef"><code>vllm_mlx.api.anthropic_models.AnthropicToolDef</code></a></td>
<td>class</td>
<td><code>vllm_mlx.api.anthropic_models.AnthropicToolDef(name: str, description: str | None = None, input_schema: dict | None = None)</code></td>
<td>Definition of a tool in Anthropic format.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/api/anthropic_models.py#L45-L50">#L45-L50</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="class" data-symbol-search="vllm_mlx.api.anthropic_models.anthropicusage class vllm_mlx.api.anthropic_models.anthropicusage(input_tokens: int = 0, output_tokens: int = 0, cache_creation_input_tokens: int | none = none, cache_read_input_tokens: int | none = none) token usage for anthropic response.">
<td><a href="../api/vllm_mlx/api/anthropic_models/#contract-vllm_mlx.api.anthropic_models.AnthropicUsage"><code>vllm_mlx.api.anthropic_models.AnthropicUsage</code></a></td>
<td>class</td>
<td><code>vllm_mlx.api.anthropic_models.AnthropicUsage(input_tokens: int = 0, output_tokens: int = 0, cache_creation_input_tokens: int | None = None, cache_read_input_tokens: int | None = None)</code></td>
<td>Token usage for Anthropic response.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/api/anthropic_models.py#L81-L87">#L81-L87</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.api.harmony_tools._convert_type function vllm_mlx.api.harmony_tools._convert_type(prop: dict[str, any]) -&gt; str convert a json schema property to a typescript type string.">
<td><a href="../api/vllm_mlx/api/harmony_tools/#contract-vllm_mlx.api.harmony_tools._convert_type"><code>vllm_mlx.api.harmony_tools._convert_type</code></a></td>
<td>function</td>
<td><code>vllm_mlx.api.harmony_tools._convert_type(prop: dict[str, Any]) -&gt; str</code></td>
<td>Convert a JSON Schema property to a TypeScript type string.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/api/harmony_tools.py#L31-L54">#L31-L54</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.api.harmony_tools.convert_tools_to_typescript function vllm_mlx.api.harmony_tools.convert_tools_to_typescript(tools: list[dict[str, any]] | none) -&gt; str | none convert openai json schema tool definitions to typescript namespace format.">
<td><a href="../api/vllm_mlx/api/harmony_tools/#contract-vllm_mlx.api.harmony_tools.convert_tools_to_typescript"><code>vllm_mlx.api.harmony_tools.convert_tools_to_typescript</code></a></td>
<td>function</td>
<td><code>vllm_mlx.api.harmony_tools.convert_tools_to_typescript(tools: list[dict[str, Any]] | None) -&gt; str | None</code></td>
<td>Convert OpenAI JSON Schema tool definitions to TypeScript namespace format.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/api/harmony_tools.py#L57-L109">#L57-L109</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="class" data-symbol-search="vllm_mlx.api.models.assistantmessage class vllm_mlx.api.models.assistantmessage(role: str = &#x27;assistant&#x27;, content: str | none = none, reasoning_content: str | none = field(default=none, validation_alias=aliaschoices(&#x27;reasoning_content&#x27;, &#x27;reasoning&#x27;)), tool_calls: list[toolcall] | none = none) response message from the assistant.">
<td><a href="../api/vllm_mlx/api/models/#contract-vllm_mlx.api.models.AssistantMessage"><code>vllm_mlx.api.models.AssistantMessage</code></a></td>
<td>class</td>
<td><code>vllm_mlx.api.models.AssistantMessage(role: str = &#x27;assistant&#x27;, content: str | None = None, reasoning_content: str | None = Field(default=None, validation_alias=AliasChoices(&#x27;reasoning_content&#x27;, &#x27;reasoning&#x27;)), tool_calls: list[ToolCall] | None = None)</code></td>
<td>Response message from the assistant.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/api/models.py#L219-L248">#L219-L248</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.api.models.assistantmessage._serialize method vllm_mlx.api.models.assistantmessage._serialize() -&gt; dict serialize with openai-compatible schema.">
<td><a href="../api/vllm_mlx/api/models/#contract-vllm_mlx.api.models.AssistantMessage._serialize"><code>vllm_mlx.api.models.AssistantMessage._serialize</code></a></td>
<td>method</td>
<td><code>vllm_mlx.api.models.AssistantMessage._serialize() -&gt; dict</code></td>
<td>Serialize with OpenAI-compatible schema.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/api/models.py#L237-L248">#L237-L248</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.api.models.assistantmessage.reasoning method vllm_mlx.api.models.assistantmessage.reasoning() -&gt; str | none return reasoning content through the legacy compatibility alias.">
<td><a href="../api/vllm_mlx/api/models/#contract-vllm_mlx.api.models.AssistantMessage.reasoning"><code>vllm_mlx.api.models.AssistantMessage.reasoning</code></a></td>
<td>method</td>
<td><code>vllm_mlx.api.models.AssistantMessage.reasoning() -&gt; str | None</code></td>
<td>Return reasoning content through the legacy compatibility alias.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/api/models.py#L231-L234">#L231-L234</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="class" data-symbol-search="vllm_mlx.api.models.audioseparationrequest class vllm_mlx.api.models.audioseparationrequest(model: str = &#x27;htdemucs&#x27;, stems: list[str] = field(default_factory=lambda: [&#x27;vocals&#x27;, &#x27;accompaniment&#x27;])) request for audio source separation.">
<td><a href="../api/vllm_mlx/api/models/#contract-vllm_mlx.api.models.AudioSeparationRequest"><code>vllm_mlx.api.models.AudioSeparationRequest</code></a></td>
<td>class</td>
<td><code>vllm_mlx.api.models.AudioSeparationRequest(model: str = &#x27;htdemucs&#x27;, stems: list[str] = Field(default_factory=lambda: [&#x27;vocals&#x27;, &#x27;accompaniment&#x27;]))</code></td>
<td>Request for audio source separation.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/api/models.py#L443-L447">#L443-L447</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="class" data-symbol-search="vllm_mlx.api.models.audiospeechrequest class vllm_mlx.api.models.audiospeechrequest(model: str = &#x27;kokoro&#x27;, input: str, voice: str = &#x27;af_heart&#x27;, speed: float = 1.0, response_format: str = &#x27;wav&#x27;) request for text-to-speech.">
<td><a href="../api/vllm_mlx/api/models/#contract-vllm_mlx.api.models.AudioSpeechRequest"><code>vllm_mlx.api.models.AudioSpeechRequest</code></a></td>
<td>class</td>
<td><code>vllm_mlx.api.models.AudioSpeechRequest(model: str = &#x27;kokoro&#x27;, input: str, voice: str = &#x27;af_heart&#x27;, speed: float = 1.0, response_format: str = &#x27;wav&#x27;)</code></td>
<td>Request for text-to-speech.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/api/models.py#L433-L440">#L433-L440</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="class" data-symbol-search="vllm_mlx.api.models.audiotranscriptionrequest class vllm_mlx.api.models.audiotranscriptionrequest(model: str = &#x27;whisper-large-v3&#x27;, language: str | none = none, response_format: str = &#x27;json&#x27;, temperature: float = 0.0, timestamp_granularities: list[str] | none = none) request for audio transcription (stt).">
<td><a href="../api/vllm_mlx/api/models/#contract-vllm_mlx.api.models.AudioTranscriptionRequest"><code>vllm_mlx.api.models.AudioTranscriptionRequest</code></a></td>
<td>class</td>
<td><code>vllm_mlx.api.models.AudioTranscriptionRequest(model: str = &#x27;whisper-large-v3&#x27;, language: str | None = None, response_format: str = &#x27;json&#x27;, temperature: float = 0.0, timestamp_granularities: list[str] | None = None)</code></td>
<td>Request for audio transcription (STT).</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/api/models.py#L414-L421">#L414-L421</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="class" data-symbol-search="vllm_mlx.api.models.audiotranscriptionresponse class vllm_mlx.api.models.audiotranscriptionresponse(text: str, language: str | none = none, duration: float | none = none, segments: list[dict] | none = none) response from audio transcription.">
<td><a href="../api/vllm_mlx/api/models/#contract-vllm_mlx.api.models.AudioTranscriptionResponse"><code>vllm_mlx.api.models.AudioTranscriptionResponse</code></a></td>
<td>class</td>
<td><code>vllm_mlx.api.models.AudioTranscriptionResponse(text: str, language: str | None = None, duration: float | None = None, segments: list[dict] | None = None)</code></td>
<td>Response from audio transcription.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/api/models.py#L424-L430">#L424-L430</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="class" data-symbol-search="vllm_mlx.api.models.audiourl class vllm_mlx.api.models.audiourl(url: str) audio url for audio content.">
<td><a href="../api/vllm_mlx/api/models/#contract-vllm_mlx.api.models.AudioUrl"><code>vllm_mlx.api.models.AudioUrl</code></a></td>
<td>class</td>
<td><code>vllm_mlx.api.models.AudioUrl(url: str)</code></td>
<td>Audio URL for audio content.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/api/models.py#L37-L40">#L37-L40</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="class" data-symbol-search="vllm_mlx.api.models.chatcompletionchoice class vllm_mlx.api.models.chatcompletionchoice(index: int = 0, message: assistantmessage, finish_reason: str | none = &#x27;stop&#x27;) a single choice in chat completion response.">
<td><a href="../api/vllm_mlx/api/models/#contract-vllm_mlx.api.models.ChatCompletionChoice"><code>vllm_mlx.api.models.ChatCompletionChoice</code></a></td>
<td>class</td>
<td><code>vllm_mlx.api.models.ChatCompletionChoice(index: int = 0, message: AssistantMessage, finish_reason: str | None = &#x27;stop&#x27;)</code></td>
<td>A single choice in chat completion response.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/api/models.py#L251-L256">#L251-L256</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="class" data-symbol-search="vllm_mlx.api.models.chatcompletionchunk class vllm_mlx.api.models.chatcompletionchunk(id: str = field(default_factory=lambda: f&#x27;chatcmpl-{uuid.uuid4().hex[:8]}&#x27;), object: str = &#x27;chat.completion.chunk&#x27;, created: int = field(default_factory=lambda: int(time.time())), model: str, choices: list[chatcompletionchunkchoice], usage: usage | none = none) a streaming chunk for chat completion.">
<td><a href="../api/vllm_mlx/api/models/#contract-vllm_mlx.api.models.ChatCompletionChunk"><code>vllm_mlx.api.models.ChatCompletionChunk</code></a></td>
<td>class</td>
<td><code>vllm_mlx.api.models.ChatCompletionChunk(id: str = Field(default_factory=lambda: f&#x27;chatcmpl-{uuid.uuid4().hex[:8]}&#x27;), object: str = &#x27;chat.completion.chunk&#x27;, created: int = Field(default_factory=lambda: int(time.time())), model: str, choices: list[ChatCompletionChunkChoice], usage: Usage | None = None)</code></td>
<td>A streaming chunk for chat completion.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/api/models.py#L573-L581">#L573-L581</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="class" data-symbol-search="vllm_mlx.api.models.chatcompletionchunkchoice class vllm_mlx.api.models.chatcompletionchunkchoice(index: int = 0, delta: chatcompletionchunkdelta, finish_reason: str | none = none) a single choice in a streaming chunk.">
<td><a href="../api/vllm_mlx/api/models/#contract-vllm_mlx.api.models.ChatCompletionChunkChoice"><code>vllm_mlx.api.models.ChatCompletionChunkChoice</code></a></td>
<td>class</td>
<td><code>vllm_mlx.api.models.ChatCompletionChunkChoice(index: int = 0, delta: ChatCompletionChunkDelta, finish_reason: str | None = None)</code></td>
<td>A single choice in a streaming chunk.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/api/models.py#L565-L570">#L565-L570</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="class" data-symbol-search="vllm_mlx.api.models.chatcompletionchunkdelta class vllm_mlx.api.models.chatcompletionchunkdelta(role: str | none = none, content: str | none = none, reasoning_content: str | none = field(default=none, validation_alias=aliaschoices(&#x27;reasoning_content&#x27;, &#x27;reasoning&#x27;)), tool_calls: list[dict] | none = none) delta content in a streaming chunk.">
<td><a href="../api/vllm_mlx/api/models/#contract-vllm_mlx.api.models.ChatCompletionChunkDelta"><code>vllm_mlx.api.models.ChatCompletionChunkDelta</code></a></td>
<td>class</td>
<td><code>vllm_mlx.api.models.ChatCompletionChunkDelta(role: str | None = None, content: str | None = None, reasoning_content: str | None = Field(default=None, validation_alias=AliasChoices(&#x27;reasoning_content&#x27;, &#x27;reasoning&#x27;)), tool_calls: list[dict] | None = None)</code></td>
<td>Delta content in a streaming chunk.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/api/models.py#L529-L562">#L529-L562</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.api.models.chatcompletionchunkdelta._serialize method vllm_mlx.api.models.chatcompletionchunkdelta._serialize() -&gt; dict serialize delta with only non-none fields.">
<td><a href="../api/vllm_mlx/api/models/#contract-vllm_mlx.api.models.ChatCompletionChunkDelta._serialize"><code>vllm_mlx.api.models.ChatCompletionChunkDelta._serialize</code></a></td>
<td>method</td>
<td><code>vllm_mlx.api.models.ChatCompletionChunkDelta._serialize() -&gt; dict</code></td>
<td>Serialize delta with only non-None fields.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/api/models.py#L547-L562">#L547-L562</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.api.models.chatcompletionchunkdelta.reasoning method vllm_mlx.api.models.chatcompletionchunkdelta.reasoning() -&gt; str | none return incremental reasoning through the compatibility alias.">
<td><a href="../api/vllm_mlx/api/models/#contract-vllm_mlx.api.models.ChatCompletionChunkDelta.reasoning"><code>vllm_mlx.api.models.ChatCompletionChunkDelta.reasoning</code></a></td>
<td>method</td>
<td><code>vllm_mlx.api.models.ChatCompletionChunkDelta.reasoning() -&gt; str | None</code></td>
<td>Return incremental reasoning through the compatibility alias.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/api/models.py#L541-L544">#L541-L544</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="class" data-symbol-search="vllm_mlx.api.models.chatcompletionrequest class vllm_mlx.api.models.chatcompletionrequest(model: str, messages: list[message], temperature: float | none = none, top_p: float | none = none, top_k: int | none = none, min_p: float | none = none, presence_penalty: float | none = none, max_tokens: int | none = field(default=none, gt=0), stream: bool = false, stream_options: streamoptions | none = none, stop: list[str] | none = none, tools: list[tooldefinition] | none = none, tool_choice: str | dict | none = none, response_format: responseformat | dict | none = none, logit_bias: dict[str, float] | none = none, chat_template_kwargs: dict[str, any] | none = none, video_fps: float | none = none, video_max_frames: int | none = none, repetition_penalty: float | none = none, timeout: float | none = none, specprefill: bool | none = none, specprefill_keep_pct: float | none = none, specprefill_backbone_pct: float | none = none, enable_thinking: bool | none = none, mllm_draft: bool | none = none, thinking_token_budget: int | none = field(default=none, gt=0)) request for chat completion.">
<td><a href="../api/vllm_mlx/api/models/#contract-vllm_mlx.api.models.ChatCompletionRequest"><code>vllm_mlx.api.models.ChatCompletionRequest</code></a></td>
<td>class</td>
<td><code>vllm_mlx.api.models.ChatCompletionRequest(model: str, messages: list[Message], temperature: float | None = None, top_p: float | None = None, top_k: int | None = None, min_p: float | None = None, presence_penalty: float | None = None, max_tokens: int | None = Field(default=None, gt=0), stream: bool = False, stream_options: StreamOptions | None = None, stop: list[str] | None = None, tools: list[ToolDefinition] | None = None, tool_choice: str | dict | None = None, response_format: ResponseFormat | dict | None = None, logit_bias: dict[str, float] | None = None, chat_template_kwargs: dict[str, Any] | None = None, video_fps: float | None = None, video_max_frames: int | None = None, repetition_penalty: float | None = None, timeout: float | None = None, specprefill: bool | None = None, specprefill_keep_pct: float | None = None, specprefill_backbone_pct: float | None = None, enable_thinking: bool | None = None, mllm_draft: bool | None = None, thinking_token_budget: int | None = Field(default=None, gt=0))</code></td>
<td>Request for chat completion.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/api/models.py#L170-L216">#L170-L216</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="class" data-symbol-search="vllm_mlx.api.models.chatcompletionresponse class vllm_mlx.api.models.chatcompletionresponse(id: str = field(default_factory=lambda: f&#x27;chatcmpl-{uuid.uuid4().hex[:8]}&#x27;), object: str = &#x27;chat.completion&#x27;, created: int = field(default_factory=lambda: int(time.time())), model: str, choices: list[chatcompletionchoice], usage: usage = field(default_factory=usage), generation_metadata: generationmetadata | none = none) response for chat completion.">
<td><a href="../api/vllm_mlx/api/models/#contract-vllm_mlx.api.models.ChatCompletionResponse"><code>vllm_mlx.api.models.ChatCompletionResponse</code></a></td>
<td>class</td>
<td><code>vllm_mlx.api.models.ChatCompletionResponse(id: str = Field(default_factory=lambda: f&#x27;chatcmpl-{uuid.uuid4().hex[:8]}&#x27;), object: str = &#x27;chat.completion&#x27;, created: int = Field(default_factory=lambda: int(time.time())), model: str, choices: list[ChatCompletionChoice], usage: Usage = Field(default_factory=Usage), generation_metadata: GenerationMetadata | None = None)</code></td>
<td>Response for chat completion.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/api/models.py#L274-L283">#L274-L283</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="class" data-symbol-search="vllm_mlx.api.models.completionchoice class vllm_mlx.api.models.completionchoice(index: int = 0, text: str, finish_reason: str | none = &#x27;stop&#x27;) a single choice in text completion response.">
<td><a href="../api/vllm_mlx/api/models/#contract-vllm_mlx.api.models.CompletionChoice"><code>vllm_mlx.api.models.CompletionChoice</code></a></td>
<td>class</td>
<td><code>vllm_mlx.api.models.CompletionChoice(index: int = 0, text: str, finish_reason: str | None = &#x27;stop&#x27;)</code></td>
<td>A single choice in text completion response.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/api/models.py#L316-L321">#L316-L321</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="class" data-symbol-search="vllm_mlx.api.models.completionrequest class vllm_mlx.api.models.completionrequest(model: str, prompt: str | list[str], temperature: float | none = none, top_p: float | none = none, top_k: int | none = none, min_p: float | none = none, presence_penalty: float | none = none, max_tokens: int | none = field(default=none, gt=0), stream: bool = false, stop: list[str] | none = none, repetition_penalty: float | none = none, timeout: float | none = none, specprefill: bool | none = none, specprefill_keep_pct: float | none = none, specprefill_backbone_pct: float | none = none) request for text completion.">
<td><a href="../api/vllm_mlx/api/models/#contract-vllm_mlx.api.models.CompletionRequest"><code>vllm_mlx.api.models.CompletionRequest</code></a></td>
<td>class</td>
<td><code>vllm_mlx.api.models.CompletionRequest(model: str, prompt: str | list[str], temperature: float | None = None, top_p: float | None = None, top_k: int | None = None, min_p: float | None = None, presence_penalty: float | None = None, max_tokens: int | None = Field(default=None, gt=0), stream: bool = False, stop: list[str] | None = None, repetition_penalty: float | None = None, timeout: float | None = None, specprefill: bool | None = None, specprefill_keep_pct: float | None = None, specprefill_backbone_pct: float | None = None)</code></td>
<td>Request for text completion.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/api/models.py#L291-L313">#L291-L313</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="class" data-symbol-search="vllm_mlx.api.models.completionresponse class vllm_mlx.api.models.completionresponse(id: str = field(default_factory=lambda: f&#x27;cmpl-{uuid.uuid4().hex[:8]}&#x27;), object: str = &#x27;text_completion&#x27;, created: int = field(default_factory=lambda: int(time.time())), model: str, choices: list[completionchoice], usage: usage = field(default_factory=usage)) response for text completion.">
<td><a href="../api/vllm_mlx/api/models/#contract-vllm_mlx.api.models.CompletionResponse"><code>vllm_mlx.api.models.CompletionResponse</code></a></td>
<td>class</td>
<td><code>vllm_mlx.api.models.CompletionResponse(id: str = Field(default_factory=lambda: f&#x27;cmpl-{uuid.uuid4().hex[:8]}&#x27;), object: str = &#x27;text_completion&#x27;, created: int = Field(default_factory=lambda: int(time.time())), model: str, choices: list[CompletionChoice], usage: Usage = Field(default_factory=Usage))</code></td>
<td>Response for text completion.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/api/models.py#L324-L332">#L324-L332</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="class" data-symbol-search="vllm_mlx.api.models.contentpart class vllm_mlx.api.models.contentpart(type: str, text: str | none = none, image_url: imageurl | dict | str | none = none, video: str | none = none, video_url: videourl | dict | str | none = none, audio_url: audiourl | dict | str | none = none) a part of a multimodal message content.">
<td><a href="../api/vllm_mlx/api/models/#contract-vllm_mlx.api.models.ContentPart"><code>vllm_mlx.api.models.ContentPart</code></a></td>
<td>class</td>
<td><code>vllm_mlx.api.models.ContentPart(type: str, text: str | None = None, image_url: ImageUrl | dict | str | None = None, video: str | None = None, video_url: VideoUrl | dict | str | None = None, audio_url: AudioUrl | dict | str | None = None)</code></td>
<td>A part of a multimodal message content.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/api/models.py#L43-L60">#L43-L60</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="class" data-symbol-search="vllm_mlx.api.models.embeddingdata class vllm_mlx.api.models.embeddingdata(object: str = &#x27;embedding&#x27;, index: int, embedding: list[float]) a single embedding result.">
<td><a href="../api/vllm_mlx/api/models/#contract-vllm_mlx.api.models.EmbeddingData"><code>vllm_mlx.api.models.EmbeddingData</code></a></td>
<td>class</td>
<td><code>vllm_mlx.api.models.EmbeddingData(object: str = &#x27;embedding&#x27;, index: int, embedding: list[float])</code></td>
<td>A single embedding result.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/api/models.py#L463-L468">#L463-L468</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="class" data-symbol-search="vllm_mlx.api.models.embeddingrequest class vllm_mlx.api.models.embeddingrequest(input: str | list[str], model: str, encoding_format: str | none = &#x27;float&#x27;) request for text embeddings (openai compatible).">
<td><a href="../api/vllm_mlx/api/models/#contract-vllm_mlx.api.models.EmbeddingRequest"><code>vllm_mlx.api.models.EmbeddingRequest</code></a></td>
<td>class</td>
<td><code>vllm_mlx.api.models.EmbeddingRequest(input: str | list[str], model: str, encoding_format: str | None = &#x27;float&#x27;)</code></td>
<td>Request for text embeddings (OpenAI compatible).</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/api/models.py#L455-L460">#L455-L460</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="class" data-symbol-search="vllm_mlx.api.models.embeddingresponse class vllm_mlx.api.models.embeddingresponse(object: str = &#x27;list&#x27;, data: list[embeddingdata], model: str, usage: embeddingusage = field(default_factory=embeddingusage)) response for embeddings endpoint (openai compatible).">
<td><a href="../api/vllm_mlx/api/models/#contract-vllm_mlx.api.models.EmbeddingResponse"><code>vllm_mlx.api.models.EmbeddingResponse</code></a></td>
<td>class</td>
<td><code>vllm_mlx.api.models.EmbeddingResponse(object: str = &#x27;list&#x27;, data: list[EmbeddingData], model: str, usage: EmbeddingUsage = Field(default_factory=EmbeddingUsage))</code></td>
<td>Response for embeddings endpoint (OpenAI compatible).</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/api/models.py#L478-L484">#L478-L484</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="class" data-symbol-search="vllm_mlx.api.models.embeddingusage class vllm_mlx.api.models.embeddingusage(prompt_tokens: int = 0, total_tokens: int = 0) token usage for embedding requests.">
<td><a href="../api/vllm_mlx/api/models/#contract-vllm_mlx.api.models.EmbeddingUsage"><code>vllm_mlx.api.models.EmbeddingUsage</code></a></td>
<td>class</td>
<td><code>vllm_mlx.api.models.EmbeddingUsage(prompt_tokens: int = 0, total_tokens: int = 0)</code></td>
<td>Token usage for embedding requests.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/api/models.py#L471-L475">#L471-L475</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="class" data-symbol-search="vllm_mlx.api.models.functioncall class vllm_mlx.api.models.functioncall(name: str, arguments: str) a function call with name and arguments.">
<td><a href="../api/vllm_mlx/api/models/#contract-vllm_mlx.api.models.FunctionCall"><code>vllm_mlx.api.models.FunctionCall</code></a></td>
<td>class</td>
<td><code>vllm_mlx.api.models.FunctionCall(name: str, arguments: str)</code></td>
<td>A function call with name and arguments.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/api/models.py#L95-L99">#L95-L99</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="class" data-symbol-search="vllm_mlx.api.models.generationmetadata class vllm_mlx.api.models.generationmetadata(no_final_content_watchdog_tokens: int | none = none, no_final_content_watchdog_enforced: bool = false) optional generation diagnostics emitted for feature-bearing requests.">
<td><a href="../api/vllm_mlx/api/models/#contract-vllm_mlx.api.models.GenerationMetadata"><code>vllm_mlx.api.models.GenerationMetadata</code></a></td>
<td>class</td>
<td><code>vllm_mlx.api.models.GenerationMetadata(no_final_content_watchdog_tokens: int | None = None, no_final_content_watchdog_enforced: bool = False)</code></td>
<td>Optional generation diagnostics emitted for feature-bearing requests.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/api/models.py#L267-L271">#L267-L271</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="class" data-symbol-search="vllm_mlx.api.models.imageurl class vllm_mlx.api.models.imageurl(url: str, detail: str | none = none) image url with optional detail level.">
<td><a href="../api/vllm_mlx/api/models/#contract-vllm_mlx.api.models.ImageUrl"><code>vllm_mlx.api.models.ImageUrl</code></a></td>
<td>class</td>
<td><code>vllm_mlx.api.models.ImageUrl(url: str, detail: str | None = None)</code></td>
<td>Image URL with optional detail level.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/api/models.py#L24-L28">#L24-L28</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="class" data-symbol-search="vllm_mlx.api.models.mcpexecuterequest class vllm_mlx.api.models.mcpexecuterequest(tool_name: str, arguments: dict = field(default_factory=dict)) request to execute an mcp tool.">
<td><a href="../api/vllm_mlx/api/models/#contract-vllm_mlx.api.models.MCPExecuteRequest"><code>vllm_mlx.api.models.MCPExecuteRequest</code></a></td>
<td>class</td>
<td><code>vllm_mlx.api.models.MCPExecuteRequest(tool_name: str, arguments: dict = Field(default_factory=dict))</code></td>
<td>Request to execute an MCP tool.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/api/models.py#L393-L397">#L393-L397</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="class" data-symbol-search="vllm_mlx.api.models.mcpexecuteresponse class vllm_mlx.api.models.mcpexecuteresponse(tool_name: str, content: str | list | dict | none = none, is_error: bool = false, error_message: str | none = none) response from executing an mcp tool.">
<td><a href="../api/vllm_mlx/api/models/#contract-vllm_mlx.api.models.MCPExecuteResponse"><code>vllm_mlx.api.models.MCPExecuteResponse</code></a></td>
<td>class</td>
<td><code>vllm_mlx.api.models.MCPExecuteResponse(tool_name: str, content: str | list | dict | None = None, is_error: bool = False, error_message: str | None = None)</code></td>
<td>Response from executing an MCP tool.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/api/models.py#L400-L406">#L400-L406</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="class" data-symbol-search="vllm_mlx.api.models.mcpserverinfo class vllm_mlx.api.models.mcpserverinfo(name: str, state: str, transport: str, tools_count: int, error: str | none = none) information about an mcp server.">
<td><a href="../api/vllm_mlx/api/models/#contract-vllm_mlx.api.models.MCPServerInfo"><code>vllm_mlx.api.models.MCPServerInfo</code></a></td>
<td>class</td>
<td><code>vllm_mlx.api.models.MCPServerInfo(name: str, state: str, transport: str, tools_count: int, error: str | None = None)</code></td>
<td>Information about an MCP server.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/api/models.py#L377-L384">#L377-L384</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="class" data-symbol-search="vllm_mlx.api.models.mcpserversresponse class vllm_mlx.api.models.mcpserversresponse(servers: list[mcpserverinfo]) response for listing mcp servers.">
<td><a href="../api/vllm_mlx/api/models/#contract-vllm_mlx.api.models.MCPServersResponse"><code>vllm_mlx.api.models.MCPServersResponse</code></a></td>
<td>class</td>
<td><code>vllm_mlx.api.models.MCPServersResponse(servers: list[MCPServerInfo])</code></td>
<td>Response for listing MCP servers.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/api/models.py#L387-L390">#L387-L390</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="class" data-symbol-search="vllm_mlx.api.models.mcptoolinfo class vllm_mlx.api.models.mcptoolinfo(name: str, description: str, server: str, parameters: dict = field(default_factory=dict)) information about an mcp tool.">
<td><a href="../api/vllm_mlx/api/models/#contract-vllm_mlx.api.models.MCPToolInfo"><code>vllm_mlx.api.models.MCPToolInfo</code></a></td>
<td>class</td>
<td><code>vllm_mlx.api.models.MCPToolInfo(name: str, description: str, server: str, parameters: dict = Field(default_factory=dict))</code></td>
<td>Information about an MCP tool.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/api/models.py#L361-L367">#L361-L367</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="class" data-symbol-search="vllm_mlx.api.models.mcptoolsresponse class vllm_mlx.api.models.mcptoolsresponse(tools: list[mcptoolinfo], count: int) response for listing mcp tools.">
<td><a href="../api/vllm_mlx/api/models/#contract-vllm_mlx.api.models.MCPToolsResponse"><code>vllm_mlx.api.models.MCPToolsResponse</code></a></td>
<td>class</td>
<td><code>vllm_mlx.api.models.MCPToolsResponse(tools: list[MCPToolInfo], count: int)</code></td>
<td>Response for listing MCP tools.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/api/models.py#L370-L374">#L370-L374</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="class" data-symbol-search="vllm_mlx.api.models.message class vllm_mlx.api.models.message(role: str, content: str | list[contentpart] | list[dict] | none = none, tool_calls: list[dict] | none = none, tool_call_id: str | none = none) a message in a chat conversation.">
<td><a href="../api/vllm_mlx/api/models/#contract-vllm_mlx.api.models.Message"><code>vllm_mlx.api.models.Message</code></a></td>
<td>class</td>
<td><code>vllm_mlx.api.models.Message(role: str, content: str | list[ContentPart] | list[dict] | None = None, tool_calls: list[dict] | None = None, tool_call_id: str | None = None)</code></td>
<td>A message in a chat conversation.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/api/models.py#L68-L84">#L68-L84</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="class" data-symbol-search="vllm_mlx.api.models.modelinfo class vllm_mlx.api.models.modelinfo(id: str, object: str = &#x27;model&#x27;, created: int = field(default_factory=lambda: int(time.time())), owned_by: str = &#x27;vllm-mlx&#x27;) information about an available model.">
<td><a href="../api/vllm_mlx/api/models/#contract-vllm_mlx.api.models.ModelInfo"><code>vllm_mlx.api.models.ModelInfo</code></a></td>
<td>class</td>
<td><code>vllm_mlx.api.models.ModelInfo(id: str, object: str = &#x27;model&#x27;, created: int = Field(default_factory=lambda: int(time.time())), owned_by: str = &#x27;vllm-mlx&#x27;)</code></td>
<td>Information about an available model.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/api/models.py#L340-L346">#L340-L346</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="class" data-symbol-search="vllm_mlx.api.models.modelsresponse class vllm_mlx.api.models.modelsresponse(object: str = &#x27;list&#x27;, data: list[modelinfo]) response for listing models.">
<td><a href="../api/vllm_mlx/api/models/#contract-vllm_mlx.api.models.ModelsResponse"><code>vllm_mlx.api.models.ModelsResponse</code></a></td>
<td>class</td>
<td><code>vllm_mlx.api.models.ModelsResponse(object: str = &#x27;list&#x27;, data: list[ModelInfo])</code></td>
<td>Response for listing models.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/api/models.py#L349-L353">#L349-L353</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="class" data-symbol-search="vllm_mlx.api.models.rerankrequest class vllm_mlx.api.models.rerankrequest(model: str, query: str, documents: list[str | dict], top_n: int | none = none, return_documents: bool = true) request for reranking documents against a query (jina/cohere convention).">
<td><a href="../api/vllm_mlx/api/models/#contract-vllm_mlx.api.models.RerankRequest"><code>vllm_mlx.api.models.RerankRequest</code></a></td>
<td>class</td>
<td><code>vllm_mlx.api.models.RerankRequest(model: str, query: str, documents: list[str | dict], top_n: int | None = None, return_documents: bool = True)</code></td>
<td>Request for reranking documents against a query (Jina/Cohere convention).</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/api/models.py#L492-L499">#L492-L499</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="class" data-symbol-search="vllm_mlx.api.models.rerankresponse class vllm_mlx.api.models.rerankresponse(model: str, results: list[rerankresult], usage: rerankusage = field(default_factory=rerankusage)) response for reranking endpoint (jina/cohere convention).">
<td><a href="../api/vllm_mlx/api/models/#contract-vllm_mlx.api.models.RerankResponse"><code>vllm_mlx.api.models.RerankResponse</code></a></td>
<td>class</td>
<td><code>vllm_mlx.api.models.RerankResponse(model: str, results: list[RerankResult], usage: RerankUsage = Field(default_factory=RerankUsage))</code></td>
<td>Response for reranking endpoint (Jina/Cohere convention).</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/api/models.py#L516-L521">#L516-L521</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="class" data-symbol-search="vllm_mlx.api.models.rerankresult class vllm_mlx.api.models.rerankresult(index: int, relevance_score: float, document: dict | none = none) a single reranked document result.">
<td><a href="../api/vllm_mlx/api/models/#contract-vllm_mlx.api.models.RerankResult"><code>vllm_mlx.api.models.RerankResult</code></a></td>
<td>class</td>
<td><code>vllm_mlx.api.models.RerankResult(index: int, relevance_score: float, document: dict | None = None)</code></td>
<td>A single reranked document result.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/api/models.py#L502-L507">#L502-L507</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="class" data-symbol-search="vllm_mlx.api.models.rerankusage class vllm_mlx.api.models.rerankusage(total_tokens: int = 0) token usage for rerank requests.">
<td><a href="../api/vllm_mlx/api/models/#contract-vllm_mlx.api.models.RerankUsage"><code>vllm_mlx.api.models.RerankUsage</code></a></td>
<td>class</td>
<td><code>vllm_mlx.api.models.RerankUsage(total_tokens: int = 0)</code></td>
<td>Token usage for rerank requests.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/api/models.py#L510-L513">#L510-L513</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="class" data-symbol-search="vllm_mlx.api.models.responseformat class vllm_mlx.api.models.responseformat(type: str = &#x27;text&#x27;, json_schema: responseformatjsonschema | none = none) response format specification for structured output.">
<td><a href="../api/vllm_mlx/api/models/#contract-vllm_mlx.api.models.ResponseFormat"><code>vllm_mlx.api.models.ResponseFormat</code></a></td>
<td>class</td>
<td><code>vllm_mlx.api.models.ResponseFormat(type: str = &#x27;text&#x27;, json_schema: ResponseFormatJsonSchema | None = None)</code></td>
<td>Response format specification for structured output.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/api/models.py#L145-L156">#L145-L156</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="class" data-symbol-search="vllm_mlx.api.models.responseformatjsonschema class vllm_mlx.api.models.responseformatjsonschema(name: str, description: str | none = none, schema_: dict = field(alias=&#x27;schema&#x27;), strict: bool | none = false) json schema definition for structured output.">
<td><a href="../api/vllm_mlx/api/models/#contract-vllm_mlx.api.models.ResponseFormatJsonSchema"><code>vllm_mlx.api.models.ResponseFormatJsonSchema</code></a></td>
<td>class</td>
<td><code>vllm_mlx.api.models.ResponseFormatJsonSchema(name: str, description: str | None = None, schema_: dict = Field(alias=&#x27;schema&#x27;), strict: bool | None = False)</code></td>
<td>JSON Schema definition for structured output.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/api/models.py#L131-L142">#L131-L142</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="class" data-symbol-search="vllm_mlx.api.models.responseformatjsonschema.config class vllm_mlx.api.models.responseformatjsonschema.config() allow callers to populate the aliased ``schema`` field by name.">
<td><a href="../api/vllm_mlx/api/models/#contract-vllm_mlx.api.models.ResponseFormatJsonSchema.Config"><code>vllm_mlx.api.models.ResponseFormatJsonSchema.Config</code></a></td>
<td>class</td>
<td><code>vllm_mlx.api.models.ResponseFormatJsonSchema.Config()</code></td>
<td>Allow callers to populate the aliased ``schema`` field by name.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/api/models.py#L139-L142">#L139-L142</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="class" data-symbol-search="vllm_mlx.api.models.streamoptions class vllm_mlx.api.models.streamoptions(include_usage: bool = false) options for streaming responses.">
<td><a href="../api/vllm_mlx/api/models/#contract-vllm_mlx.api.models.StreamOptions"><code>vllm_mlx.api.models.StreamOptions</code></a></td>
<td>class</td>
<td><code>vllm_mlx.api.models.StreamOptions(include_usage: bool = False)</code></td>
<td>Options for streaming responses.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/api/models.py#L164-L167">#L164-L167</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="class" data-symbol-search="vllm_mlx.api.models.toolcall class vllm_mlx.api.models.toolcall(id: str, type: str = &#x27;function&#x27;, function: functioncall) a tool call from the model.">
<td><a href="../api/vllm_mlx/api/models/#contract-vllm_mlx.api.models.ToolCall"><code>vllm_mlx.api.models.ToolCall</code></a></td>
<td>class</td>
<td><code>vllm_mlx.api.models.ToolCall(id: str, type: str = &#x27;function&#x27;, function: FunctionCall)</code></td>
<td>A tool call from the model.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/api/models.py#L102-L107">#L102-L107</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="class" data-symbol-search="vllm_mlx.api.models.tooldefinition class vllm_mlx.api.models.tooldefinition(type: str = &#x27;function&#x27;, function: dict) definition of a tool that can be called by the model.">
<td><a href="../api/vllm_mlx/api/models/#contract-vllm_mlx.api.models.ToolDefinition"><code>vllm_mlx.api.models.ToolDefinition</code></a></td>
<td>class</td>
<td><code>vllm_mlx.api.models.ToolDefinition(type: str = &#x27;function&#x27;, function: dict)</code></td>
<td>Definition of a tool that can be called by the model.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/api/models.py#L110-L123">#L110-L123</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.api.models.tooldefinition._validate_openai_function_name method vllm_mlx.api.models.tooldefinition._validate_openai_function_name() -&gt; not annotated method `tooldefinition._validate_openai_function_name` calls `self.function.get`, `isinstance`, `_openai_function_name_re.fullmatch`, `valueerror`; can raise `valueerror`; returns `self`.">
<td><a href="../api/vllm_mlx/api/models/#contract-vllm_mlx.api.models.ToolDefinition._validate_openai_function_name"><code>vllm_mlx.api.models.ToolDefinition._validate_openai_function_name</code></a></td>
<td>method</td>
<td><code>vllm_mlx.api.models.ToolDefinition._validate_openai_function_name() -&gt; not annotated</code></td>
<td>Method `ToolDefinition._validate_openai_function_name` calls `self.function.get`, `isinstance`, `_OPENAI_FUNCTION_NAME_RE.fullmatch`, `ValueError`; can raise `ValueError`; returns `self`.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/api/models.py#L117-L123">#L117-L123</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="class" data-symbol-search="vllm_mlx.api.models.usage class vllm_mlx.api.models.usage(prompt_tokens: int = 0, completion_tokens: int = 0, total_tokens: int = 0) token usage statistics.">
<td><a href="../api/vllm_mlx/api/models/#contract-vllm_mlx.api.models.Usage"><code>vllm_mlx.api.models.Usage</code></a></td>
<td>class</td>
<td><code>vllm_mlx.api.models.Usage(prompt_tokens: int = 0, completion_tokens: int = 0, total_tokens: int = 0)</code></td>
<td>Token usage statistics.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/api/models.py#L259-L264">#L259-L264</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="class" data-symbol-search="vllm_mlx.api.models.videourl class vllm_mlx.api.models.videourl(url: str) video url.">
<td><a href="../api/vllm_mlx/api/models/#contract-vllm_mlx.api.models.VideoUrl"><code>vllm_mlx.api.models.VideoUrl</code></a></td>
<td>class</td>
<td><code>vllm_mlx.api.models.VideoUrl(url: str)</code></td>
<td>Video URL.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/api/models.py#L31-L34">#L31-L34</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.api.prompt_canonicalize.canonicalize_system_messages function vllm_mlx.api.prompt_canonicalize.canonicalize_system_messages(messages: list[dict]) -&gt; list[dict] canonicalize string content on system-role messages without mutation.">
<td><a href="../api/vllm_mlx/api/prompt_canonicalize/#contract-vllm_mlx.api.prompt_canonicalize.canonicalize_system_messages"><code>vllm_mlx.api.prompt_canonicalize.canonicalize_system_messages</code></a></td>
<td>function</td>
<td><code>vllm_mlx.api.prompt_canonicalize.canonicalize_system_messages(messages: list[dict]) -&gt; list[dict]</code></td>
<td>Canonicalize string content on system-role messages without mutation.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/api/prompt_canonicalize.py#L27-L51">#L27-L51</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.api.prompt_canonicalize.canonicalize_system_prompt function vllm_mlx.api.prompt_canonicalize.canonicalize_system_prompt(text: str | none) -&gt; str | none remove known non-semantic volatile lines from system prompt text.">
<td><a href="../api/vllm_mlx/api/prompt_canonicalize/#contract-vllm_mlx.api.prompt_canonicalize.canonicalize_system_prompt"><code>vllm_mlx.api.prompt_canonicalize.canonicalize_system_prompt</code></a></td>
<td>function</td>
<td><code>vllm_mlx.api.prompt_canonicalize.canonicalize_system_prompt(text: str | None) -&gt; str | None</code></td>
<td>Remove known non-semantic volatile lines from system prompt text.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/api/prompt_canonicalize.py#L17-L24">#L17-L24</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="class" data-symbol-search="vllm_mlx.api.responses_models.responsecompletedevent class vllm_mlx.api.responses_models.responsecompletedevent() carry the terminal completed response object.">
<td><a href="../api/vllm_mlx/api/responses_models/#contract-vllm_mlx.api.responses_models.ResponseCompletedEvent"><code>vllm_mlx.api.responses_models.ResponseCompletedEvent</code></a></td>
<td>class</td>
<td><code>vllm_mlx.api.responses_models.ResponseCompletedEvent()</code></td>
<td>Carry the terminal completed response object.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/api/responses_models.py#L249-L253">#L249-L253</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="class" data-symbol-search="vllm_mlx.api.responses_models.responsecontentpartaddedevent class vllm_mlx.api.responses_models.responsecontentpartaddedevent() announce a content part attached to an output item.">
<td><a href="../api/vllm_mlx/api/responses_models/#contract-vllm_mlx.api.responses_models.ResponseContentPartAddedEvent"><code>vllm_mlx.api.responses_models.ResponseContentPartAddedEvent</code></a></td>
<td>class</td>
<td><code>vllm_mlx.api.responses_models.ResponseContentPartAddedEvent()</code></td>
<td>Announce a content part attached to an output item.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/api/responses_models.py#L272-L279">#L272-L279</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="class" data-symbol-search="vllm_mlx.api.responses_models.responsecontentpartdoneevent class vllm_mlx.api.responses_models.responsecontentpartdoneevent() signal that an output item&#x27;s content part is complete.">
<td><a href="../api/vllm_mlx/api/responses_models/#contract-vllm_mlx.api.responses_models.ResponseContentPartDoneEvent"><code>vllm_mlx.api.responses_models.ResponseContentPartDoneEvent</code></a></td>
<td>class</td>
<td><code>vllm_mlx.api.responses_models.ResponseContentPartDoneEvent()</code></td>
<td>Signal that an output item&#x27;s content part is complete.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/api/responses_models.py#L282-L289">#L282-L289</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="class" data-symbol-search="vllm_mlx.api.responses_models.responsecreatedevent class vllm_mlx.api.responses_models.responsecreatedevent() signal that a response object has been created.">
<td><a href="../api/vllm_mlx/api/responses_models/#contract-vllm_mlx.api.responses_models.ResponseCreatedEvent"><code>vllm_mlx.api.responses_models.ResponseCreatedEvent</code></a></td>
<td>class</td>
<td><code>vllm_mlx.api.responses_models.ResponseCreatedEvent()</code></td>
<td>Signal that a response object has been created.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/api/responses_models.py#L235-L239">#L235-L239</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="class" data-symbol-search="vllm_mlx.api.responses_models.responseerror class vllm_mlx.api.responses_models.responseerror(code: str, message: str) error payload.">
<td><a href="../api/vllm_mlx/api/responses_models/#contract-vllm_mlx.api.responses_models.ResponseError"><code>vllm_mlx.api.responses_models.ResponseError</code></a></td>
<td>class</td>
<td><code>vllm_mlx.api.responses_models.ResponseError(code: str, message: str)</code></td>
<td>Error payload.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/api/responses_models.py#L137-L141">#L137-L141</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="class" data-symbol-search="vllm_mlx.api.responses_models.responsefunctioncallargumentsdeltaevent class vllm_mlx.api.responses_models.responsefunctioncallargumentsdeltaevent() carry an incremental fragment of function-call arguments.">
<td><a href="../api/vllm_mlx/api/responses_models/#contract-vllm_mlx.api.responses_models.ResponseFunctionCallArgumentsDeltaEvent"><code>vllm_mlx.api.responses_models.ResponseFunctionCallArgumentsDeltaEvent</code></a></td>
<td>class</td>
<td><code>vllm_mlx.api.responses_models.ResponseFunctionCallArgumentsDeltaEvent()</code></td>
<td>Carry an incremental fragment of function-call arguments.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/api/responses_models.py#L334-L342">#L334-L342</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="class" data-symbol-search="vllm_mlx.api.responses_models.responsefunctioncallitem class vllm_mlx.api.responses_models.responsefunctioncallitem(id: str | none = none, type: literal[&#x27;function_call&#x27;] = &#x27;function_call&#x27;, call_id: str, name: str, arguments: str, status: literal[&#x27;in_progress&#x27;, &#x27;completed&#x27;, &#x27;incomplete&#x27;] = &#x27;completed&#x27;) a function call output item.">
<td><a href="../api/vllm_mlx/api/responses_models/#contract-vllm_mlx.api.responses_models.ResponseFunctionCallItem"><code>vllm_mlx.api.responses_models.ResponseFunctionCallItem</code></a></td>
<td>class</td>
<td><code>vllm_mlx.api.responses_models.ResponseFunctionCallItem(id: str | None = None, type: Literal[&#x27;function_call&#x27;] = &#x27;function_call&#x27;, call_id: str, name: str, arguments: str, status: Literal[&#x27;in_progress&#x27;, &#x27;completed&#x27;, &#x27;incomplete&#x27;] = &#x27;completed&#x27;)</code></td>
<td>A function call output item.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/api/responses_models.py#L80-L88">#L80-L88</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="class" data-symbol-search="vllm_mlx.api.responses_models.responsefunctioncalloutputitem class vllm_mlx.api.responses_models.responsefunctioncalloutputitem(type: literal[&#x27;function_call_output&#x27;] = &#x27;function_call_output&#x27;, call_id: str, output: str) a tool result item passed back into a later request.">
<td><a href="../api/vllm_mlx/api/responses_models/#contract-vllm_mlx.api.responses_models.ResponseFunctionCallOutputItem"><code>vllm_mlx.api.responses_models.ResponseFunctionCallOutputItem</code></a></td>
<td>class</td>
<td><code>vllm_mlx.api.responses_models.ResponseFunctionCallOutputItem(type: Literal[&#x27;function_call_output&#x27;] = &#x27;function_call_output&#x27;, call_id: str, output: str)</code></td>
<td>A tool result item passed back into a later request.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/api/responses_models.py#L91-L96">#L91-L96</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="class" data-symbol-search="vllm_mlx.api.responses_models.responsefunctiontool class vllm_mlx.api.responses_models.responsefunctiontool(type: literal[&#x27;function&#x27;] = &#x27;function&#x27;, name: str, description: str | none = &#x27;&#x27;, parameters: dict = field(default_factory=lambda: {&#x27;type&#x27;: &#x27;object&#x27;, &#x27;properties&#x27;: {}}), strict: bool = false) a function tool definition.">
<td><a href="../api/vllm_mlx/api/responses_models/#contract-vllm_mlx.api.responses_models.ResponseFunctionTool"><code>vllm_mlx.api.responses_models.ResponseFunctionTool</code></a></td>
<td>class</td>
<td><code>vllm_mlx.api.responses_models.ResponseFunctionTool(type: Literal[&#x27;function&#x27;] = &#x27;function&#x27;, name: str, description: str | None = &#x27;&#x27;, parameters: dict = Field(default_factory=lambda: {&#x27;type&#x27;: &#x27;object&#x27;, &#x27;properties&#x27;: {}}), strict: bool = False)</code></td>
<td>A function tool definition.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/api/responses_models.py#L99-L108">#L99-L108</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="class" data-symbol-search="vllm_mlx.api.responses_models.responseincompletedetails class vllm_mlx.api.responses_models.responseincompletedetails(reason: str) incomplete response details.">
<td><a href="../api/vllm_mlx/api/responses_models/#contract-vllm_mlx.api.responses_models.ResponseIncompleteDetails"><code>vllm_mlx.api.responses_models.ResponseIncompleteDetails</code></a></td>
<td>class</td>
<td><code>vllm_mlx.api.responses_models.ResponseIncompleteDetails(reason: str)</code></td>
<td>Incomplete response details.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/api/responses_models.py#L144-L147">#L144-L147</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="class" data-symbol-search="vllm_mlx.api.responses_models.responseinprogressevent class vllm_mlx.api.responses_models.responseinprogressevent() signal that response generation is in progress.">
<td><a href="../api/vllm_mlx/api/responses_models/#contract-vllm_mlx.api.responses_models.ResponseInProgressEvent"><code>vllm_mlx.api.responses_models.ResponseInProgressEvent</code></a></td>
<td>class</td>
<td><code>vllm_mlx.api.responses_models.ResponseInProgressEvent()</code></td>
<td>Signal that response generation is in progress.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/api/responses_models.py#L242-L246">#L242-L246</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="class" data-symbol-search="vllm_mlx.api.responses_models.responsemessageitem class vllm_mlx.api.responses_models.responsemessageitem(id: str | none = none, type: literal[&#x27;message&#x27;] = &#x27;message&#x27;, role: literal[&#x27;system&#x27;, &#x27;user&#x27;, &#x27;assistant&#x27;, &#x27;developer&#x27;] = &#x27;assistant&#x27;, content: str | list[responsetextcontentpart] = field(default_factory=list), status: literal[&#x27;in_progress&#x27;, &#x27;completed&#x27;, &#x27;incomplete&#x27;] | none = &#x27;completed&#x27;) a responses api message item.">
<td><a href="../api/vllm_mlx/api/responses_models/#contract-vllm_mlx.api.responses_models.ResponseMessageItem"><code>vllm_mlx.api.responses_models.ResponseMessageItem</code></a></td>
<td>class</td>
<td><code>vllm_mlx.api.responses_models.ResponseMessageItem(id: str | None = None, type: Literal[&#x27;message&#x27;] = &#x27;message&#x27;, role: Literal[&#x27;system&#x27;, &#x27;user&#x27;, &#x27;assistant&#x27;, &#x27;developer&#x27;] = &#x27;assistant&#x27;, content: str | list[ResponseTextContentPart] = Field(default_factory=list), status: Literal[&#x27;in_progress&#x27;, &#x27;completed&#x27;, &#x27;incomplete&#x27;] | None = &#x27;completed&#x27;)</code></td>
<td>A Responses API message item.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/api/responses_models.py#L60-L67">#L60-L67</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="class" data-symbol-search="vllm_mlx.api.responses_models.responseobject class vllm_mlx.api.responses_models.responseobject(id: str = field(default_factory=lambda: f&#x27;resp_{uuid.uuid4().hex}&#x27;), object: literal[&#x27;response&#x27;] = &#x27;response&#x27;, created_at: int = field(default_factory=lambda: int(time.time())), status: literal[&#x27;completed&#x27;, &#x27;failed&#x27;, &#x27;incomplete&#x27;, &#x27;in_progress&#x27;] = &#x27;completed&#x27;, background: bool = false, error: responseerror | none = none, incomplete_details: responseincompletedetails | none = none, instructions: str | none = none, max_output_tokens: int | none = none, max_tool_calls: int | none = none, metadata: dict = field(default_factory=dict), model: str, output: list[responsemessageitem | responsereasoningitem | responsefunctioncallitem] = field(default_factory=list), parallel_tool_calls: bool = true, previous_response_id: str | none = none, text: responsetextconfig = field(default_factory=responsetextconfig), tool_choice: str | dict | none = &#x27;auto&#x27;, tools: list[responsefunctiontool | dict] = field(default_factory=list), top_p: float = 1.0, temperature: float | none = none, truncation: str = &#x27;disabled&#x27;, usage: responsesusage | none = none, user: str | none = none, store: bool = true) response object for /v1/responses.">
<td><a href="../api/vllm_mlx/api/responses_models/#contract-vllm_mlx.api.responses_models.ResponseObject"><code>vllm_mlx.api.responses_models.ResponseObject</code></a></td>
<td>class</td>
<td><code>vllm_mlx.api.responses_models.ResponseObject(id: str = Field(default_factory=lambda: f&#x27;resp_{uuid.uuid4().hex}&#x27;), object: Literal[&#x27;response&#x27;] = &#x27;response&#x27;, created_at: int = Field(default_factory=lambda: int(time.time())), status: Literal[&#x27;completed&#x27;, &#x27;failed&#x27;, &#x27;incomplete&#x27;, &#x27;in_progress&#x27;] = &#x27;completed&#x27;, background: bool = False, error: ResponseError | None = None, incomplete_details: ResponseIncompleteDetails | None = None, instructions: str | None = None, max_output_tokens: int | None = None, max_tool_calls: int | None = None, metadata: dict = Field(default_factory=dict), model: str, output: list[ResponseMessageItem | ResponseReasoningItem | ResponseFunctionCallItem] = Field(default_factory=list), parallel_tool_calls: bool = True, previous_response_id: str | None = None, text: ResponseTextConfig = Field(default_factory=ResponseTextConfig), tool_choice: str | dict | None = &#x27;auto&#x27;, tools: list[ResponseFunctionTool | dict] = Field(default_factory=list), top_p: float = 1.0, temperature: float | None = None, truncation: str = &#x27;disabled&#x27;, usage: ResponsesUsage | None = None, user: str | None = None, store: bool = True)</code></td>
<td>Response object for /v1/responses.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/api/responses_models.py#L182-L226">#L182-L226</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.api.responses_models.responseobject.output_text method vllm_mlx.api.responses_models.responseobject.output_text() -&gt; str concatenate assistant text content into the convenience field.">
<td><a href="../api/vllm_mlx/api/responses_models/#contract-vllm_mlx.api.responses_models.ResponseObject.output_text"><code>vllm_mlx.api.responses_models.ResponseObject.output_text</code></a></td>
<td>method</td>
<td><code>vllm_mlx.api.responses_models.ResponseObject.output_text() -&gt; str</code></td>
<td>Concatenate assistant text content into the convenience field.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/api/responses_models.py#L214-L226">#L214-L226</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="class" data-symbol-search="vllm_mlx.api.responses_models.responseoutputitemaddedevent class vllm_mlx.api.responses_models.responseoutputitemaddedevent() announce a newly added response output item.">
<td><a href="../api/vllm_mlx/api/responses_models/#contract-vllm_mlx.api.responses_models.ResponseOutputItemAddedEvent"><code>vllm_mlx.api.responses_models.ResponseOutputItemAddedEvent</code></a></td>
<td>class</td>
<td><code>vllm_mlx.api.responses_models.ResponseOutputItemAddedEvent()</code></td>
<td>Announce a newly added response output item.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/api/responses_models.py#L256-L261">#L256-L261</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="class" data-symbol-search="vllm_mlx.api.responses_models.responseoutputitemdoneevent class vllm_mlx.api.responses_models.responseoutputitemdoneevent() signal that a response output item is complete.">
<td><a href="../api/vllm_mlx/api/responses_models/#contract-vllm_mlx.api.responses_models.ResponseOutputItemDoneEvent"><code>vllm_mlx.api.responses_models.ResponseOutputItemDoneEvent</code></a></td>
<td>class</td>
<td><code>vllm_mlx.api.responses_models.ResponseOutputItemDoneEvent()</code></td>
<td>Signal that a response output item is complete.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/api/responses_models.py#L264-L269">#L264-L269</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="class" data-symbol-search="vllm_mlx.api.responses_models.responseoutputtextdeltaevent class vllm_mlx.api.responses_models.responseoutputtextdeltaevent() carry an incremental final-answer text fragment.">
<td><a href="../api/vllm_mlx/api/responses_models/#contract-vllm_mlx.api.responses_models.ResponseOutputTextDeltaEvent"><code>vllm_mlx.api.responses_models.ResponseOutputTextDeltaEvent</code></a></td>
<td>class</td>
<td><code>vllm_mlx.api.responses_models.ResponseOutputTextDeltaEvent()</code></td>
<td>Carry an incremental final-answer text fragment.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/api/responses_models.py#L292-L300">#L292-L300</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="class" data-symbol-search="vllm_mlx.api.responses_models.responseoutputtextdoneevent class vllm_mlx.api.responses_models.responseoutputtextdoneevent() carry the complete final-answer text for one content part.">
<td><a href="../api/vllm_mlx/api/responses_models/#contract-vllm_mlx.api.responses_models.ResponseOutputTextDoneEvent"><code>vllm_mlx.api.responses_models.ResponseOutputTextDoneEvent</code></a></td>
<td>class</td>
<td><code>vllm_mlx.api.responses_models.ResponseOutputTextDoneEvent()</code></td>
<td>Carry the complete final-answer text for one content part.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/api/responses_models.py#L303-L311">#L303-L311</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="class" data-symbol-search="vllm_mlx.api.responses_models.responsereasoningconfig class vllm_mlx.api.responses_models.responsereasoningconfig(effort: literal[&#x27;none&#x27;, &#x27;minimal&#x27;, &#x27;low&#x27;, &#x27;medium&#x27;, &#x27;high&#x27;, &#x27;xhigh&#x27;] | none = none) reasoning configuration.">
<td><a href="../api/vllm_mlx/api/responses_models/#contract-vllm_mlx.api.responses_models.ResponseReasoningConfig"><code>vllm_mlx.api.responses_models.ResponseReasoningConfig</code></a></td>
<td>class</td>
<td><code>vllm_mlx.api.responses_models.ResponseReasoningConfig(effort: Literal[&#x27;none&#x27;, &#x27;minimal&#x27;, &#x27;low&#x27;, &#x27;medium&#x27;, &#x27;high&#x27;, &#x27;xhigh&#x27;] | None = None)</code></td>
<td>Reasoning configuration.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/api/responses_models.py#L31-L34">#L31-L34</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="class" data-symbol-search="vllm_mlx.api.responses_models.responsereasoningitem class vllm_mlx.api.responses_models.responsereasoningitem(id: str | none = none, type: literal[&#x27;reasoning&#x27;] = &#x27;reasoning&#x27;, summary: list[responsereasoningsummarytextpart] = field(default_factory=list), content: list[responsereasoningtextpart] = field(default_factory=list), status: literal[&#x27;in_progress&#x27;, &#x27;completed&#x27;, &#x27;incomplete&#x27;] | none = &#x27;completed&#x27;) a reasoning output item.">
<td><a href="../api/vllm_mlx/api/responses_models/#contract-vllm_mlx.api.responses_models.ResponseReasoningItem"><code>vllm_mlx.api.responses_models.ResponseReasoningItem</code></a></td>
<td>class</td>
<td><code>vllm_mlx.api.responses_models.ResponseReasoningItem(id: str | None = None, type: Literal[&#x27;reasoning&#x27;] = &#x27;reasoning&#x27;, summary: list[ResponseReasoningSummaryTextPart] = Field(default_factory=list), content: list[ResponseReasoningTextPart] = Field(default_factory=list), status: Literal[&#x27;in_progress&#x27;, &#x27;completed&#x27;, &#x27;incomplete&#x27;] | None = &#x27;completed&#x27;)</code></td>
<td>A reasoning output item.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/api/responses_models.py#L70-L77">#L70-L77</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="class" data-symbol-search="vllm_mlx.api.responses_models.responsereasoningsummarytextpart class vllm_mlx.api.responses_models.responsereasoningsummarytextpart(type: literal[&#x27;summary_text&#x27;] = &#x27;summary_text&#x27;, text: str) a reasoning summary item.">
<td><a href="../api/vllm_mlx/api/responses_models/#contract-vllm_mlx.api.responses_models.ResponseReasoningSummaryTextPart"><code>vllm_mlx.api.responses_models.ResponseReasoningSummaryTextPart</code></a></td>
<td>class</td>
<td><code>vllm_mlx.api.responses_models.ResponseReasoningSummaryTextPart(type: Literal[&#x27;summary_text&#x27;] = &#x27;summary_text&#x27;, text: str)</code></td>
<td>A reasoning summary item.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/api/responses_models.py#L53-L57">#L53-L57</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="class" data-symbol-search="vllm_mlx.api.responses_models.responsereasoningtextdeltaevent class vllm_mlx.api.responses_models.responsereasoningtextdeltaevent() carry an incremental reasoning text fragment.">
<td><a href="../api/vllm_mlx/api/responses_models/#contract-vllm_mlx.api.responses_models.ResponseReasoningTextDeltaEvent"><code>vllm_mlx.api.responses_models.ResponseReasoningTextDeltaEvent</code></a></td>
<td>class</td>
<td><code>vllm_mlx.api.responses_models.ResponseReasoningTextDeltaEvent()</code></td>
<td>Carry an incremental reasoning text fragment.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/api/responses_models.py#L314-L321">#L314-L321</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="class" data-symbol-search="vllm_mlx.api.responses_models.responsereasoningtextdoneevent class vllm_mlx.api.responses_models.responsereasoningtextdoneevent() carry the complete reasoning text for one content part.">
<td><a href="../api/vllm_mlx/api/responses_models/#contract-vllm_mlx.api.responses_models.ResponseReasoningTextDoneEvent"><code>vllm_mlx.api.responses_models.ResponseReasoningTextDoneEvent</code></a></td>
<td>class</td>
<td><code>vllm_mlx.api.responses_models.ResponseReasoningTextDoneEvent()</code></td>
<td>Carry the complete reasoning text for one content part.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/api/responses_models.py#L324-L331">#L324-L331</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="class" data-symbol-search="vllm_mlx.api.responses_models.responsereasoningtextpart class vllm_mlx.api.responses_models.responsereasoningtextpart(type: literal[&#x27;reasoning_text&#x27;] = &#x27;reasoning_text&#x27;, text: str) a reasoning text content part.">
<td><a href="../api/vllm_mlx/api/responses_models/#contract-vllm_mlx.api.responses_models.ResponseReasoningTextPart"><code>vllm_mlx.api.responses_models.ResponseReasoningTextPart</code></a></td>
<td>class</td>
<td><code>vllm_mlx.api.responses_models.ResponseReasoningTextPart(type: Literal[&#x27;reasoning_text&#x27;] = &#x27;reasoning_text&#x27;, text: str)</code></td>
<td>A reasoning text content part.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/api/responses_models.py#L46-L50">#L46-L50</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="class" data-symbol-search="vllm_mlx.api.responses_models.responseseventbase class vllm_mlx.api.responses_models.responseseventbase(sequence_number: int) base event fields.">
<td><a href="../api/vllm_mlx/api/responses_models/#contract-vllm_mlx.api.responses_models.ResponsesEventBase"><code>vllm_mlx.api.responses_models.ResponsesEventBase</code></a></td>
<td>class</td>
<td><code>vllm_mlx.api.responses_models.ResponsesEventBase(sequence_number: int)</code></td>
<td>Base event fields.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/api/responses_models.py#L229-L232">#L229-L232</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="class" data-symbol-search="vllm_mlx.api.responses_models.responsesinputtokendetails class vllm_mlx.api.responses_models.responsesinputtokendetails(cached_tokens: int = 0) input token breakdown.">
<td><a href="../api/vllm_mlx/api/responses_models/#contract-vllm_mlx.api.responses_models.ResponsesInputTokenDetails"><code>vllm_mlx.api.responses_models.ResponsesInputTokenDetails</code></a></td>
<td>class</td>
<td><code>vllm_mlx.api.responses_models.ResponsesInputTokenDetails(cached_tokens: int = 0)</code></td>
<td>Input token breakdown.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/api/responses_models.py#L111-L114">#L111-L114</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="class" data-symbol-search="vllm_mlx.api.responses_models.responsesoutputtokendetails class vllm_mlx.api.responses_models.responsesoutputtokendetails(reasoning_tokens: int = 0) output token breakdown.">
<td><a href="../api/vllm_mlx/api/responses_models/#contract-vllm_mlx.api.responses_models.ResponsesOutputTokenDetails"><code>vllm_mlx.api.responses_models.ResponsesOutputTokenDetails</code></a></td>
<td>class</td>
<td><code>vllm_mlx.api.responses_models.ResponsesOutputTokenDetails(reasoning_tokens: int = 0)</code></td>
<td>Output token breakdown.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/api/responses_models.py#L117-L120">#L117-L120</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="class" data-symbol-search="vllm_mlx.api.responses_models.responsesrequest class vllm_mlx.api.responses_models.responsesrequest(model: str, input: str | list[responsemessageitem | responsereasoningitem | responsefunctioncallitem | responsefunctioncalloutputitem | di…, instructions: str | none = none, max_output_tokens: int | none = none, stream: bool = false, tools: list[responsefunctiontool | dict] = field(default_factory=list), tool_choice: str | dict | none = &#x27;auto&#x27;, parallel_tool_calls: bool = true, previous_response_id: str | none = none, temperature: float | none = none, top_p: float | none = none, chat_template_kwargs: dict[str, any] | none = none, metadata: dict = field(default_factory=dict), text: responsetextconfig = field(default_factory=responsetextconfig), reasoning: responsereasoningconfig | none = none, store: bool = true, truncation: str = &#x27;disabled&#x27;, user: str | none = none) request payload for /v1/responses.">
<td><a href="../api/vllm_mlx/api/responses_models/#contract-vllm_mlx.api.responses_models.ResponsesRequest"><code>vllm_mlx.api.responses_models.ResponsesRequest</code></a></td>
<td>class</td>
<td><code>vllm_mlx.api.responses_models.ResponsesRequest(model: str, input: str | list[ResponseMessageItem | ResponseReasoningItem | ResponseFunctionCallItem | ResponseFunctionCallOutputItem | di…, instructions: str | None = None, max_output_tokens: int | None = None, stream: bool = False, tools: list[ResponseFunctionTool | dict] = Field(default_factory=list), tool_choice: str | dict | None = &#x27;auto&#x27;, parallel_tool_calls: bool = True, previous_response_id: str | None = None, temperature: float | None = None, top_p: float | None = None, chat_template_kwargs: dict[str, Any] | None = None, metadata: dict = Field(default_factory=dict), text: ResponseTextConfig = Field(default_factory=ResponseTextConfig), reasoning: ResponseReasoningConfig | None = None, store: bool = True, truncation: str = &#x27;disabled&#x27;, user: str | None = None)</code></td>
<td>Request payload for /v1/responses.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/api/responses_models.py#L150-L179">#L150-L179</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="class" data-symbol-search="vllm_mlx.api.responses_models.responsesusage class vllm_mlx.api.responses_models.responsesusage(input_tokens: int, output_tokens: int, total_tokens: int, input_tokens_details: responsesinputtokendetails = field(default_factory=responsesinputtokendetails), output_tokens_details: responsesoutputtokendetails = field(default_factory=responsesoutputtokendetails)) responses api token usage.">
<td><a href="../api/vllm_mlx/api/responses_models/#contract-vllm_mlx.api.responses_models.ResponsesUsage"><code>vllm_mlx.api.responses_models.ResponsesUsage</code></a></td>
<td>class</td>
<td><code>vllm_mlx.api.responses_models.ResponsesUsage(input_tokens: int, output_tokens: int, total_tokens: int, input_tokens_details: ResponsesInputTokenDetails = Field(default_factory=ResponsesInputTokenDetails), output_tokens_details: ResponsesOutputTokenDetails = Field(default_factory=ResponsesOutputTokenDetails))</code></td>
<td>Responses API token usage.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/api/responses_models.py#L123-L134">#L123-L134</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="class" data-symbol-search="vllm_mlx.api.responses_models.responsetextconfig class vllm_mlx.api.responses_models.responsetextconfig(format: responsetextformat = field(default_factory=responsetextformat)) text output configuration.">
<td><a href="../api/vllm_mlx/api/responses_models/#contract-vllm_mlx.api.responses_models.ResponseTextConfig"><code>vllm_mlx.api.responses_models.ResponseTextConfig</code></a></td>
<td>class</td>
<td><code>vllm_mlx.api.responses_models.ResponseTextConfig(format: ResponseTextFormat = Field(default_factory=ResponseTextFormat))</code></td>
<td>Text output configuration.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/api/responses_models.py#L25-L28">#L25-L28</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="class" data-symbol-search="vllm_mlx.api.responses_models.responsetextcontentpart class vllm_mlx.api.responses_models.responsetextcontentpart(type: literal[&#x27;text&#x27;, &#x27;input_text&#x27;, &#x27;output_text&#x27;] = &#x27;output_text&#x27;, text: str, annotations: list[dict] = field(default_factory=list), logprobs: list[dict] = field(default_factory=list)) a text content part for message items.">
<td><a href="../api/vllm_mlx/api/responses_models/#contract-vllm_mlx.api.responses_models.ResponseTextContentPart"><code>vllm_mlx.api.responses_models.ResponseTextContentPart</code></a></td>
<td>class</td>
<td><code>vllm_mlx.api.responses_models.ResponseTextContentPart(type: Literal[&#x27;text&#x27;, &#x27;input_text&#x27;, &#x27;output_text&#x27;] = &#x27;output_text&#x27;, text: str, annotations: list[dict] = Field(default_factory=list), logprobs: list[dict] = Field(default_factory=list))</code></td>
<td>A text content part for message items.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/api/responses_models.py#L37-L43">#L37-L43</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="class" data-symbol-search="vllm_mlx.api.responses_models.responsetextformat class vllm_mlx.api.responses_models.responsetextformat(type: literal[&#x27;text&#x27;, &#x27;json_object&#x27;] = &#x27;text&#x27;) output text format configuration.">
<td><a href="../api/vllm_mlx/api/responses_models/#contract-vllm_mlx.api.responses_models.ResponseTextFormat"><code>vllm_mlx.api.responses_models.ResponseTextFormat</code></a></td>
<td>class</td>
<td><code>vllm_mlx.api.responses_models.ResponseTextFormat(type: Literal[&#x27;text&#x27;, &#x27;json_object&#x27;] = &#x27;text&#x27;)</code></td>
<td>Output text format configuration.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/api/responses_models.py#L19-L22">#L19-L22</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.api.streaming._escape_json_string function vllm_mlx.api.streaming._escape_json_string(s: str) -&gt; str escape a string for json without the surrounding quotes.">
<td><a href="../api/vllm_mlx/api/streaming/#contract-vllm_mlx.api.streaming._escape_json_string"><code>vllm_mlx.api.streaming._escape_json_string</code></a></td>
<td>function</td>
<td><code>vllm_mlx.api.streaming._escape_json_string(s: str) -&gt; str</code></td>
<td>Escape a string for JSON without the surrounding quotes.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/api/streaming.py#L16-L24">#L16-L24</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="class" data-symbol-search="vllm_mlx.api.streaming.streamingjsonencoder class vllm_mlx.api.streaming.streamingjsonencoder(response_id: str, model: str, object_type: str, created: int | none = none) optimized json encoder for openai-compatible streaming responses.">
<td><a href="../api/vllm_mlx/api/streaming/#contract-vllm_mlx.api.streaming.StreamingJSONEncoder"><code>vllm_mlx.api.streaming.StreamingJSONEncoder</code></a></td>
<td>class</td>
<td><code>vllm_mlx.api.streaming.StreamingJSONEncoder(response_id: str, model: str, object_type: str, created: int | None = None)</code></td>
<td>Optimized JSON encoder for OpenAI-compatible streaming responses.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/api/streaming.py#L27-L210">#L27-L210</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.api.streaming.streamingjsonencoder.__init__ method vllm_mlx.api.streaming.streamingjsonencoder.__init__(response_id: str, model: str, object_type: str, created: int | none = none) -&gt; not annotated initialize the encoder with static response metadata.">
<td><a href="../api/vllm_mlx/api/streaming/#contract-vllm_mlx.api.streaming.StreamingJSONEncoder.__init__"><code>vllm_mlx.api.streaming.StreamingJSONEncoder.__init__</code></a></td>
<td>method</td>
<td><code>vllm_mlx.api.streaming.StreamingJSONEncoder.__init__(response_id: str, model: str, object_type: str, created: int | None = None) -&gt; not annotated</code></td>
<td>Initialize the encoder with static response metadata.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/api/streaming.py#L57-L102">#L57-L102</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.api.streaming.streamingjsonencoder.encode_chat_chunk method vllm_mlx.api.streaming.streamingjsonencoder.encode_chat_chunk(role: str | none = none, content: str | none = none, finish_reason: str | none = none, usage: dict[str, int] | none = none) -&gt; str encode a chat completion chunk using pre-computed templates.">
<td><a href="../api/vllm_mlx/api/streaming/#contract-vllm_mlx.api.streaming.StreamingJSONEncoder.encode_chat_chunk"><code>vllm_mlx.api.streaming.StreamingJSONEncoder.encode_chat_chunk</code></a></td>
<td>method</td>
<td><code>vllm_mlx.api.streaming.StreamingJSONEncoder.encode_chat_chunk(role: str | None = None, content: str | None = None, finish_reason: str | None = None, usage: dict[str, int] | None = None) -&gt; str</code></td>
<td>Encode a chat completion chunk using pre-computed templates.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/api/streaming.py#L151-L201">#L151-L201</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.api.streaming.streamingjsonencoder.encode_completion_chunk method vllm_mlx.api.streaming.streamingjsonencoder.encode_completion_chunk(text: str, index: int = 0, finish_reason: str | none = none, usage: dict[str, int] | none = none) -&gt; str encode a text completion chunk using pre-computed templates.">
<td><a href="../api/vllm_mlx/api/streaming/#contract-vllm_mlx.api.streaming.StreamingJSONEncoder.encode_completion_chunk"><code>vllm_mlx.api.streaming.StreamingJSONEncoder.encode_completion_chunk</code></a></td>
<td>method</td>
<td><code>vllm_mlx.api.streaming.StreamingJSONEncoder.encode_completion_chunk(text: str, index: int = 0, finish_reason: str | None = None, usage: dict[str, int] | None = None) -&gt; str</code></td>
<td>Encode a text completion chunk using pre-computed templates.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/api/streaming.py#L104-L149">#L104-L149</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.api.streaming.streamingjsonencoder.encode_done method vllm_mlx.api.streaming.streamingjsonencoder.encode_done() -&gt; str encode the [done] message that signals end of stream.">
<td><a href="../api/vllm_mlx/api/streaming/#contract-vllm_mlx.api.streaming.StreamingJSONEncoder.encode_done"><code>vllm_mlx.api.streaming.StreamingJSONEncoder.encode_done</code></a></td>
<td>method</td>
<td><code>vllm_mlx.api.streaming.StreamingJSONEncoder.encode_done() -&gt; str</code></td>
<td>Encode the [DONE] message that signals end of stream.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/api/streaming.py#L203-L210">#L203-L210</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.api.tool_calling._looks_like_tool_call function vllm_mlx.api.tool_calling._looks_like_tool_call(obj: any) -&gt; bool heuristic: decide whether a parsed json object really represents a tool call as opposed to user data that happens to carry a ``&quot;name&quot;`` field.">
<td><a href="../api/vllm_mlx/api/tool_calling/#contract-vllm_mlx.api.tool_calling._looks_like_tool_call"><code>vllm_mlx.api.tool_calling._looks_like_tool_call</code></a></td>
<td>function</td>
<td><code>vllm_mlx.api.tool_calling._looks_like_tool_call(obj: Any) -&gt; bool</code></td>
<td>Heuristic: decide whether a parsed JSON object really represents a tool call as opposed to user data that happens to carry a ``&quot;name&quot;`` field.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/api/tool_calling.py#L32-L57">#L32-L57</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.api.tool_calling._parse_raw_json_tool_calls function vllm_mlx.api.tool_calling._parse_raw_json_tool_calls(text: str) -&gt; optional[list[dict]] parse raw json tool calls from model output.">
<td><a href="../api/vllm_mlx/api/tool_calling/#contract-vllm_mlx.api.tool_calling._parse_raw_json_tool_calls"><code>vllm_mlx.api.tool_calling._parse_raw_json_tool_calls</code></a></td>
<td>function</td>
<td><code>vllm_mlx.api.tool_calling._parse_raw_json_tool_calls(text: str) -&gt; Optional[List[dict]]</code></td>
<td>Parse raw JSON tool calls from model output.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/api/tool_calling.py#L60-L123">#L60-L123</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.api.tool_calling._repair_truncated_json function vllm_mlx.api.tool_calling._repair_truncated_json(fragment: str) -&gt; optional[dict[str, any]] attempt to parse a json fragment whose closing brackets were cut off (e.g.">
<td><a href="../api/vllm_mlx/api/tool_calling/#contract-vllm_mlx.api.tool_calling._repair_truncated_json"><code>vllm_mlx.api.tool_calling._repair_truncated_json</code></a></td>
<td>function</td>
<td><code>vllm_mlx.api.tool_calling._repair_truncated_json(fragment: str) -&gt; Optional[Dict[str, Any]]</code></td>
<td>Attempt to parse a JSON fragment whose closing brackets were cut off (e.g.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/api/tool_calling.py#L497-L582">#L497-L582</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="nested function" data-symbol-search="vllm_mlx.api.tool_calling._repair_truncated_json._close nested function vllm_mlx.api.tool_calling._repair_truncated_json._close(text: str) -&gt; str nested function `_repair_truncated_json._close` calls `reversed`; returns `text`.">
<td><a href="../api/vllm_mlx/api/tool_calling/#contract-vllm_mlx.api.tool_calling._repair_truncated_json._close"><code>vllm_mlx.api.tool_calling._repair_truncated_json._close</code></a></td>
<td>nested function</td>
<td><code>vllm_mlx.api.tool_calling._repair_truncated_json._close(text: str) -&gt; str</code></td>
<td>Nested Function `_repair_truncated_json._close` calls `reversed`; returns `text`.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/api/tool_calling.py#L540-L543">#L540-L543</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.api.tool_calling._scan_balanced_json function vllm_mlx.api.tool_calling._scan_balanced_json(text: str, start: int) -&gt; optional[str] walk forward from ``start`` (which must point at ``{`` or ``[``) and return the substring that represents the first balanced json value, respecting strings and escapes.">
<td><a href="../api/vllm_mlx/api/tool_calling/#contract-vllm_mlx.api.tool_calling._scan_balanced_json"><code>vllm_mlx.api.tool_calling._scan_balanced_json</code></a></td>
<td>function</td>
<td><code>vllm_mlx.api.tool_calling._scan_balanced_json(text: str, start: int) -&gt; Optional[str]</code></td>
<td>Walk forward from ``start`` (which must point at ``{`` or ``[``) and return the substring that represents the first balanced JSON value, respecting strings and escapes.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/api/tool_calling.py#L459-L494">#L459-L494</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.api.tool_calling.apply_response_format_or_error function vllm_mlx.api.tool_calling.apply_response_format_or_error(text: str, response_format: object, *, ensure_ascii: bool = false) -&gt; str return canonical json content or raise for invalid response_format output.">
<td><a href="../api/vllm_mlx/api/tool_calling/#contract-vllm_mlx.api.tool_calling.apply_response_format_or_error"><code>vllm_mlx.api.tool_calling.apply_response_format_or_error</code></a></td>
<td>function</td>
<td><code>vllm_mlx.api.tool_calling.apply_response_format_or_error(text: str, response_format: object, *, ensure_ascii: bool = False) -&gt; str</code></td>
<td>Return canonical JSON content or raise for invalid response_format output.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/api/tool_calling.py#L858-L873">#L858-L873</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.api.tool_calling.build_json_logits_processor function vllm_mlx.api.tool_calling.build_json_logits_processor(response_format: responseformat | dict[str, any] | none, tokenizer: any) -&gt; not annotated build a logits processor that constrains generation to valid json matching ``response_format``.">
<td><a href="../api/vllm_mlx/api/tool_calling/#contract-vllm_mlx.api.tool_calling.build_json_logits_processor"><code>vllm_mlx.api.tool_calling.build_json_logits_processor</code></a></td>
<td>function</td>
<td><code>vllm_mlx.api.tool_calling.build_json_logits_processor(response_format: ResponseFormat | dict[str, Any] | None, tokenizer: Any) -&gt; not annotated</code></td>
<td>Build a logits processor that constrains generation to valid JSON matching ``response_format``.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/api/tool_calling.py#L956-L1035">#L956-L1035</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.api.tool_calling.build_json_system_prompt function vllm_mlx.api.tool_calling.build_json_system_prompt(response_format: optional[union[responseformat, dict[str, any]]] = none, *, thinking_model: bool = false) -&gt; optional[str] build a system prompt instruction for json output.">
<td><a href="../api/vllm_mlx/api/tool_calling/#contract-vllm_mlx.api.tool_calling.build_json_system_prompt"><code>vllm_mlx.api.tool_calling.build_json_system_prompt</code></a></td>
<td>function</td>
<td><code>vllm_mlx.api.tool_calling.build_json_system_prompt(response_format: Optional[Union[ResponseFormat, Dict[str, Any]]] = None, *, thinking_model: bool = False) -&gt; Optional[str]</code></td>
<td>Build a system prompt instruction for JSON output.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/api/tool_calling.py#L876-L953">#L876-L953</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.api.tool_calling.convert_tools_for_template function vllm_mlx.api.tool_calling.convert_tools_for_template(tools: optional[list]) -&gt; optional[list[dict]] convert openai tools format to format expected by tokenizer.apply_chat_template.">
<td><a href="../api/vllm_mlx/api/tool_calling/#contract-vllm_mlx.api.tool_calling.convert_tools_for_template"><code>vllm_mlx.api.tool_calling.convert_tools_for_template</code></a></td>
<td>function</td>
<td><code>vllm_mlx.api.tool_calling.convert_tools_for_template(tools: Optional[List]) -&gt; Optional[List[dict]]</code></td>
<td>Convert OpenAI tools format to format expected by tokenizer.apply_chat_template.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/api/tool_calling.py#L354-L409">#L354-L409</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.api.tool_calling.extract_json_from_text function vllm_mlx.api.tool_calling.extract_json_from_text(text: str) -&gt; optional[dict[str, any]] extract json from model output text.">
<td><a href="../api/vllm_mlx/api/tool_calling/#contract-vllm_mlx.api.tool_calling.extract_json_from_text"><code>vllm_mlx.api.tool_calling.extract_json_from_text</code></a></td>
<td>function</td>
<td><code>vllm_mlx.api.tool_calling.extract_json_from_text(text: str) -&gt; Optional[Dict[str, Any]]</code></td>
<td>Extract JSON from model output text.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/api/tool_calling.py#L585-L666">#L585-L666</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.api.tool_calling.format_tool_call_for_message function vllm_mlx.api.tool_calling.format_tool_call_for_message(tool_call: toolcall) -&gt; dict format a toolcall object for inclusion in a message.">
<td><a href="../api/vllm_mlx/api/tool_calling/#contract-vllm_mlx.api.tool_calling.format_tool_call_for_message"><code>vllm_mlx.api.tool_calling.format_tool_call_for_message</code></a></td>
<td>function</td>
<td><code>vllm_mlx.api.tool_calling.format_tool_call_for_message(tool_call: ToolCall) -&gt; dict</code></td>
<td>Format a ToolCall object for inclusion in a message.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/api/tool_calling.py#L412-L429">#L412-L429</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="class" data-symbol-search="vllm_mlx.api.tool_calling.invalidresponseformatoutput class vllm_mlx.api.tool_calling.invalidresponseformatoutput(message: str) raised when generated content does not satisfy response_format.">
<td><a href="../api/vllm_mlx/api/tool_calling/#contract-vllm_mlx.api.tool_calling.InvalidResponseFormatOutput"><code>vllm_mlx.api.tool_calling.InvalidResponseFormatOutput</code></a></td>
<td>class</td>
<td><code>vllm_mlx.api.tool_calling.InvalidResponseFormatOutput(message: str)</code></td>
<td>Raised when generated content does not satisfy response_format.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/api/tool_calling.py#L24-L29">#L24-L29</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.api.tool_calling.invalidresponseformatoutput.__init__ method vllm_mlx.api.tool_calling.invalidresponseformatoutput.__init__(message: str) -&gt; not annotated method `invalidresponseformatoutput.__init__` updates `self.message`; calls `super().__init__`, `super`.">
<td><a href="../api/vllm_mlx/api/tool_calling/#contract-vllm_mlx.api.tool_calling.InvalidResponseFormatOutput.__init__"><code>vllm_mlx.api.tool_calling.InvalidResponseFormatOutput.__init__</code></a></td>
<td>method</td>
<td><code>vllm_mlx.api.tool_calling.InvalidResponseFormatOutput.__init__(message: str) -&gt; not annotated</code></td>
<td>Method `InvalidResponseFormatOutput.__init__` updates `self.message`; calls `super().__init__`, `super`.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/api/tool_calling.py#L27-L29">#L27-L29</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.api.tool_calling.parse_json_output function vllm_mlx.api.tool_calling.parse_json_output(text: str, response_format: optional[union[responseformat, dict[str, any]]] = none) -&gt; tuple[str, optional[dict[str, any]], bool, optional[str]] parse json from model output when response_format is set.">
<td><a href="../api/vllm_mlx/api/tool_calling/#contract-vllm_mlx.api.tool_calling.parse_json_output"><code>vllm_mlx.api.tool_calling.parse_json_output</code></a></td>
<td>function</td>
<td><code>vllm_mlx.api.tool_calling.parse_json_output(text: str, response_format: Optional[Union[ResponseFormat, Dict[str, Any]]] = None) -&gt; Tuple[str, Optional[Dict[str, Any]], bool, Optional[str]]</code></td>
<td>Parse JSON from model output when response_format is set.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/api/tool_calling.py#L790-L855">#L790-L855</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.api.tool_calling.parse_tool_calls function vllm_mlx.api.tool_calling.parse_tool_calls(text: str, request: dict[str, any] | none = none) -&gt; tuple[str, optional[list[toolcall]]] parse tool calls from model output.">
<td><a href="../api/vllm_mlx/api/tool_calling/#contract-vllm_mlx.api.tool_calling.parse_tool_calls"><code>vllm_mlx.api.tool_calling.parse_tool_calls</code></a></td>
<td>function</td>
<td><code>vllm_mlx.api.tool_calling.parse_tool_calls(text: str, request: dict[str, Any] | None = None) -&gt; Tuple[str, Optional[List[ToolCall]]]</code></td>
<td>Parse tool calls from model output.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/api/tool_calling.py#L126-L351">#L126-L351</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="class" data-symbol-search="vllm_mlx.api.tool_calling.streamingjsonfencestripper class vllm_mlx.api.tool_calling.streamingjsonfencestripper() strip markdown code fences from streamed content when response_format is set.">
<td><a href="../api/vllm_mlx/api/tool_calling/#contract-vllm_mlx.api.tool_calling.StreamingJsonFenceStripper"><code>vllm_mlx.api.tool_calling.StreamingJsonFenceStripper</code></a></td>
<td>class</td>
<td><code>vllm_mlx.api.tool_calling.StreamingJsonFenceStripper()</code></td>
<td>Strip markdown code fences from streamed content when response_format is set.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/api/tool_calling.py#L669-L787">#L669-L787</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.api.tool_calling.streamingjsonfencestripper.__init__ method vllm_mlx.api.tool_calling.streamingjsonfencestripper.__init__() -&gt; none method `streamingjsonfencestripper.__init__` updates `self._buf`, `self._past_opening`.">
<td><a href="../api/vllm_mlx/api/tool_calling/#contract-vllm_mlx.api.tool_calling.StreamingJsonFenceStripper.__init__"><code>vllm_mlx.api.tool_calling.StreamingJsonFenceStripper.__init__</code></a></td>
<td>method</td>
<td><code>vllm_mlx.api.tool_calling.StreamingJsonFenceStripper.__init__() -&gt; None</code></td>
<td>Method `StreamingJsonFenceStripper.__init__` updates `self._buf`, `self._past_opening`.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/api/tool_calling.py#L695-L697">#L695-L697</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.api.tool_calling.streamingjsonfencestripper.feed method vllm_mlx.api.tool_calling.streamingjsonfencestripper.feed(delta: str) -&gt; str append a content delta and return the portion safe to emit now.">
<td><a href="../api/vllm_mlx/api/tool_calling/#contract-vllm_mlx.api.tool_calling.StreamingJsonFenceStripper.feed"><code>vllm_mlx.api.tool_calling.StreamingJsonFenceStripper.feed</code></a></td>
<td>method</td>
<td><code>vllm_mlx.api.tool_calling.StreamingJsonFenceStripper.feed(delta: str) -&gt; str</code></td>
<td>Append a content delta and return the portion safe to emit now.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/api/tool_calling.py#L699-L748">#L699-L748</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.api.tool_calling.streamingjsonfencestripper.finalize method vllm_mlx.api.tool_calling.streamingjsonfencestripper.finalize() -&gt; str flush the remaining buffer, dropping any trailing fence.">
<td><a href="../api/vllm_mlx/api/tool_calling/#contract-vllm_mlx.api.tool_calling.StreamingJsonFenceStripper.finalize"><code>vllm_mlx.api.tool_calling.StreamingJsonFenceStripper.finalize</code></a></td>
<td>method</td>
<td><code>vllm_mlx.api.tool_calling.StreamingJsonFenceStripper.finalize() -&gt; str</code></td>
<td>Flush the remaining buffer, dropping any trailing fence.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/api/tool_calling.py#L750-L787">#L750-L787</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.api.tool_calling.validate_json_schema function vllm_mlx.api.tool_calling.validate_json_schema(data: any, schema: dict[str, any]) -&gt; tuple[bool, optional[str]] validate json data against a json schema.">
<td><a href="../api/vllm_mlx/api/tool_calling/#contract-vllm_mlx.api.tool_calling.validate_json_schema"><code>vllm_mlx.api.tool_calling.validate_json_schema</code></a></td>
<td>function</td>
<td><code>vllm_mlx.api.tool_calling.validate_json_schema(data: Any, schema: Dict[str, Any]) -&gt; Tuple[bool, Optional[str]]</code></td>
<td>Validate JSON data against a JSON Schema.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/api/tool_calling.py#L437-L456">#L437-L456</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.api.utils._check_legacy_string_patterns function vllm_mlx.api.utils._check_legacy_string_patterns(model_name: str) -&gt; bool validation 1: substring match of mllm_patterns against the input string.">
<td><a href="../api/vllm_mlx/api/utils/#contract-vllm_mlx.api.utils._check_legacy_string_patterns"><code>vllm_mlx.api.utils._check_legacy_string_patterns</code></a></td>
<td>function</td>
<td><code>vllm_mlx.api.utils._check_legacy_string_patterns(model_name: str) -&gt; bool</code></td>
<td>Validation 1: substring match of MLLM_PATTERNS against the input string.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/api/utils.py#L456-L466">#L456-L466</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.api.utils._clean_gpt_oss_output function vllm_mlx.api.utils._clean_gpt_oss_output(text: str) -&gt; str extract final channel content from gpt-oss channel-based output.">
<td><a href="../api/vllm_mlx/api/utils/#contract-vllm_mlx.api.utils._clean_gpt_oss_output"><code>vllm_mlx.api.utils._clean_gpt_oss_output</code></a></td>
<td>function</td>
<td><code>vllm_mlx.api.utils._clean_gpt_oss_output(text: str) -&gt; str</code></td>
<td>Extract final channel content from GPT-OSS channel-based output.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/api/utils.py#L39-L73">#L39-L73</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.api.utils._config_indicates_vlm function vllm_mlx.api.utils._config_indicates_vlm(config: dict) -&gt; bool inspect a parsed config.json dict for multimodal markers.">
<td><a href="../api/vllm_mlx/api/utils/#contract-vllm_mlx.api.utils._config_indicates_vlm"><code>vllm_mlx.api.utils._config_indicates_vlm</code></a></td>
<td>function</td>
<td><code>vllm_mlx.api.utils._config_indicates_vlm(config: dict) -&gt; bool</code></td>
<td>Inspect a parsed config.json dict for multimodal markers.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/api/utils.py#L437-L453">#L437-L453</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.api.utils._content_to_text function vllm_mlx.api.utils._content_to_text(content) -&gt; str extract text from content that can be str, list[contentpart], or none.">
<td><a href="../api/vllm_mlx/api/utils/#contract-vllm_mlx.api.utils._content_to_text"><code>vllm_mlx.api.utils._content_to_text</code></a></td>
<td>function</td>
<td><code>vllm_mlx.api.utils._content_to_text(content) -&gt; str</code></td>
<td>Extract text from content that can be str, list[ContentPart], or None.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/api/utils.py#L544-L560">#L544-L560</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.api.utils._try_read_config_json function vllm_mlx.api.utils._try_read_config_json(name_or_path: str) -&gt; dict | none read config.json from a local model directory.">
<td><a href="../api/vllm_mlx/api/utils/#contract-vllm_mlx.api.utils._try_read_config_json"><code>vllm_mlx.api.utils._try_read_config_json</code></a></td>
<td>function</td>
<td><code>vllm_mlx.api.utils._try_read_config_json(name_or_path: str) -&gt; dict | None</code></td>
<td>Read config.json from a local model directory.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/api/utils.py#L408-L434">#L408-L434</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.api.utils.clean_output_text function vllm_mlx.api.utils.clean_output_text(text: str) -&gt; str clean model output by removing special tokens.">
<td><a href="../api/vllm_mlx/api/utils/#contract-vllm_mlx.api.utils.clean_output_text"><code>vllm_mlx.api.utils.clean_output_text</code></a></td>
<td>function</td>
<td><code>vllm_mlx.api.utils.clean_output_text(text: str) -&gt; str</code></td>
<td>Clean model output by removing special tokens.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/api/utils.py#L76-L108">#L76-L108</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.api.utils.extract_multimodal_content function vllm_mlx.api.utils.extract_multimodal_content(messages: list[message], preserve_native_format: bool = false) -&gt; tuple[list[dict], list[str], list[str], list[str]] extract text content, images, videos, and audio from openai-format messages.">
<td><a href="../api/vllm_mlx/api/utils/#contract-vllm_mlx.api.utils.extract_multimodal_content"><code>vllm_mlx.api.utils.extract_multimodal_content</code></a></td>
<td>function</td>
<td><code>vllm_mlx.api.utils.extract_multimodal_content(messages: list[Message], preserve_native_format: bool = False) -&gt; tuple[list[dict], list[str], list[str], list[str]]</code></td>
<td>Extract text content, images, videos, and audio from OpenAI-format messages.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/api/utils.py#L563-L747">#L563-L747</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.api.utils.has_media_content function vllm_mlx.api.utils.has_media_content(messages: list) -&gt; bool check if any message contains media content (images, video, audio).">
<td><a href="../api/vllm_mlx/api/utils/#contract-vllm_mlx.api.utils.has_media_content"><code>vllm_mlx.api.utils.has_media_content</code></a></td>
<td>function</td>
<td><code>vllm_mlx.api.utils.has_media_content(messages: list) -&gt; bool</code></td>
<td>Check if any message contains media content (images, video, audio).</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/api/utils.py#L516-L536">#L516-L536</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.api.utils.is_mllm_model function vllm_mlx.api.utils.is_mllm_model(model_name: str) -&gt; bool check if a model name or path indicates a multimodal language model.">
<td><a href="../api/vllm_mlx/api/utils/#contract-vllm_mlx.api.utils.is_mllm_model"><code>vllm_mlx.api.utils.is_mllm_model</code></a></td>
<td>function</td>
<td><code>vllm_mlx.api.utils.is_mllm_model(model_name: str) -&gt; bool</code></td>
<td>Check if a model name or path indicates a multimodal language model.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/api/utils.py#L469-L493">#L469-L493</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="class" data-symbol-search="vllm_mlx.api.utils.streamingthinkrouter class vllm_mlx.api.utils.streamingthinkrouter(start_in_thinking: bool = false) route &lt;think&gt;...&lt;/think&gt; content to separate anthropic thinking blocks.">
<td><a href="../api/vllm_mlx/api/utils/#contract-vllm_mlx.api.utils.StreamingThinkRouter"><code>vllm_mlx.api.utils.StreamingThinkRouter</code></a></td>
<td>class</td>
<td><code>vllm_mlx.api.utils.StreamingThinkRouter(start_in_thinking: bool = False)</code></td>
<td>Route &lt;think&gt;...&lt;/think&gt; content to separate Anthropic thinking blocks.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/api/utils.py#L237-L327">#L237-L327</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.api.utils.streamingthinkrouter.__init__ method vllm_mlx.api.utils.streamingthinkrouter.__init__(start_in_thinking: bool = false) -&gt; not annotated method `streamingthinkrouter.__init__` updates `self._buffer`, `self._in_think`.">
<td><a href="../api/vllm_mlx/api/utils/#contract-vllm_mlx.api.utils.StreamingThinkRouter.__init__"><code>vllm_mlx.api.utils.StreamingThinkRouter.__init__</code></a></td>
<td>method</td>
<td><code>vllm_mlx.api.utils.StreamingThinkRouter.__init__(start_in_thinking: bool = False) -&gt; not annotated</code></td>
<td>Method `StreamingThinkRouter.__init__` updates `self._buffer`, `self._in_think`.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/api/utils.py#L255-L257">#L255-L257</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.api.utils.streamingthinkrouter._extract_pieces method vllm_mlx.api.utils.streamingthinkrouter._extract_pieces(pieces: list[tuple[str, str]]) -&gt; none extract all complete pieces from the buffer.">
<td><a href="../api/vllm_mlx/api/utils/#contract-vllm_mlx.api.utils.StreamingThinkRouter._extract_pieces"><code>vllm_mlx.api.utils.StreamingThinkRouter._extract_pieces</code></a></td>
<td>method</td>
<td><code>vllm_mlx.api.utils.StreamingThinkRouter._extract_pieces(pieces: list[tuple[str, str]]) -&gt; None</code></td>
<td>Extract all complete pieces from the buffer.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/api/utils.py#L266-L317">#L266-L317</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.api.utils.streamingthinkrouter.flush method vllm_mlx.api.utils.streamingthinkrouter.flush() -&gt; list[tuple[str, str]] flush remaining buffer at end of stream.">
<td><a href="../api/vllm_mlx/api/utils/#contract-vllm_mlx.api.utils.StreamingThinkRouter.flush"><code>vllm_mlx.api.utils.StreamingThinkRouter.flush</code></a></td>
<td>method</td>
<td><code>vllm_mlx.api.utils.StreamingThinkRouter.flush() -&gt; list[tuple[str, str]]</code></td>
<td>Flush remaining buffer at end of stream.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/api/utils.py#L319-L327">#L319-L327</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.api.utils.streamingthinkrouter.process method vllm_mlx.api.utils.streamingthinkrouter.process(delta: str) -&gt; list[tuple[str, str]] process a delta.">
<td><a href="../api/vllm_mlx/api/utils/#contract-vllm_mlx.api.utils.StreamingThinkRouter.process"><code>vllm_mlx.api.utils.StreamingThinkRouter.process</code></a></td>
<td>method</td>
<td><code>vllm_mlx.api.utils.StreamingThinkRouter.process(delta: str) -&gt; list[tuple[str, str]]</code></td>
<td>Process a delta.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/api/utils.py#L259-L264">#L259-L264</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="class" data-symbol-search="vllm_mlx.api.utils.streamingtoolcallfilter class vllm_mlx.api.utils.streamingtoolcallfilter() buffer streaming text to suppress tool call markup.">
<td><a href="../api/vllm_mlx/api/utils/#contract-vllm_mlx.api.utils.StreamingToolCallFilter"><code>vllm_mlx.api.utils.StreamingToolCallFilter</code></a></td>
<td>class</td>
<td><code>vllm_mlx.api.utils.StreamingToolCallFilter()</code></td>
<td>Buffer streaming text to suppress tool call markup.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/api/utils.py#L134-L229">#L134-L229</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.api.utils.streamingtoolcallfilter.__init__ method vllm_mlx.api.utils.streamingtoolcallfilter.__init__() -&gt; not annotated method `streamingtoolcallfilter.__init__` updates `self._buffer`, `self._in_block`, `self._close_tag`, `self._max_open_len`; calls `max`, `len`.">
<td><a href="../api/vllm_mlx/api/utils/#contract-vllm_mlx.api.utils.StreamingToolCallFilter.__init__"><code>vllm_mlx.api.utils.StreamingToolCallFilter.__init__</code></a></td>
<td>method</td>
<td><code>vllm_mlx.api.utils.StreamingToolCallFilter.__init__() -&gt; not annotated</code></td>
<td>Method `StreamingToolCallFilter.__init__` updates `self._buffer`, `self._in_block`, `self._close_tag`, `self._max_open_len`; calls `max`, `len`.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/api/utils.py#L146-L151">#L146-L151</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.api.utils.streamingtoolcallfilter._consume_block method vllm_mlx.api.utils.streamingtoolcallfilter._consume_block() -&gt; str consume content inside a tool call block.">
<td><a href="../api/vllm_mlx/api/utils/#contract-vllm_mlx.api.utils.StreamingToolCallFilter._consume_block"><code>vllm_mlx.api.utils.StreamingToolCallFilter._consume_block</code></a></td>
<td>method</td>
<td><code>vllm_mlx.api.utils.StreamingToolCallFilter._consume_block() -&gt; str</code></td>
<td>Consume content inside a tool call block.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/api/utils.py#L196-L218">#L196-L218</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.api.utils.streamingtoolcallfilter._scan_for_open method vllm_mlx.api.utils.streamingtoolcallfilter._scan_for_open() -&gt; str scan buffer for tool call open tags.">
<td><a href="../api/vllm_mlx/api/utils/#contract-vllm_mlx.api.utils.StreamingToolCallFilter._scan_for_open"><code>vllm_mlx.api.utils.StreamingToolCallFilter._scan_for_open</code></a></td>
<td>method</td>
<td><code>vllm_mlx.api.utils.StreamingToolCallFilter._scan_for_open() -&gt; str</code></td>
<td>Scan buffer for tool call open tags.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/api/utils.py#L162-L194">#L162-L194</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.api.utils.streamingtoolcallfilter.flush method vllm_mlx.api.utils.streamingtoolcallfilter.flush() -&gt; str flush remaining buffer at end of stream.">
<td><a href="../api/vllm_mlx/api/utils/#contract-vllm_mlx.api.utils.StreamingToolCallFilter.flush"><code>vllm_mlx.api.utils.StreamingToolCallFilter.flush</code></a></td>
<td>method</td>
<td><code>vllm_mlx.api.utils.StreamingToolCallFilter.flush() -&gt; str</code></td>
<td>Flush remaining buffer at end of stream.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/api/utils.py#L220-L229">#L220-L229</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.api.utils.streamingtoolcallfilter.process method vllm_mlx.api.utils.streamingtoolcallfilter.process(delta: str) -&gt; str process a streaming delta.">
<td><a href="../api/vllm_mlx/api/utils/#contract-vllm_mlx.api.utils.StreamingToolCallFilter.process"><code>vllm_mlx.api.utils.StreamingToolCallFilter.process</code></a></td>
<td>method</td>
<td><code>vllm_mlx.api.utils.StreamingToolCallFilter.process(delta: str) -&gt; str</code></td>
<td>Process a streaming delta.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/api/utils.py#L153-L160">#L153-L160</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.attention.create_mlx_attention_backend function vllm_mlx.attention.create_mlx_attention_backend() -&gt; type factory function to create mlx attention backend.">
<td><a href="../api/vllm_mlx/attention/#contract-vllm_mlx.attention.create_mlx_attention_backend"><code>vllm_mlx.attention.create_mlx_attention_backend</code></a></td>
<td>function</td>
<td><code>vllm_mlx.attention.create_mlx_attention_backend() -&gt; type</code></td>
<td>Factory function to create MLX attention backend.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/attention.py#L243-L245">#L243-L245</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="class" data-symbol-search="vllm_mlx.attention.mlxattentionbackend class vllm_mlx.attention.mlxattentionbackend() attention backend using mlx&#x27;s native attention.">
<td><a href="../api/vllm_mlx/attention/#contract-vllm_mlx.attention.MLXAttentionBackend"><code>vllm_mlx.attention.MLXAttentionBackend</code></a></td>
<td>class</td>
<td><code>vllm_mlx.attention.MLXAttentionBackend()</code></td>
<td>Attention backend using MLX&#x27;s native attention.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/attention.py#L42-L135">#L42-L135</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.attention.mlxattentionbackend.get_impl_cls method vllm_mlx.attention.mlxattentionbackend.get_impl_cls() -&gt; type return the implementation class.">
<td><a href="../api/vllm_mlx/attention/#contract-vllm_mlx.attention.MLXAttentionBackend.get_impl_cls"><code>vllm_mlx.attention.MLXAttentionBackend.get_impl_cls</code></a></td>
<td>method</td>
<td><code>vllm_mlx.attention.MLXAttentionBackend.get_impl_cls() -&gt; type</code></td>
<td>Return the implementation class.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/attention.py#L60-L62">#L60-L62</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.attention.mlxattentionbackend.get_kv_cache_shape method vllm_mlx.attention.mlxattentionbackend.get_kv_cache_shape(num_blocks: int, block_size: int, num_kv_heads: int, head_size: int) -&gt; tuple[int, ...] get the shape of kv cache.">
<td><a href="../api/vllm_mlx/attention/#contract-vllm_mlx.attention.MLXAttentionBackend.get_kv_cache_shape"><code>vllm_mlx.attention.MLXAttentionBackend.get_kv_cache_shape</code></a></td>
<td>method</td>
<td><code>vllm_mlx.attention.MLXAttentionBackend.get_kv_cache_shape(num_blocks: int, block_size: int, num_kv_heads: int, head_size: int) -&gt; tuple[int, ...]</code></td>
<td>Get the shape of KV cache.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/attention.py#L70-L89">#L70-L89</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.attention.mlxattentionbackend.get_metadata_cls method vllm_mlx.attention.mlxattentionbackend.get_metadata_cls() -&gt; type return the metadata class.">
<td><a href="../api/vllm_mlx/attention/#contract-vllm_mlx.attention.MLXAttentionBackend.get_metadata_cls"><code>vllm_mlx.attention.MLXAttentionBackend.get_metadata_cls</code></a></td>
<td>method</td>
<td><code>vllm_mlx.attention.MLXAttentionBackend.get_metadata_cls() -&gt; type</code></td>
<td>Return the metadata class.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/attention.py#L65-L67">#L65-L67</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.attention.mlxattentionbackend.get_name method vllm_mlx.attention.mlxattentionbackend.get_name() -&gt; str return backend name.">
<td><a href="../api/vllm_mlx/attention/#contract-vllm_mlx.attention.MLXAttentionBackend.get_name"><code>vllm_mlx.attention.MLXAttentionBackend.get_name</code></a></td>
<td>method</td>
<td><code>vllm_mlx.attention.MLXAttentionBackend.get_name() -&gt; str</code></td>
<td>Return backend name.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/attention.py#L55-L57">#L55-L57</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.attention.mlxattentionbackend.get_supported_head_sizes method vllm_mlx.attention.mlxattentionbackend.get_supported_head_sizes() -&gt; list[int] return supported attention head sizes.">
<td><a href="../api/vllm_mlx/attention/#contract-vllm_mlx.attention.MLXAttentionBackend.get_supported_head_sizes"><code>vllm_mlx.attention.MLXAttentionBackend.get_supported_head_sizes</code></a></td>
<td>method</td>
<td><code>vllm_mlx.attention.MLXAttentionBackend.get_supported_head_sizes() -&gt; list[int]</code></td>
<td>Return supported attention head sizes.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/attention.py#L92-L94">#L92-L94</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.attention.mlxattentionbackend.supports_attn_type method vllm_mlx.attention.mlxattentionbackend.supports_attn_type(attn_type: str) -&gt; bool check if attention type is supported.">
<td><a href="../api/vllm_mlx/attention/#contract-vllm_mlx.attention.MLXAttentionBackend.supports_attn_type"><code>vllm_mlx.attention.MLXAttentionBackend.supports_attn_type</code></a></td>
<td>method</td>
<td><code>vllm_mlx.attention.MLXAttentionBackend.supports_attn_type(attn_type: str) -&gt; bool</code></td>
<td>Check if attention type is supported.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/attention.py#L133-L135">#L133-L135</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.attention.mlxattentionbackend.supports_block_size method vllm_mlx.attention.mlxattentionbackend.supports_block_size(block_size: int) -&gt; bool check if block size is supported.">
<td><a href="../api/vllm_mlx/attention/#contract-vllm_mlx.attention.MLXAttentionBackend.supports_block_size"><code>vllm_mlx.attention.MLXAttentionBackend.supports_block_size</code></a></td>
<td>method</td>
<td><code>vllm_mlx.attention.MLXAttentionBackend.supports_block_size(block_size: int) -&gt; bool</code></td>
<td>Check if block size is supported.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/attention.py#L128-L130">#L128-L130</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.attention.mlxattentionbackend.supports_dtype method vllm_mlx.attention.mlxattentionbackend.supports_dtype(dtype: &#x27;torch.dtype&#x27;) -&gt; bool check if dtype is supported.">
<td><a href="../api/vllm_mlx/attention/#contract-vllm_mlx.attention.MLXAttentionBackend.supports_dtype"><code>vllm_mlx.attention.MLXAttentionBackend.supports_dtype</code></a></td>
<td>method</td>
<td><code>vllm_mlx.attention.MLXAttentionBackend.supports_dtype(dtype: &#x27;torch.dtype&#x27;) -&gt; bool</code></td>
<td>Check if dtype is supported.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/attention.py#L121-L125">#L121-L125</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.attention.mlxattentionbackend.validate_configuration method vllm_mlx.attention.mlxattentionbackend.validate_configuration(num_heads: int, head_size: int, num_kv_heads: int, dtype: &#x27;torch.dtype&#x27;, block_size: int, **kwargs) -&gt; list[str] validate attention configuration.">
<td><a href="../api/vllm_mlx/attention/#contract-vllm_mlx.attention.MLXAttentionBackend.validate_configuration"><code>vllm_mlx.attention.MLXAttentionBackend.validate_configuration</code></a></td>
<td>method</td>
<td><code>vllm_mlx.attention.MLXAttentionBackend.validate_configuration(num_heads: int, head_size: int, num_kv_heads: int, dtype: &#x27;torch.dtype&#x27;, block_size: int, **kwargs) -&gt; list[str]</code></td>
<td>Validate attention configuration.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/attention.py#L97-L118">#L97-L118</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="class" data-symbol-search="vllm_mlx.attention.mlxattentionimpl class vllm_mlx.attention.mlxattentionimpl(num_heads: int, head_size: int, scale: float, num_kv_heads: int | none = none, alibi_slopes: list[float] | none = none, sliding_window: int | none = none, kv_cache_dtype: str = &#x27;auto&#x27;, blocksparse_params: dict | none = none, logits_soft_cap: float | none = none, **kwargs) mlx attention implementation.">
<td><a href="../api/vllm_mlx/attention/#contract-vllm_mlx.attention.MLXAttentionImpl"><code>vllm_mlx.attention.MLXAttentionImpl</code></a></td>
<td>class</td>
<td><code>vllm_mlx.attention.MLXAttentionImpl(num_heads: int, head_size: int, scale: float, num_kv_heads: int | None = None, alibi_slopes: list[float] | None = None, sliding_window: int | None = None, kv_cache_dtype: str = &#x27;auto&#x27;, blocksparse_params: dict | None = None, logits_soft_cap: float | None = None, **kwargs)</code></td>
<td>MLX attention implementation.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/attention.py#L138-L240">#L138-L240</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.attention.mlxattentionimpl.__init__ method vllm_mlx.attention.mlxattentionimpl.__init__(num_heads: int, head_size: int, scale: float, num_kv_heads: int | none = none, alibi_slopes: list[float] | none = none, sliding_window: int | none = none, kv_cache_dtype: str = &#x27;auto&#x27;, blocksparse_params: dict | none = none, logits_soft_cap: float | none = none, **kwargs) -&gt; not annotated initialize mlx attention.">
<td><a href="../api/vllm_mlx/attention/#contract-vllm_mlx.attention.MLXAttentionImpl.__init__"><code>vllm_mlx.attention.MLXAttentionImpl.__init__</code></a></td>
<td>method</td>
<td><code>vllm_mlx.attention.MLXAttentionImpl.__init__(num_heads: int, head_size: int, scale: float, num_kv_heads: int | None = None, alibi_slopes: list[float] | None = None, sliding_window: int | None = None, kv_cache_dtype: str = &#x27;auto&#x27;, blocksparse_params: dict | None = None, logits_soft_cap: float | None = None, **kwargs) -&gt; not annotated</code></td>
<td>Initialize MLX attention.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/attention.py#L147-L186">#L147-L186</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.attention.mlxattentionimpl.forward method vllm_mlx.attention.mlxattentionimpl.forward(query: any, key: any, value: any, kv_cache: any | none = none, attn_metadata: mlxattentionmetadata | none = none, output: any | none = none, **kwargs) -&gt; any compute attention.">
<td><a href="../api/vllm_mlx/attention/#contract-vllm_mlx.attention.MLXAttentionImpl.forward"><code>vllm_mlx.attention.MLXAttentionImpl.forward</code></a></td>
<td>method</td>
<td><code>vllm_mlx.attention.MLXAttentionImpl.forward(query: Any, key: Any, value: Any, kv_cache: Any | None = None, attn_metadata: MLXAttentionMetadata | None = None, output: Any | None = None, **kwargs) -&gt; Any</code></td>
<td>Compute attention.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/attention.py#L188-L240">#L188-L240</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="class" data-symbol-search="vllm_mlx.attention.mlxattentionmetadata class vllm_mlx.attention.mlxattentionmetadata(seq_lens: list[int], max_seq_len: int, num_prefill_tokens: int = 0, num_decode_tokens: int = 0, block_tables: any | none = none, slot_mapping: any | none = none) metadata for mlx attention computation.">
<td><a href="../api/vllm_mlx/attention/#contract-vllm_mlx.attention.MLXAttentionMetadata"><code>vllm_mlx.attention.MLXAttentionMetadata</code></a></td>
<td>class</td>
<td><code>vllm_mlx.attention.MLXAttentionMetadata(seq_lens: list[int], max_seq_len: int, num_prefill_tokens: int = 0, num_decode_tokens: int = 0, block_tables: Any | None = None, slot_mapping: Any | None = None)</code></td>
<td>Metadata for MLX attention computation.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/attention.py#L20-L39">#L20-L39</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="class" data-symbol-search="vllm_mlx.audio.processor.audioprocessor class vllm_mlx.audio.processor.audioprocessor(model_name: str = default_sam_model) audio processor for voice separation and enhancement.">
<td><a href="../api/vllm_mlx/audio/processor/#contract-vllm_mlx.audio.processor.AudioProcessor"><code>vllm_mlx.audio.processor.AudioProcessor</code></a></td>
<td>class</td>
<td><code>vllm_mlx.audio.processor.AudioProcessor(model_name: str = DEFAULT_SAM_MODEL)</code></td>
<td>Audio processor for voice separation and enhancement.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/audio/processor.py#L33-L192">#L33-L192</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.audio.processor.audioprocessor.__init__ method vllm_mlx.audio.processor.audioprocessor.__init__(model_name: str = default_sam_model) -&gt; not annotated initialize audio processor.">
<td><a href="../api/vllm_mlx/audio/processor/#contract-vllm_mlx.audio.processor.AudioProcessor.__init__"><code>vllm_mlx.audio.processor.AudioProcessor.__init__</code></a></td>
<td>method</td>
<td><code>vllm_mlx.audio.processor.AudioProcessor.__init__(model_name: str = DEFAULT_SAM_MODEL) -&gt; not annotated</code></td>
<td>Initialize audio processor.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/audio/processor.py#L48-L66">#L48-L66</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.audio.processor.audioprocessor._to_numpy method vllm_mlx.audio.processor.audioprocessor._to_numpy(audio) -&gt; np.ndarray convert audio to numpy array.">
<td><a href="../api/vllm_mlx/audio/processor/#contract-vllm_mlx.audio.processor.AudioProcessor._to_numpy"><code>vllm_mlx.audio.processor.AudioProcessor._to_numpy</code></a></td>
<td>method</td>
<td><code>vllm_mlx.audio.processor.AudioProcessor._to_numpy(audio) -&gt; np.ndarray</code></td>
<td>Convert audio to numpy array.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/audio/processor.py#L153-L157">#L153-L157</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.audio.processor.audioprocessor.load method vllm_mlx.audio.processor.audioprocessor.load() -&gt; none load the sam-audio model.">
<td><a href="../api/vllm_mlx/audio/processor/#contract-vllm_mlx.audio.processor.AudioProcessor.load"><code>vllm_mlx.audio.processor.AudioProcessor.load</code></a></td>
<td>method</td>
<td><code>vllm_mlx.audio.processor.AudioProcessor.load() -&gt; None</code></td>
<td>Load the SAM-Audio model.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/audio/processor.py#L68-L88">#L68-L88</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.audio.processor.audioprocessor.save method vllm_mlx.audio.processor.audioprocessor.save(audio: np.ndarray, path: union[str, path], sample_rate: optional[int] = none) -&gt; none save audio to file.">
<td><a href="../api/vllm_mlx/audio/processor/#contract-vllm_mlx.audio.processor.AudioProcessor.save"><code>vllm_mlx.audio.processor.AudioProcessor.save</code></a></td>
<td>method</td>
<td><code>vllm_mlx.audio.processor.AudioProcessor.save(audio: np.ndarray, path: Union[str, Path], sample_rate: Optional[int] = None) -&gt; None</code></td>
<td>Save audio to file.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/audio/processor.py#L159-L185">#L159-L185</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.audio.processor.audioprocessor.separate method vllm_mlx.audio.processor.audioprocessor.separate(audio_path: union[str, path], description: str = &#x27;speech&#x27;, chunk_seconds: optional[float] = none) -&gt; separationresult separate audio based on text description.">
<td><a href="../api/vllm_mlx/audio/processor/#contract-vllm_mlx.audio.processor.AudioProcessor.separate"><code>vllm_mlx.audio.processor.AudioProcessor.separate</code></a></td>
<td>method</td>
<td><code>vllm_mlx.audio.processor.AudioProcessor.separate(audio_path: Union[str, Path], description: str = &#x27;speech&#x27;, chunk_seconds: Optional[float] = None) -&gt; SeparationResult</code></td>
<td>Separate audio based on text description.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/audio/processor.py#L90-L151">#L90-L151</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.audio.processor.audioprocessor.unload method vllm_mlx.audio.processor.audioprocessor.unload() -&gt; none unload model to free memory.">
<td><a href="../api/vllm_mlx/audio/processor/#contract-vllm_mlx.audio.processor.AudioProcessor.unload"><code>vllm_mlx.audio.processor.AudioProcessor.unload</code></a></td>
<td>method</td>
<td><code>vllm_mlx.audio.processor.AudioProcessor.unload() -&gt; None</code></td>
<td>Unload model to free memory.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/audio/processor.py#L187-L192">#L187-L192</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.audio.processor.separate_voice function vllm_mlx.audio.processor.separate_voice(audio_path: union[str, path], model_name: str = default_sam_model, description: str = &#x27;speech&#x27;) -&gt; tuple[np.ndarray, np.ndarray] convenience function to separate voice from audio.">
<td><a href="../api/vllm_mlx/audio/processor/#contract-vllm_mlx.audio.processor.separate_voice"><code>vllm_mlx.audio.processor.separate_voice</code></a></td>
<td>function</td>
<td><code>vllm_mlx.audio.processor.separate_voice(audio_path: Union[str, Path], model_name: str = DEFAULT_SAM_MODEL, description: str = &#x27;speech&#x27;) -&gt; Tuple[np.ndarray, np.ndarray]</code></td>
<td>Convenience function to separate voice from audio.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/audio/processor.py#L195-L214">#L195-L214</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="class" data-symbol-search="vllm_mlx.audio.processor.separationresult class vllm_mlx.audio.processor.separationresult(target: np.ndarray, residual: np.ndarray, sample_rate: int, peak_memory: float) result from audio separation.">
<td><a href="../api/vllm_mlx/audio/processor/#contract-vllm_mlx.audio.processor.SeparationResult"><code>vllm_mlx.audio.processor.SeparationResult</code></a></td>
<td>class</td>
<td><code>vllm_mlx.audio.processor.SeparationResult(target: np.ndarray, residual: np.ndarray, sample_rate: int, peak_memory: float)</code></td>
<td>Result from audio separation.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/audio/processor.py#L24-L30">#L24-L30</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="class" data-symbol-search="vllm_mlx.audio.stt.sttengine class vllm_mlx.audio.stt.sttengine(model_name: str = default_whisper_model) speech-to-text engine supporting whisper and parakeet models.">
<td><a href="../api/vllm_mlx/audio/stt/#contract-vllm_mlx.audio.stt.STTEngine"><code>vllm_mlx.audio.stt.STTEngine</code></a></td>
<td>class</td>
<td><code>vllm_mlx.audio.stt.STTEngine(model_name: str = DEFAULT_WHISPER_MODEL)</code></td>
<td>Speech-to-Text engine supporting Whisper and Parakeet models.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/audio/stt.py#L32-L139">#L32-L139</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.audio.stt.sttengine.__init__ method vllm_mlx.audio.stt.sttengine.__init__(model_name: str = default_whisper_model) -&gt; not annotated initialize stt engine.">
<td><a href="../api/vllm_mlx/audio/stt/#contract-vllm_mlx.audio.stt.STTEngine.__init__"><code>vllm_mlx.audio.stt.STTEngine.__init__</code></a></td>
<td>method</td>
<td><code>vllm_mlx.audio.stt.STTEngine.__init__(model_name: str = DEFAULT_WHISPER_MODEL) -&gt; not annotated</code></td>
<td>Initialize STT engine.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/audio/stt.py#L43-L62">#L43-L62</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.audio.stt.sttengine.load method vllm_mlx.audio.stt.sttengine.load() -&gt; none load the stt model.">
<td><a href="../api/vllm_mlx/audio/stt/#contract-vllm_mlx.audio.stt.STTEngine.load"><code>vllm_mlx.audio.stt.STTEngine.load</code></a></td>
<td>method</td>
<td><code>vllm_mlx.audio.stt.STTEngine.load() -&gt; None</code></td>
<td>Load the STT model.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/audio/stt.py#L64-L79">#L64-L79</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.audio.stt.sttengine.transcribe method vllm_mlx.audio.stt.sttengine.transcribe(audio_path: union[str, path], language: optional[str] = none, task: str = &#x27;transcribe&#x27;) -&gt; transcriptionresult transcribe audio file to text.">
<td><a href="../api/vllm_mlx/audio/stt/#contract-vllm_mlx.audio.stt.STTEngine.transcribe"><code>vllm_mlx.audio.stt.STTEngine.transcribe</code></a></td>
<td>method</td>
<td><code>vllm_mlx.audio.stt.STTEngine.transcribe(audio_path: Union[str, Path], language: Optional[str] = None, task: str = &#x27;transcribe&#x27;) -&gt; TranscriptionResult</code></td>
<td>Transcribe audio file to text.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/audio/stt.py#L81-L133">#L81-L133</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.audio.stt.sttengine.unload method vllm_mlx.audio.stt.sttengine.unload() -&gt; none unload model to free memory.">
<td><a href="../api/vllm_mlx/audio/stt/#contract-vllm_mlx.audio.stt.STTEngine.unload"><code>vllm_mlx.audio.stt.STTEngine.unload</code></a></td>
<td>method</td>
<td><code>vllm_mlx.audio.stt.STTEngine.unload() -&gt; None</code></td>
<td>Unload model to free memory.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/audio/stt.py#L135-L139">#L135-L139</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.audio.stt.transcribe_audio function vllm_mlx.audio.stt.transcribe_audio(audio_path: union[str, path], model_name: str = default_whisper_model, language: optional[str] = none) -&gt; transcriptionresult convenience function to transcribe audio without managing engine.">
<td><a href="../api/vllm_mlx/audio/stt/#contract-vllm_mlx.audio.stt.transcribe_audio"><code>vllm_mlx.audio.stt.transcribe_audio</code></a></td>
<td>function</td>
<td><code>vllm_mlx.audio.stt.transcribe_audio(audio_path: Union[str, Path], model_name: str = DEFAULT_WHISPER_MODEL, language: Optional[str] = None) -&gt; TranscriptionResult</code></td>
<td>Convenience function to transcribe audio without managing engine.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/audio/stt.py#L142-L160">#L142-L160</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="class" data-symbol-search="vllm_mlx.audio.stt.transcriptionresult class vllm_mlx.audio.stt.transcriptionresult(text: str, language: optional[str] = none, duration: optional[float] = none, segments: optional[list] = none) result from audio transcription.">
<td><a href="../api/vllm_mlx/audio/stt/#contract-vllm_mlx.audio.stt.TranscriptionResult"><code>vllm_mlx.audio.stt.TranscriptionResult</code></a></td>
<td>class</td>
<td><code>vllm_mlx.audio.stt.TranscriptionResult(text: str, language: Optional[str] = None, duration: Optional[float] = None, segments: Optional[list] = None)</code></td>
<td>Result from audio transcription.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/audio/stt.py#L23-L29">#L23-L29</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="class" data-symbol-search="vllm_mlx.audio.tts.audiooutput class vllm_mlx.audio.tts.audiooutput(audio: np.ndarray, sample_rate: int, duration: float) output from tts generation.">
<td><a href="../api/vllm_mlx/audio/tts/#contract-vllm_mlx.audio.tts.AudioOutput"><code>vllm_mlx.audio.tts.AudioOutput</code></a></td>
<td>class</td>
<td><code>vllm_mlx.audio.tts.AudioOutput(audio: np.ndarray, sample_rate: int, duration: float)</code></td>
<td>Output from TTS generation.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/audio/tts.py#L44-L49">#L44-L49</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.audio.tts.generate_speech function vllm_mlx.audio.tts.generate_speech(text: str, model_name: str = default_tts_model, voice: str = &#x27;af_heart&#x27;, speed: float = 1.0) -&gt; audiooutput convenience function to generate speech without managing engine.">
<td><a href="../api/vllm_mlx/audio/tts/#contract-vllm_mlx.audio.tts.generate_speech"><code>vllm_mlx.audio.tts.generate_speech</code></a></td>
<td>function</td>
<td><code>vllm_mlx.audio.tts.generate_speech(text: str, model_name: str = DEFAULT_TTS_MODEL, voice: str = &#x27;af_heart&#x27;, speed: float = 1.0) -&gt; AudioOutput</code></td>
<td>Convenience function to generate speech without managing engine.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/audio/tts.py#L295-L315">#L295-L315</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="class" data-symbol-search="vllm_mlx.audio.tts.ttsengine class vllm_mlx.audio.tts.ttsengine(model_name: str = default_tts_model) text-to-speech engine supporting multiple model families.">
<td><a href="../api/vllm_mlx/audio/tts/#contract-vllm_mlx.audio.tts.TTSEngine"><code>vllm_mlx.audio.tts.TTSEngine</code></a></td>
<td>class</td>
<td><code>vllm_mlx.audio.tts.TTSEngine(model_name: str = DEFAULT_TTS_MODEL)</code></td>
<td>Text-to-Speech engine supporting multiple model families.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/audio/tts.py#L52-L292">#L52-L292</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.audio.tts.ttsengine.__init__ method vllm_mlx.audio.tts.ttsengine.__init__(model_name: str = default_tts_model) -&gt; not annotated initialize tts engine.">
<td><a href="../api/vllm_mlx/audio/tts/#contract-vllm_mlx.audio.tts.TTSEngine.__init__"><code>vllm_mlx.audio.tts.TTSEngine.__init__</code></a></td>
<td>method</td>
<td><code>vllm_mlx.audio.tts.TTSEngine.__init__(model_name: str = DEFAULT_TTS_MODEL) -&gt; not annotated</code></td>
<td>Initialize TTS engine.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/audio/tts.py#L63-L80">#L63-L80</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.audio.tts.ttsengine._detect_family method vllm_mlx.audio.tts.ttsengine._detect_family(model_name: str) -&gt; str detect model family from name.">
<td><a href="../api/vllm_mlx/audio/tts/#contract-vllm_mlx.audio.tts.TTSEngine._detect_family"><code>vllm_mlx.audio.tts.TTSEngine._detect_family</code></a></td>
<td>method</td>
<td><code>vllm_mlx.audio.tts.TTSEngine._detect_family(model_name: str) -&gt; str</code></td>
<td>Detect model family from name.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/audio/tts.py#L82-L98">#L82-L98</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.audio.tts.ttsengine.generate method vllm_mlx.audio.tts.ttsengine.generate(text: str, voice: str = &#x27;af_heart&#x27;, speed: float = 1.0, lang_code: str = &#x27;a&#x27;) -&gt; audiooutput generate speech from text.">
<td><a href="../api/vllm_mlx/audio/tts/#contract-vllm_mlx.audio.tts.TTSEngine.generate"><code>vllm_mlx.audio.tts.TTSEngine.generate</code></a></td>
<td>method</td>
<td><code>vllm_mlx.audio.tts.TTSEngine.generate(text: str, voice: str = &#x27;af_heart&#x27;, speed: float = 1.0, lang_code: str = &#x27;a&#x27;) -&gt; AudioOutput</code></td>
<td>Generate speech from text.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/audio/tts.py#L119-L185">#L119-L185</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.audio.tts.ttsengine.get_voices method vllm_mlx.audio.tts.ttsengine.get_voices() -&gt; list get available voices for current model.">
<td><a href="../api/vllm_mlx/audio/tts/#contract-vllm_mlx.audio.tts.TTSEngine.get_voices"><code>vllm_mlx.audio.tts.TTSEngine.get_voices</code></a></td>
<td>method</td>
<td><code>vllm_mlx.audio.tts.TTSEngine.get_voices() -&gt; list</code></td>
<td>Get available voices for current model.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/audio/tts.py#L279-L286">#L279-L286</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.audio.tts.ttsengine.load method vllm_mlx.audio.tts.ttsengine.load() -&gt; none load the tts model.">
<td><a href="../api/vllm_mlx/audio/tts/#contract-vllm_mlx.audio.tts.TTSEngine.load"><code>vllm_mlx.audio.tts.TTSEngine.load</code></a></td>
<td>method</td>
<td><code>vllm_mlx.audio.tts.TTSEngine.load() -&gt; None</code></td>
<td>Load the TTS model.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/audio/tts.py#L100-L117">#L100-L117</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.audio.tts.ttsengine.save method vllm_mlx.audio.tts.ttsengine.save(audio: audiooutput, path: union[str, path], format: str = &#x27;wav&#x27;) -&gt; none save audio to file.">
<td><a href="../api/vllm_mlx/audio/tts/#contract-vllm_mlx.audio.tts.TTSEngine.save"><code>vllm_mlx.audio.tts.TTSEngine.save</code></a></td>
<td>method</td>
<td><code>vllm_mlx.audio.tts.TTSEngine.save(audio: AudioOutput, path: Union[str, Path], format: str = &#x27;wav&#x27;) -&gt; None</code></td>
<td>Save audio to file.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/audio/tts.py#L229-L255">#L229-L255</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.audio.tts.ttsengine.stream_generate method vllm_mlx.audio.tts.ttsengine.stream_generate(text: str, voice: str = &#x27;af_heart&#x27;, speed: float = 1.0) -&gt; iterator[audiooutput] stream speech generation chunk by chunk.">
<td><a href="../api/vllm_mlx/audio/tts/#contract-vllm_mlx.audio.tts.TTSEngine.stream_generate"><code>vllm_mlx.audio.tts.TTSEngine.stream_generate</code></a></td>
<td>method</td>
<td><code>vllm_mlx.audio.tts.TTSEngine.stream_generate(text: str, voice: str = &#x27;af_heart&#x27;, speed: float = 1.0) -&gt; Iterator[AudioOutput]</code></td>
<td>Stream speech generation chunk by chunk.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/audio/tts.py#L187-L227">#L187-L227</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.audio.tts.ttsengine.to_bytes method vllm_mlx.audio.tts.ttsengine.to_bytes(audio: audiooutput, format: str = &#x27;wav&#x27;) -&gt; bytes convert audio to bytes.">
<td><a href="../api/vllm_mlx/audio/tts/#contract-vllm_mlx.audio.tts.TTSEngine.to_bytes"><code>vllm_mlx.audio.tts.TTSEngine.to_bytes</code></a></td>
<td>method</td>
<td><code>vllm_mlx.audio.tts.TTSEngine.to_bytes(audio: AudioOutput, format: str = &#x27;wav&#x27;) -&gt; bytes</code></td>
<td>Convert audio to bytes.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/audio/tts.py#L257-L277">#L257-L277</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.audio.tts.ttsengine.unload method vllm_mlx.audio.tts.ttsengine.unload() -&gt; none unload model to free memory.">
<td><a href="../api/vllm_mlx/audio/tts/#contract-vllm_mlx.audio.tts.TTSEngine.unload"><code>vllm_mlx.audio.tts.TTSEngine.unload</code></a></td>
<td>method</td>
<td><code>vllm_mlx.audio.tts.TTSEngine.unload() -&gt; None</code></td>
<td>Unload model to free memory.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/audio/tts.py#L288-L292">#L288-L292</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="class" data-symbol-search="vllm_mlx.audio_limits.asyncreadableupload class vllm_mlx.audio_limits.asyncreadableupload() structural type for an asynchronously readable uploaded file.">
<td><a href="../api/vllm_mlx/audio_limits/#contract-vllm_mlx.audio_limits.AsyncReadableUpload"><code>vllm_mlx.audio_limits.AsyncReadableUpload</code></a></td>
<td>class</td>
<td><code>vllm_mlx.audio_limits.AsyncReadableUpload()</code></td>
<td>Structural type for an asynchronously readable uploaded file.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/audio_limits.py#L17-L25">#L17-L25</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.audio_limits.asyncreadableupload.read method async vllm_mlx.audio_limits.asyncreadableupload.read(size: int = -1) -&gt; bytes read at most ``size`` bytes, or all remaining bytes when negative.">
<td><a href="../api/vllm_mlx/audio_limits/#contract-vllm_mlx.audio_limits.AsyncReadableUpload.read"><code>vllm_mlx.audio_limits.AsyncReadableUpload.read</code></a></td>
<td>method</td>
<td><code>async vllm_mlx.audio_limits.AsyncReadableUpload.read(size: int = -1) -&gt; bytes</code></td>
<td>Read at most ``size`` bytes, or all remaining bytes when negative.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/audio_limits.py#L22-L25">#L22-L25</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.audio_limits.save_upload_with_limit function async vllm_mlx.audio_limits.save_upload_with_limit(file: asyncreadableupload, *, max_bytes: int, default_suffix: str = &#x27;.wav&#x27;, chunk_size: int = upload_chunk_size) -&gt; str stream an uploaded file to disk while enforcing a hard byte limit.">
<td><a href="../api/vllm_mlx/audio_limits/#contract-vllm_mlx.audio_limits.save_upload_with_limit"><code>vllm_mlx.audio_limits.save_upload_with_limit</code></a></td>
<td>function</td>
<td><code>async vllm_mlx.audio_limits.save_upload_with_limit(file: AsyncReadableUpload, *, max_bytes: int, default_suffix: str = &#x27;.wav&#x27;, chunk_size: int = UPLOAD_CHUNK_SIZE) -&gt; str</code></td>
<td>Stream an uploaded file to disk while enforcing a hard byte limit.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/audio_limits.py#L28-L65">#L28-L65</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.audio_limits.validate_tts_input_length function vllm_mlx.audio_limits.validate_tts_input_length(text: str, *, max_chars: int) -&gt; none reject oversized tts requests before synthesis starts.">
<td><a href="../api/vllm_mlx/audio_limits/#contract-vllm_mlx.audio_limits.validate_tts_input_length"><code>vllm_mlx.audio_limits.validate_tts_input_length</code></a></td>
<td>function</td>
<td><code>vllm_mlx.audio_limits.validate_tts_input_length(text: str, *, max_chars: int) -&gt; None</code></td>
<td>Reject oversized TTS requests before synthesis starts.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/audio_limits.py#L68-L77">#L68-L77</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.bench_serve._assemble_case_request_kwargs function vllm_mlx.bench_serve._assemble_case_request_kwargs(case: workloadcase, workload: workload, model: str) -&gt; dict build the keyword-arguments dict passed to ``stream_chat_completion`` for one case, applying max_tokens fallback and converting ``policy_timeout_ms`` to seconds.">
<td><a href="../api/vllm_mlx/bench_serve/#contract-vllm_mlx.bench_serve._assemble_case_request_kwargs"><code>vllm_mlx.bench_serve._assemble_case_request_kwargs</code></a></td>
<td>function</td>
<td><code>vllm_mlx.bench_serve._assemble_case_request_kwargs(case: WorkloadCase, workload: Workload, model: str) -&gt; dict</code></td>
<td>Build the keyword-arguments dict passed to ``stream_chat_completion`` for one case, applying max_tokens fallback and converting ``policy_timeout_ms`` to seconds.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/bench_serve.py#L1355-L1372">#L1355-L1372</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.bench_serve._build_tool_calls_summary function vllm_mlx.bench_serve._build_tool_calls_summary(tool_calls: any) -&gt; optional[dict] compact summary of streamed tool calls for the case record.">
<td><a href="../api/vllm_mlx/bench_serve/#contract-vllm_mlx.bench_serve._build_tool_calls_summary"><code>vllm_mlx.bench_serve._build_tool_calls_summary</code></a></td>
<td>function</td>
<td><code>vllm_mlx.bench_serve._build_tool_calls_summary(tool_calls: Any) -&gt; Optional[dict]</code></td>
<td>Compact summary of streamed tool calls for the case record.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/bench_serve.py#L1421-L1434">#L1421-L1434</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.bench_serve._build_workload_case function vllm_mlx.bench_serve._build_workload_case(item: any, idx: int, *, defaults: dict, workload_path: path) -&gt; workloadcase construct one ``workloadcase`` from a raw workload entry.">
<td><a href="../api/vllm_mlx/bench_serve/#contract-vllm_mlx.bench_serve._build_workload_case"><code>vllm_mlx.bench_serve._build_workload_case</code></a></td>
<td>function</td>
<td><code>vllm_mlx.bench_serve._build_workload_case(item: Any, idx: int, *, defaults: dict, workload_path: Path) -&gt; WorkloadCase</code></td>
<td>Construct one ``WorkloadCase`` from a raw workload entry.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/bench_serve.py#L230-L300">#L230-L300</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.bench_serve._build_workload_record function vllm_mlx.bench_serve._build_workload_record(*, case: workloadcase, workload: workload, model: str, runtime: dict, hardware: dict, run_id: str, timestamp: str, started_wall: str, repetition: int, result: dict, error: str, quality_ok: bool, quality_issues: list[str], content: str, cache_hits_delta: int, cache_misses_delta: int, tokens_saved_delta: int, status_after: dict, cache_reset: optional[dict], include_content: bool) -&gt; dict assemble the json-serializable workload-case record from the raw inputs and the completion result.">
<td><a href="../api/vllm_mlx/bench_serve/#contract-vllm_mlx.bench_serve._build_workload_record"><code>vllm_mlx.bench_serve._build_workload_record</code></a></td>
<td>function</td>
<td><code>vllm_mlx.bench_serve._build_workload_record(*, case: WorkloadCase, workload: Workload, model: str, runtime: dict, hardware: dict, run_id: str, timestamp: str, started_wall: str, repetition: int, result: dict, error: str, quality_ok: bool, quality_issues: list[str], content: str, cache_hits_delta: int, cache_misses_delta: int, tokens_saved_delta: int, status_after: dict, cache_reset: Optional[dict], include_content: bool) -&gt; dict</code></td>
<td>Assemble the JSON-serializable workload-case record from the raw inputs and the completion result.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/bench_serve.py#L1437-L1515">#L1437-L1515</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.bench_serve._cancel_server_request function async vllm_mlx.bench_serve._cancel_server_request(client: httpx.asyncclient, base_url: str, request_id: optional[str]) -&gt; none best-effort server-side cancellation for timed-out workload streams.">
<td><a href="../api/vllm_mlx/bench_serve/#contract-vllm_mlx.bench_serve._cancel_server_request"><code>vllm_mlx.bench_serve._cancel_server_request</code></a></td>
<td>function</td>
<td><code>async vllm_mlx.bench_serve._cancel_server_request(client: httpx.AsyncClient, base_url: str, request_id: Optional[str]) -&gt; None</code></td>
<td>Best-effort server-side cancellation for timed-out workload streams.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/bench_serve.py#L757-L770">#L757-L770</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.bench_serve._check_finish_reason function vllm_mlx.bench_serve._check_finish_reason(allowed: any, finish_reason: optional[str]) -&gt; list[str] verify ``finish_reason`` is in the allowed set, if one is configured.">
<td><a href="../api/vllm_mlx/bench_serve/#contract-vllm_mlx.bench_serve._check_finish_reason"><code>vllm_mlx.bench_serve._check_finish_reason</code></a></td>
<td>function</td>
<td><code>vllm_mlx.bench_serve._check_finish_reason(allowed: Any, finish_reason: Optional[str]) -&gt; list[str]</code></td>
<td>Verify ``finish_reason`` is in the allowed set, if one is configured.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/bench_serve.py#L1052-L1059">#L1052-L1059</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.bench_serve._check_json_content function vllm_mlx.bench_serve._check_json_content(should_be_json: any, content: str) -&gt; list[str] verify ``content`` parses as json when ``checks[&#x27;json&#x27;]`` is truthy.">
<td><a href="../api/vllm_mlx/bench_serve/#contract-vllm_mlx.bench_serve._check_json_content"><code>vllm_mlx.bench_serve._check_json_content</code></a></td>
<td>function</td>
<td><code>vllm_mlx.bench_serve._check_json_content(should_be_json: Any, content: str) -&gt; list[str]</code></td>
<td>Verify ``content`` parses as JSON when ``checks[&#x27;json&#x27;]`` is truthy.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/bench_serve.py#L1099-L1107">#L1099-L1107</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.bench_serve._check_length_bounds function vllm_mlx.bench_serve._check_length_bounds(min_chars: any, max_chars: any, content: str) -&gt; list[str] apply ``min_chars`` / ``max_chars`` content-length bounds.">
<td><a href="../api/vllm_mlx/bench_serve/#contract-vllm_mlx.bench_serve._check_length_bounds"><code>vllm_mlx.bench_serve._check_length_bounds</code></a></td>
<td>function</td>
<td><code>vllm_mlx.bench_serve._check_length_bounds(min_chars: Any, max_chars: Any, content: str) -&gt; list[str]</code></td>
<td>Apply ``min_chars`` / ``max_chars`` content-length bounds.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/bench_serve.py#L1062-L1069">#L1062-L1069</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.bench_serve._check_regex_patterns function vllm_mlx.bench_serve._check_regex_patterns(patterns: any, content: str, *, kind: str, expect_match: bool) -&gt; list[str] validate that each pattern either matches or does not, per ``expect_match``.">
<td><a href="../api/vllm_mlx/bench_serve/#contract-vllm_mlx.bench_serve._check_regex_patterns"><code>vllm_mlx.bench_serve._check_regex_patterns</code></a></td>
<td>function</td>
<td><code>vllm_mlx.bench_serve._check_regex_patterns(patterns: Any, content: str, *, kind: str, expect_match: bool) -&gt; list[str]</code></td>
<td>Validate that each pattern either matches or does not, per ``expect_match``.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/bench_serve.py#L1072-L1096">#L1072-L1096</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.bench_serve._check_tool_call_args function vllm_mlx.bench_serve._check_tool_call_args(required_args: any, tool_calls: list[dict]) -&gt; list[str] validate parsed json arguments include the required keys per function.">
<td><a href="../api/vllm_mlx/bench_serve/#contract-vllm_mlx.bench_serve._check_tool_call_args"><code>vllm_mlx.bench_serve._check_tool_call_args</code></a></td>
<td>function</td>
<td><code>vllm_mlx.bench_serve._check_tool_call_args(required_args: Any, tool_calls: list[dict]) -&gt; list[str]</code></td>
<td>Validate parsed JSON arguments include the required keys per function.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/bench_serve.py#L1135-L1174">#L1135-L1174</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.bench_serve._check_tool_call_count_and_names function vllm_mlx.bench_serve._check_tool_call_count_and_names(checks: dict, tool_calls: list[dict]) -&gt; list[str] apply ``no_tool_calls`` / ``tool_call_count`` / ``tool_call_names``.">
<td><a href="../api/vllm_mlx/bench_serve/#contract-vllm_mlx.bench_serve._check_tool_call_count_and_names"><code>vllm_mlx.bench_serve._check_tool_call_count_and_names</code></a></td>
<td>function</td>
<td><code>vllm_mlx.bench_serve._check_tool_call_count_and_names(checks: dict, tool_calls: list[dict]) -&gt; list[str]</code></td>
<td>Apply ``no_tool_calls`` / ``tool_call_count`` / ``tool_call_names``.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/bench_serve.py#L1110-L1132">#L1110-L1132</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.bench_serve._compute_within_policy_timeout function vllm_mlx.bench_serve._compute_within_policy_timeout(timeout_ms: optional[int], *, error_present: bool, e2e_latency_ms: float) -&gt; optional[bool] resolve the ``policy.within_timeout`` field.">
<td><a href="../api/vllm_mlx/bench_serve/#contract-vllm_mlx.bench_serve._compute_within_policy_timeout"><code>vllm_mlx.bench_serve._compute_within_policy_timeout</code></a></td>
<td>function</td>
<td><code>vllm_mlx.bench_serve._compute_within_policy_timeout(timeout_ms: Optional[int], *, error_present: bool, e2e_latency_ms: float) -&gt; Optional[bool]</code></td>
<td>Resolve the ``policy.within_timeout`` field.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/bench_serve.py#L1405-L1418">#L1405-L1418</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.bench_serve._empty_completion_result function vllm_mlx.bench_serve._empty_completion_result() -&gt; dict zero-valued completion result used when ``stream_chat_completion`` raises.">
<td><a href="../api/vllm_mlx/bench_serve/#contract-vllm_mlx.bench_serve._empty_completion_result"><code>vllm_mlx.bench_serve._empty_completion_result</code></a></td>
<td>function</td>
<td><code>vllm_mlx.bench_serve._empty_completion_result() -&gt; dict</code></td>
<td>Zero-valued completion result used when ``stream_chat_completion`` raises.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/bench_serve.py#L1375-L1390">#L1375-L1390</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.bench_serve._fetch_post_run_status function async vllm_mlx.bench_serve._fetch_post_run_status(client: httpx.asyncclient, base_url: str) -&gt; dict get ``/v1/status`` after a case run, swallowing transport errors so a missing or temporarily-unavailable status endpoint does not fail the case record.">
<td><a href="../api/vllm_mlx/bench_serve/#contract-vllm_mlx.bench_serve._fetch_post_run_status"><code>vllm_mlx.bench_serve._fetch_post_run_status</code></a></td>
<td>function</td>
<td><code>async vllm_mlx.bench_serve._fetch_post_run_status(client: httpx.AsyncClient, base_url: str) -&gt; dict</code></td>
<td>GET ``/v1/status`` after a case run, swallowing transport errors so a missing or temporarily-unavailable status endpoint does not fail the case record.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/bench_serve.py#L1393-L1402">#L1393-L1402</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.bench_serve._first_not_none function vllm_mlx.bench_serve._first_not_none(*values: any) -&gt; any function `_first_not_none` has 2 explicit return paths.">
<td><a href="../api/vllm_mlx/bench_serve/#contract-vllm_mlx.bench_serve._first_not_none"><code>vllm_mlx.bench_serve._first_not_none</code></a></td>
<td>function</td>
<td><code>vllm_mlx.bench_serve._first_not_none(*values: Any) -&gt; Any</code></td>
<td>Function `_first_not_none` has 2 explicit return paths.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/bench_serve.py#L174-L178">#L174-L178</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.bench_serve._group_results_by_case_id function vllm_mlx.bench_serve._group_results_by_case_id(results: list[dict]) -&gt; dict[str, list[dict]] bucket workload case records by their ``case_id`` field, defaulting a missing ``case_id`` to the empty string so the grouping is stable.">
<td><a href="../api/vllm_mlx/bench_serve/#contract-vllm_mlx.bench_serve._group_results_by_case_id"><code>vllm_mlx.bench_serve._group_results_by_case_id</code></a></td>
<td>function</td>
<td><code>vllm_mlx.bench_serve._group_results_by_case_id(results: list[dict]) -&gt; dict[str, list[dict]]</code></td>
<td>Bucket workload case records by their ``case_id`` field, defaulting a missing ``case_id`` to the empty string so the grouping is stable.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/bench_serve.py#L1596-L1602">#L1596-L1602</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.bench_serve._load_case_request function vllm_mlx.bench_serve._load_case_request(path: str, *, workload_path: path, case_id: str) -&gt; dict function `_load_case_request` calls `path(path).expanduser`, `path`, `request_path.is_absolute`, `request_path.open`; can raise `valueerror`; returns `request`.">
<td><a href="../api/vllm_mlx/bench_serve/#contract-vllm_mlx.bench_serve._load_case_request"><code>vllm_mlx.bench_serve._load_case_request</code></a></td>
<td>function</td>
<td><code>vllm_mlx.bench_serve._load_case_request(path: str, *, workload_path: Path, case_id: str) -&gt; dict</code></td>
<td>Function `_load_case_request` calls `Path(path).expanduser`, `Path`, `request_path.is_absolute`, `request_path.open`; can raise `ValueError`; returns `request`.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/bench_serve.py#L151-L159">#L151-L159</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.bench_serve._merge_case_checks function vllm_mlx.bench_serve._merge_case_checks(default_checks: any, case_checks: any, *, case_id: str) -&gt; optional[dict] merge a case&#x27;s ``checks`` over the workload defaults.">
<td><a href="../api/vllm_mlx/bench_serve/#contract-vllm_mlx.bench_serve._merge_case_checks"><code>vllm_mlx.bench_serve._merge_case_checks</code></a></td>
<td>function</td>
<td><code>vllm_mlx.bench_serve._merge_case_checks(default_checks: Any, case_checks: Any, *, case_id: str) -&gt; Optional[dict]</code></td>
<td>Merge a case&#x27;s ``checks`` over the workload defaults.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/bench_serve.py#L194-L227">#L194-L227</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.bench_serve._normalize_cache_policy function vllm_mlx.bench_serve._normalize_cache_policy(value: optional[str]) -&gt; str normalize cache-policy spelling from cli or workload json.">
<td><a href="../api/vllm_mlx/bench_serve/#contract-vllm_mlx.bench_serve._normalize_cache_policy"><code>vllm_mlx.bench_serve._normalize_cache_policy</code></a></td>
<td>function</td>
<td><code>vllm_mlx.bench_serve._normalize_cache_policy(value: Optional[str]) -&gt; str</code></td>
<td>Normalize cache-policy spelling from CLI or workload JSON.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/bench_serve.py#L687-L698">#L687-L698</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.bench_serve._normalize_tags function vllm_mlx.bench_serve._normalize_tags(tags: any, *, case_id: str) -&gt; tuple[str, ...] coerce a workload case&#x27;s ``tags`` field to a tuple of strings.">
<td><a href="../api/vllm_mlx/bench_serve/#contract-vllm_mlx.bench_serve._normalize_tags"><code>vllm_mlx.bench_serve._normalize_tags</code></a></td>
<td>function</td>
<td><code>vllm_mlx.bench_serve._normalize_tags(tags: Any, *, case_id: str) -&gt; tuple[str, ...]</code></td>
<td>Coerce a workload case&#x27;s ``tags`` field to a tuple of strings.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/bench_serve.py#L181-L191">#L181-L191</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.bench_serve._request_extra_body function vllm_mlx.bench_serve._request_extra_body(request: dict) -&gt; dict function `_request_extra_body` calls `request.items`; returns `{key: value for key, value in request.items() if key not in reserved}`.">
<td><a href="../api/vllm_mlx/bench_serve/#contract-vllm_mlx.bench_serve._request_extra_body"><code>vllm_mlx.bench_serve._request_extra_body</code></a></td>
<td>function</td>
<td><code>vllm_mlx.bench_serve._request_extra_body(request: dict) -&gt; dict</code></td>
<td>Function `_request_extra_body` calls `request.items`; returns `{key: value for key, value in request.items() if key not in reserved}`.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/bench_serve.py#L162-L171">#L162-L171</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.bench_serve._require_message_list function vllm_mlx.bench_serve._require_message_list(value: any, *, label: str) -&gt; list[dict] function `_require_message_list` calls `isinstance`, `valueerror`, `enumerate`; can raise `valueerror`; returns `value`.">
<td><a href="../api/vllm_mlx/bench_serve/#contract-vllm_mlx.bench_serve._require_message_list"><code>vllm_mlx.bench_serve._require_message_list</code></a></td>
<td>function</td>
<td><code>vllm_mlx.bench_serve._require_message_list(value: Any, *, label: str) -&gt; list[dict]</code></td>
<td>Function `_require_message_list` calls `isinstance`, `ValueError`, `enumerate`; can raise `ValueError`; returns `value`.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/bench_serve.py#L140-L148">#L140-L148</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.bench_serve._resolve_max_tokens function vllm_mlx.bench_serve._resolve_max_tokens(case: workloadcase, workload: workload) -&gt; int return the effective ``max_tokens`` for a case, falling back to workload defaults and finally to 256.">
<td><a href="../api/vllm_mlx/bench_serve/#contract-vllm_mlx.bench_serve._resolve_max_tokens"><code>vllm_mlx.bench_serve._resolve_max_tokens</code></a></td>
<td>function</td>
<td><code>vllm_mlx.bench_serve._resolve_max_tokens(case: WorkloadCase, workload: Workload) -&gt; int</code></td>
<td>Return the effective ``max_tokens`` for a case, falling back to workload defaults and finally to 256.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/bench_serve.py#L1349-L1352">#L1349-L1352</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.bench_serve._result_to_dict function vllm_mlx.bench_serve._result_to_dict(r: benchserveresult) -&gt; dict convert a :class:`benchserveresult` to an ordered dict.">
<td><a href="../api/vllm_mlx/bench_serve/#contract-vllm_mlx.bench_serve._result_to_dict"><code>vllm_mlx.bench_serve._result_to_dict</code></a></td>
<td>function</td>
<td><code>vllm_mlx.bench_serve._result_to_dict(r: BenchServeResult) -&gt; dict</code></td>
<td>Convert a :class:`BenchServeResult` to an ordered dict.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/bench_serve.py#L1840-L1846">#L1840-L1846</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.bench_serve._sql_escape function vllm_mlx.bench_serve._sql_escape(value) -&gt; str escape a python value for use as a sql literal.">
<td><a href="../api/vllm_mlx/bench_serve/#contract-vllm_mlx.bench_serve._sql_escape"><code>vllm_mlx.bench_serve._sql_escape</code></a></td>
<td>function</td>
<td><code>vllm_mlx.bench_serve._sql_escape(value) -&gt; str</code></td>
<td>Escape a Python value for use as a SQL literal.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/bench_serve.py#L1907-L1927">#L1907-L1927</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.bench_serve._summarize_case function vllm_mlx.bench_serve._summarize_case(case_results: list[dict]) -&gt; dict build the per-case summary block.">
<td><a href="../api/vllm_mlx/bench_serve/#contract-vllm_mlx.bench_serve._summarize_case"><code>vllm_mlx.bench_serve._summarize_case</code></a></td>
<td>function</td>
<td><code>vllm_mlx.bench_serve._summarize_case(case_results: list[dict]) -&gt; dict</code></td>
<td>Build the per-case summary block.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/bench_serve.py#L1605-L1648">#L1605-L1648</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.bench_serve._summary_or_empty function vllm_mlx.bench_serve._summary_or_empty(values: list[float]) -&gt; dict function `_summary_or_empty` calls `compute_summary_stats`; returns `compute_summary_stats(values) if values else {}`.">
<td><a href="../api/vllm_mlx/bench_serve/#contract-vllm_mlx.bench_serve._summary_or_empty"><code>vllm_mlx.bench_serve._summary_or_empty</code></a></td>
<td>function</td>
<td><code>vllm_mlx.bench_serve._summary_or_empty(values: list[float]) -&gt; dict</code></td>
<td>Function `_summary_or_empty` calls `compute_summary_stats`; returns `compute_summary_stats(values) if values else {}`.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/bench_serve.py#L1345-L1346">#L1345-L1346</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.bench_serve._validate_sql_identifier function vllm_mlx.bench_serve._validate_sql_identifier(identifier: str, *, kind: str) -&gt; none reject unsafe sql identifiers before string interpolation.">
<td><a href="../api/vllm_mlx/bench_serve/#contract-vllm_mlx.bench_serve._validate_sql_identifier"><code>vllm_mlx.bench_serve._validate_sql_identifier</code></a></td>
<td>function</td>
<td><code>vllm_mlx.bench_serve._validate_sql_identifier(identifier: str, *, kind: str) -&gt; None</code></td>
<td>Reject unsafe SQL identifiers before string interpolation.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/bench_serve.py#L1993-L1996">#L1993-L1996</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.bench_serve._workload_record_to_row function vllm_mlx.bench_serve._workload_record_to_row(record: dict) -&gt; dict function `_workload_record_to_row` calls `record.get`, `metrics.get`, `&#x27;,&#x27;.join`, `hardware.get`; returns `{&#x27;run_id&#x27;: record.get(&#x27;run_id&#x27;, &#x27;&#x27;), &#x27;timestamp&#x27;: record.get(&#x27;timestamp&#x27;, &#x27;&#x27;), &#x27;workload&#x27;: record.get(&#x27;workload&#x27;, &#x27;&#x27;), …`.">
<td><a href="../api/vllm_mlx/bench_serve/#contract-vllm_mlx.bench_serve._workload_record_to_row"><code>vllm_mlx.bench_serve._workload_record_to_row</code></a></td>
<td>function</td>
<td><code>vllm_mlx.bench_serve._workload_record_to_row(record: dict) -&gt; dict</code></td>
<td>Function `_workload_record_to_row` calls `record.get`, `metrics.get`, `&#x27;,&#x27;.join`, `hardware.get`; returns `{&#x27;run_id&#x27;: record.get(&#x27;run_id&#x27;, &#x27;&#x27;), &#x27;timestamp&#x27;: record.get(&#x27;timestamp&#x27;, &#x27;&#x27;), &#x27;workload&#x27;: record.get(&#x27;workload&#x27;, &#x27;&#x27;), …`.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/bench_serve.py#L2069-L2119">#L2069-L2119</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.bench_serve._write_sqlite_rows function vllm_mlx.bench_serve._write_sqlite_rows(output_path: str, *, table: str, schema: str, columns: list[str], rows: list[dict]) -&gt; none append benchmark rows to a sqlite database.">
<td><a href="../api/vllm_mlx/bench_serve/#contract-vllm_mlx.bench_serve._write_sqlite_rows"><code>vllm_mlx.bench_serve._write_sqlite_rows</code></a></td>
<td>function</td>
<td><code>vllm_mlx.bench_serve._write_sqlite_rows(output_path: str, *, table: str, schema: str, columns: list[str], rows: list[dict]) -&gt; None</code></td>
<td>Append benchmark rows to a SQLite database.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/bench_serve.py#L1967-L1990">#L1967-L1990</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.bench_serve.accumulate_tool_calls function vllm_mlx.bench_serve.accumulate_tool_calls(acc: dict[int, dict], delta_list: list[dict]) -&gt; none merge streamed openai tool-call deltas into *acc* by index.">
<td><a href="../api/vllm_mlx/bench_serve/#contract-vllm_mlx.bench_serve.accumulate_tool_calls"><code>vllm_mlx.bench_serve.accumulate_tool_calls</code></a></td>
<td>function</td>
<td><code>vllm_mlx.bench_serve.accumulate_tool_calls(acc: dict[int, dict], delta_list: list[dict]) -&gt; None</code></td>
<td>Merge streamed OpenAI tool-call deltas into *acc* by index.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/bench_serve.py#L773-L792">#L773-L792</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.bench_serve.auto_detect_runtime function async vllm_mlx.bench_serve.auto_detect_runtime(client: httpx.asyncclient, base_url: str) -&gt; dict query the running server and return a runtime descriptor dict.">
<td><a href="../api/vllm_mlx/bench_serve/#contract-vllm_mlx.bench_serve.auto_detect_runtime"><code>vllm_mlx.bench_serve.auto_detect_runtime</code></a></td>
<td>function</td>
<td><code>async vllm_mlx.bench_serve.auto_detect_runtime(client: httpx.AsyncClient, base_url: str) -&gt; dict</code></td>
<td>Query the running server and return a runtime descriptor dict.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/bench_serve.py#L576-L642">#L576-L642</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="class" data-symbol-search="vllm_mlx.bench_serve.benchserveresult class vllm_mlx.bench_serve.benchserveresult(run_id: str = &#x27;&#x27;, timestamp: str = &#x27;&#x27;, tag: str = &#x27;&#x27;, chip: str = &#x27;&#x27;, gpu_cores: int = 0, memory_gb: float = 0.0, bandwidth_gbs: float = 0.0, os_version: str = &#x27;&#x27;, model_id: str = &#x27;&#x27;, model_type: str = &#x27;&#x27;, engine_type: str = &#x27;&#x27;, mtp_enabled: bool = false, specprefill: bool = false, kv_quant: str = &#x27;&#x27;, cache_type: str = &#x27;&#x27;, prompt_set: str = &#x27;&#x27;, concurrency: int = 1, max_tokens: int = 256, enable_thinking: optional[bool] = none, extra_body: str = &#x27;&#x27;, repetition: int = 0, prompt_tokens: int = 0, ttft_ms: float = 0.0, tpot_ms: float = 0.0, e2e_latency_ms: float = 0.0, gen_tps: float = 0.0, prompt_tps: float = 0.0, throughput_tps: float = 0.0, requests_per_s: float = 0.0, metal_active_gb: float = 0.0, metal_peak_gb: float = 0.0, metal_cache_gb: float = 0.0, cache_hits: int = 0, cache_misses: int = 0, cache_hit_rate: float = 0.0, tokens_saved: int = 0, validated: bool = true) aggregated results from a single bench-serve run configuration.">
<td><a href="../api/vllm_mlx/bench_serve/#contract-vllm_mlx.bench_serve.BenchServeResult"><code>vllm_mlx.bench_serve.BenchServeResult</code></a></td>
<td>class</td>
<td><code>vllm_mlx.bench_serve.BenchServeResult(run_id: str = &#x27;&#x27;, timestamp: str = &#x27;&#x27;, tag: str = &#x27;&#x27;, chip: str = &#x27;&#x27;, gpu_cores: int = 0, memory_gb: float = 0.0, bandwidth_gbs: float = 0.0, os_version: str = &#x27;&#x27;, model_id: str = &#x27;&#x27;, model_type: str = &#x27;&#x27;, engine_type: str = &#x27;&#x27;, mtp_enabled: bool = False, specprefill: bool = False, kv_quant: str = &#x27;&#x27;, cache_type: str = &#x27;&#x27;, prompt_set: str = &#x27;&#x27;, concurrency: int = 1, max_tokens: int = 256, enable_thinking: Optional[bool] = None, extra_body: str = &#x27;&#x27;, repetition: int = 0, prompt_tokens: int = 0, ttft_ms: float = 0.0, tpot_ms: float = 0.0, e2e_latency_ms: float = 0.0, gen_tps: float = 0.0, prompt_tps: float = 0.0, throughput_tps: float = 0.0, requests_per_s: float = 0.0, metal_active_gb: float = 0.0, metal_peak_gb: float = 0.0, metal_cache_gb: float = 0.0, cache_hits: int = 0, cache_misses: int = 0, cache_hit_rate: float = 0.0, tokens_saved: int = 0, validated: bool = True)</code></td>
<td>Aggregated results from a single bench-serve run configuration.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/bench_serve.py#L344-L400">#L344-L400</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.bench_serve.clear_runtime_cache function async vllm_mlx.bench_serve.clear_runtime_cache(client: httpx.asyncclient, base_url: str) -&gt; dict clear server-side runtime caches and return a json-serializable event.">
<td><a href="../api/vllm_mlx/bench_serve/#contract-vllm_mlx.bench_serve.clear_runtime_cache"><code>vllm_mlx.bench_serve.clear_runtime_cache</code></a></td>
<td>function</td>
<td><code>async vllm_mlx.bench_serve.clear_runtime_cache(client: httpx.AsyncClient, base_url: str) -&gt; dict</code></td>
<td>Clear server-side runtime caches and return a JSON-serializable event.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/bench_serve.py#L664-L684">#L664-L684</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.bench_serve.compute_request_metrics function vllm_mlx.bench_serve.compute_request_metrics(t_start: float, t_first_token: float, token_times: list, t_end: float, prompt_tokens: int, completion_tokens: int) -&gt; dict compute standard latency and throughput metrics for a single request.">
<td><a href="../api/vllm_mlx/bench_serve/#contract-vllm_mlx.bench_serve.compute_request_metrics"><code>vllm_mlx.bench_serve.compute_request_metrics</code></a></td>
<td>function</td>
<td><code>vllm_mlx.bench_serve.compute_request_metrics(t_start: float, t_first_token: float, token_times: list, t_end: float, prompt_tokens: int, completion_tokens: int) -&gt; dict</code></td>
<td>Compute standard latency and throughput metrics for a single request.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/bench_serve.py#L800-L852">#L800-L852</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.bench_serve.compute_summary_stats function vllm_mlx.bench_serve.compute_summary_stats(values: list[float]) -&gt; dict compute summary statistics over a list of floats.">
<td><a href="../api/vllm_mlx/bench_serve/#contract-vllm_mlx.bench_serve.compute_summary_stats"><code>vllm_mlx.bench_serve.compute_summary_stats</code></a></td>
<td>function</td>
<td><code>vllm_mlx.bench_serve.compute_summary_stats(values: list[float]) -&gt; dict</code></td>
<td>Compute summary statistics over a list of floats.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/bench_serve.py#L1234-L1276">#L1234-L1276</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="nested function" data-symbol-search="vllm_mlx.bench_serve.compute_summary_stats._percentile nested function vllm_mlx.bench_serve.compute_summary_stats._percentile(p: float) -&gt; float nested function `compute_summary_stats._percentile` calls `int`; has 3 explicit return paths.">
<td><a href="../api/vllm_mlx/bench_serve/#contract-vllm_mlx.bench_serve.compute_summary_stats._percentile"><code>vllm_mlx.bench_serve.compute_summary_stats._percentile</code></a></td>
<td>nested function</td>
<td><code>vllm_mlx.bench_serve.compute_summary_stats._percentile(p: float) -&gt; float</code></td>
<td>Nested Function `compute_summary_stats._percentile` calls `int`; has 3 explicit return paths.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/bench_serve.py#L1256-L1266">#L1256-L1266</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.bench_serve.count_prompt_tokens function async vllm_mlx.bench_serve.count_prompt_tokens(client: httpx.asyncclient, base_url: str, messages: list[dict], model: str) -&gt; int count prompt tokens for a message list by sending a 1-token request.">
<td><a href="../api/vllm_mlx/bench_serve/#contract-vllm_mlx.bench_serve.count_prompt_tokens"><code>vllm_mlx.bench_serve.count_prompt_tokens</code></a></td>
<td>function</td>
<td><code>async vllm_mlx.bench_serve.count_prompt_tokens(client: httpx.AsyncClient, base_url: str, messages: list[dict], model: str) -&gt; int</code></td>
<td>Count prompt tokens for a message list by sending a 1-token request.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/bench_serve.py#L855-L889">#L855-L889</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.bench_serve.detect_hardware_fingerprint function vllm_mlx.bench_serve.detect_hardware_fingerprint() -&gt; dict return a hardware fingerprint dict for the current machine.">
<td><a href="../api/vllm_mlx/bench_serve/#contract-vllm_mlx.bench_serve.detect_hardware_fingerprint"><code>vllm_mlx.bench_serve.detect_hardware_fingerprint</code></a></td>
<td>function</td>
<td><code>vllm_mlx.bench_serve.detect_hardware_fingerprint() -&gt; dict</code></td>
<td>Return a hardware fingerprint dict for the current machine.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/bench_serve.py#L524-L573">#L524-L573</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.bench_serve.expand_sweep function vllm_mlx.bench_serve.expand_sweep(prompt_sets: list[str], concurrencies: list[int], thinking_values: list[optional[bool]], extra_bodies: list[str], repetitions: int) -&gt; list[sweepconfig] expand sweep parameters into a flat list of configurations.">
<td><a href="../api/vllm_mlx/bench_serve/#contract-vllm_mlx.bench_serve.expand_sweep"><code>vllm_mlx.bench_serve.expand_sweep</code></a></td>
<td>function</td>
<td><code>vllm_mlx.bench_serve.expand_sweep(prompt_sets: list[str], concurrencies: list[int], thinking_values: list[Optional[bool]], extra_bodies: list[str], repetitions: int) -&gt; list[SweepConfig]</code></td>
<td>Expand sweep parameters into a flat list of configurations.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/bench_serve.py#L411-L444">#L411-L444</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.bench_serve.finalize_tool_calls function vllm_mlx.bench_serve.finalize_tool_calls(acc: dict[int, dict]) -&gt; list[dict] return accumulated tool calls in stream index order.">
<td><a href="../api/vllm_mlx/bench_serve/#contract-vllm_mlx.bench_serve.finalize_tool_calls"><code>vllm_mlx.bench_serve.finalize_tool_calls</code></a></td>
<td>function</td>
<td><code>vllm_mlx.bench_serve.finalize_tool_calls(acc: dict[int, dict]) -&gt; list[dict]</code></td>
<td>Return accumulated tool calls in stream index order.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/bench_serve.py#L795-L797">#L795-L797</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.bench_serve.format_csv function vllm_mlx.bench_serve.format_csv(results: list[benchserveresult]) -&gt; str serialize benchmark results as csv with a header row.">
<td><a href="../api/vllm_mlx/bench_serve/#contract-vllm_mlx.bench_serve.format_csv"><code>vllm_mlx.bench_serve.format_csv</code></a></td>
<td>function</td>
<td><code>vllm_mlx.bench_serve.format_csv(results: list[BenchServeResult]) -&gt; str</code></td>
<td>Serialize benchmark results as CSV with a header row.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/bench_serve.py#L1888-L1904">#L1888-L1904</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.bench_serve.format_json function vllm_mlx.bench_serve.format_json(results: list[benchserveresult]) -&gt; str serialize benchmark results as a json array.">
<td><a href="../api/vllm_mlx/bench_serve/#contract-vllm_mlx.bench_serve.format_json"><code>vllm_mlx.bench_serve.format_json</code></a></td>
<td>function</td>
<td><code>vllm_mlx.bench_serve.format_json(results: list[BenchServeResult]) -&gt; str</code></td>
<td>Serialize benchmark results as a JSON array.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/bench_serve.py#L1874-L1885">#L1874-L1885</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.bench_serve.format_sql function vllm_mlx.bench_serve.format_sql(results: list[benchserveresult]) -&gt; str emit a sql ``create table if not exists`` statement and insert rows.">
<td><a href="../api/vllm_mlx/bench_serve/#contract-vllm_mlx.bench_serve.format_sql"><code>vllm_mlx.bench_serve.format_sql</code></a></td>
<td>function</td>
<td><code>vllm_mlx.bench_serve.format_sql(results: list[BenchServeResult]) -&gt; str</code></td>
<td>Emit a SQL ``CREATE TABLE IF NOT EXISTS`` statement and INSERT rows.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/bench_serve.py#L1945-L1964">#L1945-L1964</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.bench_serve.format_table function vllm_mlx.bench_serve.format_table(results: list[benchserveresult]) -&gt; str render a human-readable terminal table of benchmark results.">
<td><a href="../api/vllm_mlx/bench_serve/#contract-vllm_mlx.bench_serve.format_table"><code>vllm_mlx.bench_serve.format_table</code></a></td>
<td>function</td>
<td><code>vllm_mlx.bench_serve.format_table(results: list[BenchServeResult]) -&gt; str</code></td>
<td>Render a human-readable terminal table of benchmark results.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/bench_serve.py#L1849-L1871">#L1849-L1871</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.bench_serve.format_workload_csv function vllm_mlx.bench_serve.format_workload_csv(payload: dict) -&gt; str serialize workload result records with the stable csv column contract.">
<td><a href="../api/vllm_mlx/bench_serve/#contract-vllm_mlx.bench_serve.format_workload_csv"><code>vllm_mlx.bench_serve.format_workload_csv</code></a></td>
<td>function</td>
<td><code>vllm_mlx.bench_serve.format_workload_csv(payload: dict) -&gt; str</code></td>
<td>Serialize workload result records with the stable CSV column contract.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/bench_serve.py#L2143-L2151">#L2143-L2151</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.bench_serve.format_workload_json function vllm_mlx.bench_serve.format_workload_json(payload: dict) -&gt; str serialize a workload result payload as indented json.">
<td><a href="../api/vllm_mlx/bench_serve/#contract-vllm_mlx.bench_serve.format_workload_json"><code>vllm_mlx.bench_serve.format_workload_json</code></a></td>
<td>function</td>
<td><code>vllm_mlx.bench_serve.format_workload_json(payload: dict) -&gt; str</code></td>
<td>Serialize a workload result payload as indented JSON.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/bench_serve.py#L2137-L2140">#L2137-L2140</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.bench_serve.format_workload_payload function vllm_mlx.bench_serve.format_workload_payload(payload: dict, fmt: str = &#x27;json&#x27;) -&gt; str serialize a workload payload in the requested text output format.">
<td><a href="../api/vllm_mlx/bench_serve/#contract-vllm_mlx.bench_serve.format_workload_payload"><code>vllm_mlx.bench_serve.format_workload_payload</code></a></td>
<td>function</td>
<td><code>vllm_mlx.bench_serve.format_workload_payload(payload: dict, fmt: str = &#x27;json&#x27;) -&gt; str</code></td>
<td>Serialize a workload payload in the requested text output format.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/bench_serve.py#L2196-L2211">#L2196-L2211</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.bench_serve.format_workload_sql function vllm_mlx.bench_serve.format_workload_sql(payload: dict) -&gt; str render sql statements that create and populate the workload table.">
<td><a href="../api/vllm_mlx/bench_serve/#contract-vllm_mlx.bench_serve.format_workload_sql"><code>vllm_mlx.bench_serve.format_workload_sql</code></a></td>
<td>function</td>
<td><code>vllm_mlx.bench_serve.format_workload_sql(payload: dict) -&gt; str</code></td>
<td>Render SQL statements that create and populate the workload table.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/bench_serve.py#L2170-L2180">#L2170-L2180</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.bench_serve.format_workload_table function vllm_mlx.bench_serve.format_workload_table(payload: dict) -&gt; str format workload result records as a compact human-readable table.">
<td><a href="../api/vllm_mlx/bench_serve/#contract-vllm_mlx.bench_serve.format_workload_table"><code>vllm_mlx.bench_serve.format_workload_table</code></a></td>
<td>function</td>
<td><code>vllm_mlx.bench_serve.format_workload_table(payload: dict) -&gt; str</code></td>
<td>Format workload result records as a compact human-readable table.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/bench_serve.py#L2122-L2134">#L2122-L2134</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.bench_serve.load_prompt_set function vllm_mlx.bench_serve.load_prompt_set(name_or_path: str) -&gt; list[list[dict]] load a prompt set by builtin name or file path.">
<td><a href="../api/vllm_mlx/bench_serve/#contract-vllm_mlx.bench_serve.load_prompt_set"><code>vllm_mlx.bench_serve.load_prompt_set</code></a></td>
<td>function</td>
<td><code>vllm_mlx.bench_serve.load_prompt_set(name_or_path: str) -&gt; list[list[dict]]</code></td>
<td>Load a prompt set by builtin name or file path.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/bench_serve.py#L75-L137">#L75-L137</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.bench_serve.load_workload function vllm_mlx.bench_serve.load_workload(path: str | path) -&gt; workload load a declarative serving benchmark workload.">
<td><a href="../api/vllm_mlx/bench_serve/#contract-vllm_mlx.bench_serve.load_workload"><code>vllm_mlx.bench_serve.load_workload</code></a></td>
<td>function</td>
<td><code>vllm_mlx.bench_serve.load_workload(path: str | Path) -&gt; Workload</code></td>
<td>Load a declarative serving benchmark workload.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/bench_serve.py#L303-L335">#L303-L335</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.bench_serve.parse_health_response function vllm_mlx.bench_serve.parse_health_response(data: dict) -&gt; dict extract model identity fields from a get /health response.">
<td><a href="../api/vllm_mlx/bench_serve/#contract-vllm_mlx.bench_serve.parse_health_response"><code>vllm_mlx.bench_serve.parse_health_response</code></a></td>
<td>function</td>
<td><code>vllm_mlx.bench_serve.parse_health_response(data: dict) -&gt; dict</code></td>
<td>Extract model identity fields from a GET /health response.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/bench_serve.py#L452-L467">#L452-L467</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.bench_serve.parse_metrics_text function vllm_mlx.bench_serve.parse_metrics_text(text: str) -&gt; dict parse prometheus text exposition format from get /metrics.">
<td><a href="../api/vllm_mlx/bench_serve/#contract-vllm_mlx.bench_serve.parse_metrics_text"><code>vllm_mlx.bench_serve.parse_metrics_text</code></a></td>
<td>function</td>
<td><code>vllm_mlx.bench_serve.parse_metrics_text(text: str) -&gt; dict</code></td>
<td>Parse Prometheus text exposition format from GET /metrics.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/bench_serve.py#L499-L521">#L499-L521</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="nested function" data-symbol-search="vllm_mlx.bench_serve.parse_metrics_text._extract nested function vllm_mlx.bench_serve.parse_metrics_text._extract(metric_name: str) -&gt; int nested function `parse_metrics_text._extract` calls `re.escape`, `re.search`, `int`, `m.group`; returns `int(m.group(1)) if m else 0`.">
<td><a href="../api/vllm_mlx/bench_serve/#contract-vllm_mlx.bench_serve.parse_metrics_text._extract"><code>vllm_mlx.bench_serve.parse_metrics_text._extract</code></a></td>
<td>nested function</td>
<td><code>vllm_mlx.bench_serve.parse_metrics_text._extract(metric_name: str) -&gt; int</code></td>
<td>Nested Function `parse_metrics_text._extract` calls `re.escape`, `re.search`, `int`, `m.group`; returns `int(m.group(1)) if m else 0`.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/bench_serve.py#L512-L515">#L512-L515</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.bench_serve.parse_sse_line function vllm_mlx.bench_serve.parse_sse_line(line: str) -&gt; optional[dict] parse one server-sent events line from a streaming chat completion.">
<td><a href="../api/vllm_mlx/bench_serve/#contract-vllm_mlx.bench_serve.parse_sse_line"><code>vllm_mlx.bench_serve.parse_sse_line</code></a></td>
<td>function</td>
<td><code>vllm_mlx.bench_serve.parse_sse_line(line: str) -&gt; Optional[dict]</code></td>
<td>Parse one Server-Sent Events line from a streaming chat completion.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/bench_serve.py#L706-L754">#L706-L754</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.bench_serve.parse_status_response function vllm_mlx.bench_serve.parse_status_response(data: dict) -&gt; dict extract metal and cache info from a get /v1/status response.">
<td><a href="../api/vllm_mlx/bench_serve/#contract-vllm_mlx.bench_serve.parse_status_response"><code>vllm_mlx.bench_serve.parse_status_response</code></a></td>
<td>function</td>
<td><code>vllm_mlx.bench_serve.parse_status_response(data: dict) -&gt; dict</code></td>
<td>Extract metal and cache info from a GET /v1/status response.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/bench_serve.py#L470-L496">#L470-L496</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.bench_serve.run_bench_serve function async vllm_mlx.bench_serve.run_bench_serve(url: str = &#x27;http://127.0.0.1:8080&#x27;, model: optional[str] = none, prompt_sets: list[str] = none, prompt_file: optional[str] = none, concurrencies: list[int] = none, max_tokens: int = 256, repetitions: int = 3, warmup: int = 1, thinking_values: list[optional[bool]] = none, extra_bodies: list[str] = none, output_path: optional[str] = none, fmt: str = &#x27;table&#x27;, do_validate: bool = true, scrape: bool = true, tag: optional[str] = none, override_fields: optional[dict] = none, system_prompt_file: optional[str] = none, skip_preflight_token_count: bool = false) -&gt; list[benchserveresult] run the full bench-serve sweep against a running vllm-mlx server.">
<td><a href="../api/vllm_mlx/bench_serve/#contract-vllm_mlx.bench_serve.run_bench_serve"><code>vllm_mlx.bench_serve.run_bench_serve</code></a></td>
<td>function</td>
<td><code>async vllm_mlx.bench_serve.run_bench_serve(url: str = &#x27;http://127.0.0.1:8080&#x27;, model: Optional[str] = None, prompt_sets: list[str] = None, prompt_file: Optional[str] = None, concurrencies: list[int] = None, max_tokens: int = 256, repetitions: int = 3, warmup: int = 1, thinking_values: list[Optional[bool]] = None, extra_bodies: list[str] = None, output_path: Optional[str] = None, fmt: str = &#x27;table&#x27;, do_validate: bool = True, scrape: bool = True, tag: Optional[str] = None, override_fields: Optional[dict] = None, system_prompt_file: Optional[str] = None, skip_preflight_token_count: bool = False) -&gt; list[BenchServeResult]</code></td>
<td>Run the full bench-serve sweep against a running vllm-mlx server.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/bench_serve.py#L2221-L2638">#L2221-L2638</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="nested function" data-symbol-search="vllm_mlx.bench_serve.run_bench_serve._mean nested function vllm_mlx.bench_serve.run_bench_serve._mean(key: str) -&gt; float nested function `run_bench_serve._mean` calls `statistics.mean`; returns `statistics.mean(vals) if vals else 0.0`.">
<td><a href="../api/vllm_mlx/bench_serve/#contract-vllm_mlx.bench_serve.run_bench_serve._mean"><code>vllm_mlx.bench_serve.run_bench_serve._mean</code></a></td>
<td>nested function</td>
<td><code>vllm_mlx.bench_serve.run_bench_serve._mean(key: str) -&gt; float</code></td>
<td>Nested Function `run_bench_serve._mean` calls `statistics.mean`; returns `statistics.mean(vals) if vals else 0.0`.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/bench_serve.py#L2522-L2526">#L2522-L2526</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.bench_serve.run_bench_serve_workload function async vllm_mlx.bench_serve.run_bench_serve_workload(*, url: str, workload_path: str, model: optional[str] = none, output_path: optional[str] = none, output_format: str = &#x27;json&#x27;, scrape: bool = true, include_content: bool = false, request_timeout_s: optional[float] = 300.0, repetitions: int = 1, cache_policy: optional[str] = none) -&gt; dict run a declarative workload against a running server.">
<td><a href="../api/vllm_mlx/bench_serve/#contract-vllm_mlx.bench_serve.run_bench_serve_workload"><code>vllm_mlx.bench_serve.run_bench_serve_workload</code></a></td>
<td>function</td>
<td><code>async vllm_mlx.bench_serve.run_bench_serve_workload(*, url: str, workload_path: str, model: Optional[str] = None, output_path: Optional[str] = None, output_format: str = &#x27;json&#x27;, scrape: bool = True, include_content: bool = False, request_timeout_s: Optional[float] = 300.0, repetitions: int = 1, cache_policy: Optional[str] = None) -&gt; dict</code></td>
<td>Run a declarative workload against a running server.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/bench_serve.py#L1692-L1818">#L1692-L1818</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.bench_serve.run_concurrent_requests function async vllm_mlx.bench_serve.run_concurrent_requests(client: httpx.asyncclient, base_url: str, prompts: list[list[dict]], model: str, concurrency: int, max_tokens: int = 256, enable_thinking: optional[bool] = none, extra_body: optional[dict] = none, do_validate: bool = true) -&gt; list[dict] fire ``concurrency`` concurrent streaming requests and collect results.">
<td><a href="../api/vllm_mlx/bench_serve/#contract-vllm_mlx.bench_serve.run_concurrent_requests"><code>vllm_mlx.bench_serve.run_concurrent_requests</code></a></td>
<td>function</td>
<td><code>async vllm_mlx.bench_serve.run_concurrent_requests(client: httpx.AsyncClient, base_url: str, prompts: list[list[dict]], model: str, concurrency: int, max_tokens: int = 256, enable_thinking: Optional[bool] = None, extra_body: Optional[dict] = None, do_validate: bool = True) -&gt; list[dict]</code></td>
<td>Fire ``concurrency`` concurrent streaming requests and collect results.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/bench_serve.py#L1279-L1342">#L1279-L1342</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="nested function" data-symbol-search="vllm_mlx.bench_serve.run_concurrent_requests._single nested function async vllm_mlx.bench_serve.run_concurrent_requests._single(messages: list[dict]) -&gt; dict nested function `run_concurrent_requests._single` calls `stream_chat_completion`, `validate_response`, `result.get`, `str`; awaits asynchronous work; has 2 explicit return paths.">
<td><a href="../api/vllm_mlx/bench_serve/#contract-vllm_mlx.bench_serve.run_concurrent_requests._single"><code>vllm_mlx.bench_serve.run_concurrent_requests._single</code></a></td>
<td>nested function</td>
<td><code>async vllm_mlx.bench_serve.run_concurrent_requests._single(messages: list[dict]) -&gt; dict</code></td>
<td>Nested Function `run_concurrent_requests._single` calls `stream_chat_completion`, `validate_response`, `result.get`, `str`; awaits asynchronous work; has 2 explicit return paths.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/bench_serve.py#L1315-L1339">#L1315-L1339</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.bench_serve.run_workload_case function async vllm_mlx.bench_serve.run_workload_case(client: httpx.asyncclient, base_url: str, *, workload: workload, case: workloadcase, model: str, runtime: dict, hardware: dict, run_id: str, timestamp: str, repetition: int = 0, scrape: bool = true, include_content: bool = false, cache_reset: optional[dict] = none) -&gt; dict run one workload case and return a json-serializable result.">
<td><a href="../api/vllm_mlx/bench_serve/#contract-vllm_mlx.bench_serve.run_workload_case"><code>vllm_mlx.bench_serve.run_workload_case</code></a></td>
<td>function</td>
<td><code>async vllm_mlx.bench_serve.run_workload_case(client: httpx.AsyncClient, base_url: str, *, workload: Workload, case: WorkloadCase, model: str, runtime: dict, hardware: dict, run_id: str, timestamp: str, repetition: int = 0, scrape: bool = True, include_content: bool = False, cache_reset: Optional[dict] = None) -&gt; dict</code></td>
<td>Run one workload case and return a JSON-serializable result.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/bench_serve.py#L1518-L1593">#L1518-L1593</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.bench_serve.scrape_metrics function async vllm_mlx.bench_serve.scrape_metrics(client: httpx.asyncclient, base_url: str) -&gt; dict scrape prometheus metrics from the server.">
<td><a href="../api/vllm_mlx/bench_serve/#contract-vllm_mlx.bench_serve.scrape_metrics"><code>vllm_mlx.bench_serve.scrape_metrics</code></a></td>
<td>function</td>
<td><code>async vllm_mlx.bench_serve.scrape_metrics(client: httpx.AsyncClient, base_url: str) -&gt; dict</code></td>
<td>Scrape Prometheus metrics from the server.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/bench_serve.py#L645-L661">#L645-L661</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.bench_serve.stream_chat_completion function async vllm_mlx.bench_serve.stream_chat_completion(client: httpx.asyncclient, base_url: str, messages: list[dict], model: str, max_tokens: int = 256, enable_thinking: optional[bool] = none, extra_body: optional[dict] = none, timeout_s: optional[float] = none) -&gt; dict send a streaming chat completion and collect per-token timing data.">
<td><a href="../api/vllm_mlx/bench_serve/#contract-vllm_mlx.bench_serve.stream_chat_completion"><code>vllm_mlx.bench_serve.stream_chat_completion</code></a></td>
<td>function</td>
<td><code>async vllm_mlx.bench_serve.stream_chat_completion(client: httpx.AsyncClient, base_url: str, messages: list[dict], model: str, max_tokens: int = 256, enable_thinking: Optional[bool] = None, extra_body: Optional[dict] = None, timeout_s: Optional[float] = None) -&gt; dict</code></td>
<td>Send a streaming chat completion and collect per-token timing data.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/bench_serve.py#L892-L1012">#L892-L1012</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="nested function" data-symbol-search="vllm_mlx.bench_serve.stream_chat_completion._consume_stream nested function async vllm_mlx.bench_serve.stream_chat_completion._consume_stream() -&gt; none nested function `stream_chat_completion._consume_stream` calls `client.stream`, `response.raise_for_status`, `response.aiter_lines`, `parse_sse_line`.">
<td><a href="../api/vllm_mlx/bench_serve/#contract-vllm_mlx.bench_serve.stream_chat_completion._consume_stream"><code>vllm_mlx.bench_serve.stream_chat_completion._consume_stream</code></a></td>
<td>nested function</td>
<td><code>async vllm_mlx.bench_serve.stream_chat_completion._consume_stream() -&gt; None</code></td>
<td>Nested Function `stream_chat_completion._consume_stream` calls `client.stream`, `response.raise_for_status`, `response.aiter_lines`, `parse_sse_line`.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/bench_serve.py#L946-L975">#L946-L975</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.bench_serve.summarize_workload_results function vllm_mlx.bench_serve.summarize_workload_results(results: list[dict]) -&gt; dict aggregate workload case records into stable qualification summary stats.">
<td><a href="../api/vllm_mlx/bench_serve/#contract-vllm_mlx.bench_serve.summarize_workload_results"><code>vllm_mlx.bench_serve.summarize_workload_results</code></a></td>
<td>function</td>
<td><code>vllm_mlx.bench_serve.summarize_workload_results(results: list[dict]) -&gt; dict</code></td>
<td>Aggregate workload case records into stable qualification summary stats.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/bench_serve.py#L1651-L1689">#L1651-L1689</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.bench_serve.validate_quality_checks function vllm_mlx.bench_serve.validate_quality_checks(finish_reason: optional[str], content: str, checks: optional[dict], *, status_code: int = 200, tool_calls: optional[list[dict]] = none) -&gt; tuple[bool, list[str]] validate content against generic workload quality checks.">
<td><a href="../api/vllm_mlx/bench_serve/#contract-vllm_mlx.bench_serve.validate_quality_checks"><code>vllm_mlx.bench_serve.validate_quality_checks</code></a></td>
<td>function</td>
<td><code>vllm_mlx.bench_serve.validate_quality_checks(finish_reason: Optional[str], content: str, checks: Optional[dict], *, status_code: int = 200, tool_calls: Optional[list[dict]] = None) -&gt; tuple[bool, list[str]]</code></td>
<td>Validate content against generic workload quality checks.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/bench_serve.py#L1177-L1231">#L1177-L1231</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.bench_serve.validate_response function vllm_mlx.bench_serve.validate_response(finish_reason: optional[str], content: str, status_code: int, *, tool_calls: optional[list[dict]] = none) -&gt; tuple[bool, str] validate a single streaming response result.">
<td><a href="../api/vllm_mlx/bench_serve/#contract-vllm_mlx.bench_serve.validate_response"><code>vllm_mlx.bench_serve.validate_response</code></a></td>
<td>function</td>
<td><code>vllm_mlx.bench_serve.validate_response(finish_reason: Optional[str], content: str, status_code: int, *, tool_calls: Optional[list[dict]] = None) -&gt; tuple[bool, str]</code></td>
<td>Validate a single streaming response result.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/bench_serve.py#L1020-L1049">#L1020-L1049</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="class" data-symbol-search="vllm_mlx.bench_serve.workload class vllm_mlx.bench_serve.workload(name: str, description: str, defaults: dict, cases: list[workloadcase]) normalized bench-serve workload manifest.">
<td><a href="../api/vllm_mlx/bench_serve/#contract-vllm_mlx.bench_serve.Workload"><code>vllm_mlx.bench_serve.Workload</code></a></td>
<td>class</td>
<td><code>vllm_mlx.bench_serve.Workload(name: str, description: str, defaults: dict, cases: list[WorkloadCase])</code></td>
<td>Normalized bench-serve workload manifest.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/bench_serve.py#L66-L72">#L66-L72</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="class" data-symbol-search="vllm_mlx.bench_serve.workloadcase class vllm_mlx.bench_serve.workloadcase(case_id: str, messages: list[dict], request_path: optional[str] = none, max_tokens: optional[int] = none, enable_thinking: optional[bool] = none, extra_body: optional[dict] = none, policy_timeout_ms: optional[int] = none, checks: optional[dict] = none, tags: tuple[str, ...] = ()) one declarative benchmark case for contract-style serving tests.">
<td><a href="../api/vllm_mlx/bench_serve/#contract-vllm_mlx.bench_serve.WorkloadCase"><code>vllm_mlx.bench_serve.WorkloadCase</code></a></td>
<td>class</td>
<td><code>vllm_mlx.bench_serve.WorkloadCase(case_id: str, messages: list[dict], request_path: Optional[str] = None, max_tokens: Optional[int] = None, enable_thinking: Optional[bool] = None, extra_body: Optional[dict] = None, policy_timeout_ms: Optional[int] = None, checks: Optional[dict] = None, tags: tuple[str, ...] = ())</code></td>
<td>One declarative benchmark case for contract-style serving tests.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/bench_serve.py#L51-L62">#L51-L62</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.bench_serve.write_sqlite function vllm_mlx.bench_serve.write_sqlite(results: list[benchserveresult], output_path: str) -&gt; none append prompt-sweep benchmark results to a sqlite database.">
<td><a href="../api/vllm_mlx/bench_serve/#contract-vllm_mlx.bench_serve.write_sqlite"><code>vllm_mlx.bench_serve.write_sqlite</code></a></td>
<td>function</td>
<td><code>vllm_mlx.bench_serve.write_sqlite(results: list[BenchServeResult], output_path: str) -&gt; None</code></td>
<td>Append prompt-sweep benchmark results to a SQLite database.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/bench_serve.py#L1999-L2009">#L1999-L2009</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.bench_serve.write_workload_sqlite function vllm_mlx.bench_serve.write_workload_sqlite(payload: dict, output_path: str) -&gt; none append workload result records to a sqlite database.">
<td><a href="../api/vllm_mlx/bench_serve/#contract-vllm_mlx.bench_serve.write_workload_sqlite"><code>vllm_mlx.bench_serve.write_workload_sqlite</code></a></td>
<td>function</td>
<td><code>vllm_mlx.bench_serve.write_workload_sqlite(payload: dict, output_path: str) -&gt; None</code></td>
<td>Append workload result records to a SQLite database.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/bench_serve.py#L2183-L2193">#L2183-L2193</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.benchmark.benchmark_mllm_resolution function vllm_mlx.benchmark.benchmark_mllm_resolution(model, processor, config, base_image: image.image, width: int, height: int, max_tokens: int = 256, warmup: bool = false) -&gt; mllmbenchmarkresult run mllm benchmark for a specific resolution.">
<td><a href="../api/vllm_mlx/benchmark/#contract-vllm_mlx.benchmark.benchmark_mllm_resolution"><code>vllm_mlx.benchmark.benchmark_mllm_resolution</code></a></td>
<td>function</td>
<td><code>vllm_mlx.benchmark.benchmark_mllm_resolution(model, processor, config, base_image: Image.Image, width: int, height: int, max_tokens: int = 256, warmup: bool = False) -&gt; MLLMBenchmarkResult</code></td>
<td>Run MLLM benchmark for a specific resolution.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/benchmark.py#L708-L800">#L708-L800</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.benchmark.benchmark_single_prompt function vllm_mlx.benchmark.benchmark_single_prompt(model, tokenizer, prompt: str, max_tokens: int = 256, temperature: float = 0.7) -&gt; optional[benchmarkresult] benchmark a single prompt with detailed timing.">
<td><a href="../api/vllm_mlx/benchmark/#contract-vllm_mlx.benchmark.benchmark_single_prompt"><code>vllm_mlx.benchmark.benchmark_single_prompt</code></a></td>
<td>function</td>
<td><code>vllm_mlx.benchmark.benchmark_single_prompt(model, tokenizer, prompt: str, max_tokens: int = 256, temperature: float = 0.7) -&gt; Optional[BenchmarkResult]</code></td>
<td>Benchmark a single prompt with detailed timing.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/benchmark.py#L328-L394">#L328-L394</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.benchmark.benchmark_video_config function vllm_mlx.benchmark.benchmark_video_config(model, video_path: str, fps: float, max_frames: int, config_name: str, video_info: dict, max_tokens: int = 150, warmup: bool = false) -&gt; videobenchmarkresult run a single video benchmark configuration.">
<td><a href="../api/vllm_mlx/benchmark/#contract-vllm_mlx.benchmark.benchmark_video_config"><code>vllm_mlx.benchmark.benchmark_video_config</code></a></td>
<td>function</td>
<td><code>vllm_mlx.benchmark.benchmark_video_config(model, video_path: str, fps: float, max_frames: int, config_name: str, video_info: dict, max_tokens: int = 150, warmup: bool = False) -&gt; VideoBenchmarkResult</code></td>
<td>Run a single video benchmark configuration.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/benchmark.py#L1097-L1162">#L1097-L1162</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="class" data-symbol-search="vllm_mlx.benchmark.benchmarkresult class vllm_mlx.benchmark.benchmarkresult(prompt: str, prompt_tokens: int, generated_tokens: int, ttft: float, total_time: float, tpot: float = 0.0, generation_tps: float = 0.0, processing_tps: float = 0.0) results from a single benchmark run.">
<td><a href="../api/vllm_mlx/benchmark/#contract-vllm_mlx.benchmark.BenchmarkResult"><code>vllm_mlx.benchmark.BenchmarkResult</code></a></td>
<td>class</td>
<td><code>vllm_mlx.benchmark.BenchmarkResult(prompt: str, prompt_tokens: int, generated_tokens: int, ttft: float, total_time: float, tpot: float = 0.0, generation_tps: float = 0.0, processing_tps: float = 0.0)</code></td>
<td>Results from a single benchmark run.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/benchmark.py#L235-L268">#L235-L268</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.benchmark.benchmarkresult.__post_init__ method vllm_mlx.benchmark.benchmarkresult.__post_init__() -&gt; not annotated method `benchmarkresult.__post_init__` updates `self.tpot`, `self.generation_tps`, `self.processing_tps`.">
<td><a href="../api/vllm_mlx/benchmark/#contract-vllm_mlx.benchmark.BenchmarkResult.__post_init__"><code>vllm_mlx.benchmark.BenchmarkResult.__post_init__</code></a></td>
<td>method</td>
<td><code>vllm_mlx.benchmark.BenchmarkResult.__post_init__() -&gt; not annotated</code></td>
<td>Method `BenchmarkResult.__post_init__` updates `self.tpot`, `self.generation_tps`, `self.processing_tps`.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/benchmark.py#L251-L268">#L251-L268</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="class" data-symbol-search="vllm_mlx.benchmark.benchmarksummary class vllm_mlx.benchmark.benchmarksummary(model_name: str, num_runs: int, total_prompt_tokens: int, total_generated_tokens: int, total_time: float, ttft_mean: float, ttft_min: float, ttft_max: float, ttft_p50: float, ttft_p95: float, tpot_mean: float, tpot_min: float, tpot_max: float, generation_tps_mean: float, generation_tps_max: float, processing_tps_mean: float, latency_mean: float, latency_min: float, latency_max: float, latency_p50: float, latency_p95: float, total_throughput_tps: float, requests_per_second: float, hardware_chip: str = &#x27;&#x27;, hardware_memory_gb: float = 0.0, hardware_bandwidth_gbs: float = 0.0, resources: resourcemetrics = field(default_factory=resourcemetrics)) summary statistics across all benchmark runs.">
<td><a href="../api/vllm_mlx/benchmark/#contract-vllm_mlx.benchmark.BenchmarkSummary"><code>vllm_mlx.benchmark.BenchmarkSummary</code></a></td>
<td>class</td>
<td><code>vllm_mlx.benchmark.BenchmarkSummary(model_name: str, num_runs: int, total_prompt_tokens: int, total_generated_tokens: int, total_time: float, ttft_mean: float, ttft_min: float, ttft_max: float, ttft_p50: float, ttft_p95: float, tpot_mean: float, tpot_min: float, tpot_max: float, generation_tps_mean: float, generation_tps_max: float, processing_tps_mean: float, latency_mean: float, latency_min: float, latency_max: float, latency_p50: float, latency_p95: float, total_throughput_tps: float, requests_per_second: float, hardware_chip: str = &#x27;&#x27;, hardware_memory_gb: float = 0.0, hardware_bandwidth_gbs: float = 0.0, resources: ResourceMetrics = field(default_factory=ResourceMetrics))</code></td>
<td>Summary statistics across all benchmark runs.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/benchmark.py#L272-L315">#L272-L315</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.benchmark.calculate_percentile function vllm_mlx.benchmark.calculate_percentile(data: list, percentile: float) -&gt; float calculate percentile from a list.">
<td><a href="../api/vllm_mlx/benchmark/#contract-vllm_mlx.benchmark.calculate_percentile"><code>vllm_mlx.benchmark.calculate_percentile</code></a></td>
<td>function</td>
<td><code>vllm_mlx.benchmark.calculate_percentile(data: list, percentile: float) -&gt; float</code></td>
<td>Calculate percentile from a list.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/benchmark.py#L318-L325">#L318-L325</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.benchmark.create_test_video function vllm_mlx.benchmark.create_test_video(duration: float = 10.0, fps: float = 30.0, width: int = 640, height: int = 480) -&gt; str create a synthetic test video with colored frames and text.">
<td><a href="../api/vllm_mlx/benchmark/#contract-vllm_mlx.benchmark.create_test_video"><code>vllm_mlx.benchmark.create_test_video</code></a></td>
<td>function</td>
<td><code>vllm_mlx.benchmark.create_test_video(duration: float = 10.0, fps: float = 30.0, width: int = 640, height: int = 480) -&gt; str</code></td>
<td>Create a synthetic test video with colored frames and text.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/benchmark.py#L1002-L1056">#L1002-L1056</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.benchmark.download_test_image function vllm_mlx.benchmark.download_test_image(url: str, timeout: int = 30) -&gt; image.image download image from url and return pil image.">
<td><a href="../api/vllm_mlx/benchmark/#contract-vllm_mlx.benchmark.download_test_image"><code>vllm_mlx.benchmark.download_test_image</code></a></td>
<td>function</td>
<td><code>vllm_mlx.benchmark.download_test_image(url: str, timeout: int = 30) -&gt; Image.Image</code></td>
<td>Download image from URL and return PIL Image.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/benchmark.py#L677-L684">#L677-L684</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.benchmark.download_video function vllm_mlx.benchmark.download_video(url: str, timeout: int = 120) -&gt; str download video from url and return local path.">
<td><a href="../api/vllm_mlx/benchmark/#contract-vllm_mlx.benchmark.download_video"><code>vllm_mlx.benchmark.download_video</code></a></td>
<td>function</td>
<td><code>vllm_mlx.benchmark.download_video(url: str, timeout: int = 120) -&gt; str</code></td>
<td>Download video from URL and return local path.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/benchmark.py#L1059-L1075">#L1059-L1075</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.benchmark.get_mlx_memory_info function vllm_mlx.benchmark.get_mlx_memory_info(reset_peak: bool = true) -&gt; dict get mlx memory usage information.">
<td><a href="../api/vllm_mlx/benchmark/#contract-vllm_mlx.benchmark.get_mlx_memory_info"><code>vllm_mlx.benchmark.get_mlx_memory_info</code></a></td>
<td>function</td>
<td><code>vllm_mlx.benchmark.get_mlx_memory_info(reset_peak: bool = True) -&gt; dict</code></td>
<td>Get MLX memory usage information.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/benchmark.py#L98-L135">#L98-L135</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.benchmark.get_process_memory function vllm_mlx.benchmark.get_process_memory() -&gt; float get current process memory usage in gb.">
<td><a href="../api/vllm_mlx/benchmark/#contract-vllm_mlx.benchmark.get_process_memory"><code>vllm_mlx.benchmark.get_process_memory</code></a></td>
<td>function</td>
<td><code>vllm_mlx.benchmark.get_process_memory() -&gt; float</code></td>
<td>Get current process memory usage in GB.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/benchmark.py#L138-L147">#L138-L147</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.benchmark.get_system_memory function vllm_mlx.benchmark.get_system_memory() -&gt; tuple[float, float] get system memory (used, total) in gb.">
<td><a href="../api/vllm_mlx/benchmark/#contract-vllm_mlx.benchmark.get_system_memory"><code>vllm_mlx.benchmark.get_system_memory</code></a></td>
<td>function</td>
<td><code>vllm_mlx.benchmark.get_system_memory() -&gt; tuple[float, float]</code></td>
<td>Get system memory (used, total) in GB.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/benchmark.py#L150-L159">#L150-L159</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.benchmark.get_video_info function vllm_mlx.benchmark.get_video_info(video_path: str) -&gt; dict get information about a video file.">
<td><a href="../api/vllm_mlx/benchmark/#contract-vllm_mlx.benchmark.get_video_info"><code>vllm_mlx.benchmark.get_video_info</code></a></td>
<td>function</td>
<td><code>vllm_mlx.benchmark.get_video_info(video_path: str) -&gt; dict</code></td>
<td>Get information about a video file.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/benchmark.py#L1078-L1094">#L1078-L1094</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.benchmark.image_to_base64 function vllm_mlx.benchmark.image_to_base64(img: image.image, format: str = &#x27;jpeg&#x27;) -&gt; str convert pil image to base64 data url.">
<td><a href="../api/vllm_mlx/benchmark/#contract-vllm_mlx.benchmark.image_to_base64"><code>vllm_mlx.benchmark.image_to_base64</code></a></td>
<td>function</td>
<td><code>vllm_mlx.benchmark.image_to_base64(img: Image.Image, format: str = &#x27;JPEG&#x27;) -&gt; str</code></td>
<td>Convert PIL Image to base64 data URL.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/benchmark.py#L692-L705">#L692-L705</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.benchmark.is_mllm_model function vllm_mlx.benchmark.is_mllm_model(model_name: str) -&gt; bool check if model name indicates a multimodal language model.">
<td><a href="../api/vllm_mlx/benchmark/#contract-vllm_mlx.benchmark.is_mllm_model"><code>vllm_mlx.benchmark.is_mllm_model</code></a></td>
<td>function</td>
<td><code>vllm_mlx.benchmark.is_mllm_model(model_name: str) -&gt; bool</code></td>
<td>Check if model name indicates a multimodal language model.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/benchmark.py#L651-L657">#L651-L657</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.benchmark.main function vllm_mlx.benchmark.main() -&gt; not annotated run the benchmark.">
<td><a href="../api/vllm_mlx/benchmark/#contract-vllm_mlx.benchmark.main"><code>vllm_mlx.benchmark.main</code></a></td>
<td>function</td>
<td><code>vllm_mlx.benchmark.main() -&gt; not annotated</code></td>
<td>Run the benchmark.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/benchmark.py#L1444-L1680">#L1444-L1680</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="class" data-symbol-search="vllm_mlx.benchmark.mllmbenchmarkresult class vllm_mlx.benchmark.mllmbenchmarkresult(resolution: str, width: int, height: int, pixels: int, time_seconds: float, tokens_generated: int, tokens_per_second: float, response_preview: str, memory_gb: float = 0.0, mlx_memory_gb: float = 0.0) result from a single mllm benchmark run.">
<td><a href="../api/vllm_mlx/benchmark/#contract-vllm_mlx.benchmark.MLLMBenchmarkResult"><code>vllm_mlx.benchmark.MLLMBenchmarkResult</code></a></td>
<td>class</td>
<td><code>vllm_mlx.benchmark.MLLMBenchmarkResult(resolution: str, width: int, height: int, pixels: int, time_seconds: float, tokens_generated: int, tokens_per_second: float, response_preview: str, memory_gb: float = 0.0, mlx_memory_gb: float = 0.0)</code></td>
<td>Result from a single MLLM benchmark run.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/benchmark.py#L661-L674">#L661-L674</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.benchmark.print_mllm_summary function vllm_mlx.benchmark.print_mllm_summary(results: list[mllmbenchmarkresult], model_name: str) -&gt; not annotated print mllm benchmark summary.">
<td><a href="../api/vllm_mlx/benchmark/#contract-vllm_mlx.benchmark.print_mllm_summary"><code>vllm_mlx.benchmark.print_mllm_summary</code></a></td>
<td>function</td>
<td><code>vllm_mlx.benchmark.print_mllm_summary(results: list[MLLMBenchmarkResult], model_name: str) -&gt; not annotated</code></td>
<td>Print MLLM benchmark summary.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/benchmark.py#L916-L975">#L916-L975</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.benchmark.print_summary function vllm_mlx.benchmark.print_summary(summary: benchmarksummary) -&gt; not annotated print a formatted summary of benchmark results using tabulate.">
<td><a href="../api/vllm_mlx/benchmark/#contract-vllm_mlx.benchmark.print_summary"><code>vllm_mlx.benchmark.print_summary</code></a></td>
<td>function</td>
<td><code>vllm_mlx.benchmark.print_summary(summary: BenchmarkSummary) -&gt; not annotated</code></td>
<td>Print a formatted summary of benchmark results using tabulate.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/benchmark.py#L1349-L1441">#L1349-L1441</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.benchmark.print_video_summary function vllm_mlx.benchmark.print_video_summary(results: list[videobenchmarkresult], model_name: str) -&gt; not annotated print video benchmark summary.">
<td><a href="../api/vllm_mlx/benchmark/#contract-vllm_mlx.benchmark.print_video_summary"><code>vllm_mlx.benchmark.print_video_summary</code></a></td>
<td>function</td>
<td><code>vllm_mlx.benchmark.print_video_summary(results: list[VideoBenchmarkResult], model_name: str) -&gt; not annotated</code></td>
<td>Print video benchmark summary.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/benchmark.py#L1288-L1341">#L1288-L1341</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.benchmark.reset_mlx_peak_memory function vllm_mlx.benchmark.reset_mlx_peak_memory() -&gt; not annotated reset mlx peak memory counter.">
<td><a href="../api/vllm_mlx/benchmark/#contract-vllm_mlx.benchmark.reset_mlx_peak_memory"><code>vllm_mlx.benchmark.reset_mlx_peak_memory</code></a></td>
<td>function</td>
<td><code>vllm_mlx.benchmark.reset_mlx_peak_memory() -&gt; not annotated</code></td>
<td>Reset MLX peak memory counter.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/benchmark.py#L83-L95">#L83-L95</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.benchmark.resize_image function vllm_mlx.benchmark.resize_image(img: image.image, width: int, height: int) -&gt; image.image resize image to specified dimensions.">
<td><a href="../api/vllm_mlx/benchmark/#contract-vllm_mlx.benchmark.resize_image"><code>vllm_mlx.benchmark.resize_image</code></a></td>
<td>function</td>
<td><code>vllm_mlx.benchmark.resize_image(img: Image.Image, width: int, height: int) -&gt; Image.Image</code></td>
<td>Resize image to specified dimensions.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/benchmark.py#L687-L689">#L687-L689</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="class" data-symbol-search="vllm_mlx.benchmark.resourcemetrics class vllm_mlx.benchmark.resourcemetrics(process_memory_gb: float = 0.0, mlx_cache_gb: float = 0.0, mlx_peak_memory_gb: float = 0.0, system_memory_used_gb: float = 0.0, system_memory_total_gb: float = 0.0) resource usage metrics during benchmark.">
<td><a href="../api/vllm_mlx/benchmark/#contract-vllm_mlx.benchmark.ResourceMetrics"><code>vllm_mlx.benchmark.ResourceMetrics</code></a></td>
<td>class</td>
<td><code>vllm_mlx.benchmark.ResourceMetrics(process_memory_gb: float = 0.0, mlx_cache_gb: float = 0.0, mlx_peak_memory_gb: float = 0.0, system_memory_used_gb: float = 0.0, system_memory_total_gb: float = 0.0)</code></td>
<td>Resource usage metrics during benchmark.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/benchmark.py#L72-L80">#L72-L80</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="class" data-symbol-search="vllm_mlx.benchmark.resourcemonitor class vllm_mlx.benchmark.resourcemonitor() monitor system resources during benchmark runs.">
<td><a href="../api/vllm_mlx/benchmark/#contract-vllm_mlx.benchmark.ResourceMonitor"><code>vllm_mlx.benchmark.ResourceMonitor</code></a></td>
<td>class</td>
<td><code>vllm_mlx.benchmark.ResourceMonitor()</code></td>
<td>Monitor system resources during benchmark runs.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/benchmark.py#L162-L213">#L162-L213</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.benchmark.resourcemonitor.__init__ method vllm_mlx.benchmark.resourcemonitor.__init__() -&gt; not annotated method `resourcemonitor.__init__` updates `self.samples`, `self._start_time`, `self._start_memory`.">
<td><a href="../api/vllm_mlx/benchmark/#contract-vllm_mlx.benchmark.ResourceMonitor.__init__"><code>vllm_mlx.benchmark.ResourceMonitor.__init__</code></a></td>
<td>method</td>
<td><code>vllm_mlx.benchmark.ResourceMonitor.__init__() -&gt; not annotated</code></td>
<td>Method `ResourceMonitor.__init__` updates `self.samples`, `self._start_time`, `self._start_memory`.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/benchmark.py#L165-L168">#L165-L168</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.benchmark.resourcemonitor.get_summary method vllm_mlx.benchmark.resourcemonitor.get_summary() -&gt; resourcemetrics get summary of all samples.">
<td><a href="../api/vllm_mlx/benchmark/#contract-vllm_mlx.benchmark.ResourceMonitor.get_summary"><code>vllm_mlx.benchmark.ResourceMonitor.get_summary</code></a></td>
<td>method</td>
<td><code>vllm_mlx.benchmark.ResourceMonitor.get_summary() -&gt; ResourceMetrics</code></td>
<td>Get summary of all samples.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/benchmark.py#L194-L213">#L194-L213</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.benchmark.resourcemonitor.sample method vllm_mlx.benchmark.resourcemonitor.sample() -&gt; resourcemetrics take a resource sample.">
<td><a href="../api/vllm_mlx/benchmark/#contract-vllm_mlx.benchmark.ResourceMonitor.sample"><code>vllm_mlx.benchmark.ResourceMonitor.sample</code></a></td>
<td>method</td>
<td><code>vllm_mlx.benchmark.ResourceMonitor.sample() -&gt; ResourceMetrics</code></td>
<td>Take a resource sample.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/benchmark.py#L178-L192">#L178-L192</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.benchmark.resourcemonitor.start method vllm_mlx.benchmark.resourcemonitor.start() -&gt; not annotated start monitoring.">
<td><a href="../api/vllm_mlx/benchmark/#contract-vllm_mlx.benchmark.ResourceMonitor.start"><code>vllm_mlx.benchmark.ResourceMonitor.start</code></a></td>
<td>method</td>
<td><code>vllm_mlx.benchmark.ResourceMonitor.start() -&gt; not annotated</code></td>
<td>Start monitoring.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/benchmark.py#L170-L176">#L170-L176</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.benchmark.run_benchmark function vllm_mlx.benchmark.run_benchmark(model_name: str, num_prompts: int = 5, max_tokens: int = 256, temperature: float = 0.7, warmup_runs: int = 1) -&gt; optional[benchmarksummary] run the full benchmark suite.">
<td><a href="../api/vllm_mlx/benchmark/#contract-vllm_mlx.benchmark.run_benchmark"><code>vllm_mlx.benchmark.run_benchmark</code></a></td>
<td>function</td>
<td><code>vllm_mlx.benchmark.run_benchmark(model_name: str, num_prompts: int = 5, max_tokens: int = 256, temperature: float = 0.7, warmup_runs: int = 1) -&gt; Optional[BenchmarkSummary]</code></td>
<td>Run the full benchmark suite.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/benchmark.py#L397-L610">#L397-L610</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.benchmark.run_mllm_benchmark function vllm_mlx.benchmark.run_mllm_benchmark(model_name: str, quick: bool = false, max_tokens: int = 256, warmup_runs: int = 1) -&gt; list[mllmbenchmarkresult] run mllm benchmark across multiple image resolutions.">
<td><a href="../api/vllm_mlx/benchmark/#contract-vllm_mlx.benchmark.run_mllm_benchmark"><code>vllm_mlx.benchmark.run_mllm_benchmark</code></a></td>
<td>function</td>
<td><code>vllm_mlx.benchmark.run_mllm_benchmark(model_name: str, quick: bool = False, max_tokens: int = 256, warmup_runs: int = 1) -&gt; list[MLLMBenchmarkResult]</code></td>
<td>Run MLLM benchmark across multiple image resolutions.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/benchmark.py#L803-L913">#L803-L913</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.benchmark.run_video_benchmark function vllm_mlx.benchmark.run_video_benchmark(model_name: str, video_url: str = none, video_path: str = none, quick: bool = false, max_tokens: int = 150, warmup_runs: int = 1) -&gt; list[videobenchmarkresult] run video benchmark across multiple frame configurations.">
<td><a href="../api/vllm_mlx/benchmark/#contract-vllm_mlx.benchmark.run_video_benchmark"><code>vllm_mlx.benchmark.run_video_benchmark</code></a></td>
<td>function</td>
<td><code>vllm_mlx.benchmark.run_video_benchmark(model_name: str, video_url: str = None, video_path: str = None, quick: bool = False, max_tokens: int = 150, warmup_runs: int = 1) -&gt; list[VideoBenchmarkResult]</code></td>
<td>Run video benchmark across multiple frame configurations.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/benchmark.py#L1165-L1285">#L1165-L1285</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="class" data-symbol-search="vllm_mlx.benchmark.videobenchmarkresult class vllm_mlx.benchmark.videobenchmarkresult(config_name: str, fps: float, max_frames: int, frames_extracted: int, video_duration: float, time_seconds: float, prompt_tokens: int, completion_tokens: int, tokens_per_second: float, response_preview: str, memory_gb: float = 0.0, mlx_memory_gb: float = 0.0) result from a single video benchmark run.">
<td><a href="../api/vllm_mlx/benchmark/#contract-vllm_mlx.benchmark.VideoBenchmarkResult"><code>vllm_mlx.benchmark.VideoBenchmarkResult</code></a></td>
<td>class</td>
<td><code>vllm_mlx.benchmark.VideoBenchmarkResult(config_name: str, fps: float, max_frames: int, frames_extracted: int, video_duration: float, time_seconds: float, prompt_tokens: int, completion_tokens: int, tokens_per_second: float, response_preview: str, memory_gb: float = 0.0, mlx_memory_gb: float = 0.0)</code></td>
<td>Result from a single video benchmark run.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/benchmark.py#L984-L999">#L984-L999</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.cli.bench_command function vllm_mlx.cli.bench_command(args) -&gt; not annotated run benchmark.">
<td><a href="../api/vllm_mlx/cli/#contract-vllm_mlx.cli.bench_command"><code>vllm_mlx.cli.bench_command</code></a></td>
<td>function</td>
<td><code>vllm_mlx.cli.bench_command(args) -&gt; not annotated</code></td>
<td>Run benchmark.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/cli.py#L506-L625">#L506-L625</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="nested function" data-symbol-search="vllm_mlx.cli.bench_command.run_benchmark nested function async vllm_mlx.cli.bench_command.run_benchmark() -&gt; not annotated nested function `bench_command.run_benchmark` calls `print`, `load`, `schedulerconfig`, `engineconfig`; awaits asynchronous work.">
<td><a href="../api/vllm_mlx/cli/#contract-vllm_mlx.cli.bench_command.run_benchmark"><code>vllm_mlx.cli.bench_command.run_benchmark</code></a></td>
<td>nested function</td>
<td><code>async vllm_mlx.cli.bench_command.run_benchmark() -&gt; not annotated</code></td>
<td>Nested Function `bench_command.run_benchmark` calls `print`, `load`, `SchedulerConfig`, `EngineConfig`; awaits asynchronous work.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/cli.py#L520-L623">#L520-L623</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="nested function" data-symbol-search="vllm_mlx.cli.bench_command.run_benchmark.get_output nested function async vllm_mlx.cli.bench_command.run_benchmark.get_output(rid) -&gt; not annotated nested function `bench_command.run_benchmark.get_output` calls `engine.stream_outputs`; has 2 explicit return paths.">
<td><a href="../api/vllm_mlx/cli/#contract-vllm_mlx.cli.bench_command.run_benchmark.get_output"><code>vllm_mlx.cli.bench_command.run_benchmark.get_output</code></a></td>
<td>nested function</td>
<td><code>async vllm_mlx.cli.bench_command.run_benchmark.get_output(rid) -&gt; not annotated</code></td>
<td>Nested Function `bench_command.run_benchmark.get_output` calls `engine.stream_outputs`; has 2 explicit return paths.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/cli.py#L597-L601">#L597-L601</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.cli.bench_detok_command function vllm_mlx.cli.bench_detok_command(args) -&gt; not annotated benchmark streaming detokenizer optimization.">
<td><a href="../api/vllm_mlx/cli/#contract-vllm_mlx.cli.bench_detok_command"><code>vllm_mlx.cli.bench_detok_command</code></a></td>
<td>function</td>
<td><code>vllm_mlx.cli.bench_detok_command(args) -&gt; not annotated</code></td>
<td>Benchmark streaming detokenizer optimization.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/cli.py#L628-L740">#L628-L740</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.cli.bench_kv_cache_command function vllm_mlx.cli.bench_kv_cache_command(args) -&gt; not annotated benchmark kv cache quantization memory savings and quality.">
<td><a href="../api/vllm_mlx/cli/#contract-vllm_mlx.cli.bench_kv_cache_command"><code>vllm_mlx.cli.bench_kv_cache_command</code></a></td>
<td>function</td>
<td><code>vllm_mlx.cli.bench_kv_cache_command(args) -&gt; not annotated</code></td>
<td>Benchmark KV cache quantization memory savings and quality.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/cli.py#L743-L886">#L743-L886</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.cli.bench_serve_command function vllm_mlx.cli.bench_serve_command(args) -&gt; not annotated run serving benchmark.">
<td><a href="../api/vllm_mlx/cli/#contract-vllm_mlx.cli.bench_serve_command"><code>vllm_mlx.cli.bench_serve_command</code></a></td>
<td>function</td>
<td><code>vllm_mlx.cli.bench_serve_command(args) -&gt; not annotated</code></td>
<td>Run serving benchmark.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/cli.py#L889-L990">#L889-L990</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.cli.create_parser function vllm_mlx.cli.create_parser() -&gt; argparse.argumentparser build the top-level cli parser.">
<td><a href="../api/vllm_mlx/cli/#contract-vllm_mlx.cli.create_parser"><code>vllm_mlx.cli.create_parser</code></a></td>
<td>function</td>
<td><code>vllm_mlx.cli.create_parser() -&gt; argparse.ArgumentParser</code></td>
<td>Build the top-level CLI parser.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/cli.py#L993-L2105">#L993-L2105</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.cli.download_command function vllm_mlx.cli.download_command(args) -&gt; not annotated download a model to local cache without starting a server.">
<td><a href="../api/vllm_mlx/cli/#contract-vllm_mlx.cli.download_command"><code>vllm_mlx.cli.download_command</code></a></td>
<td>function</td>
<td><code>vllm_mlx.cli.download_command(args) -&gt; not annotated</code></td>
<td>Download a model to local cache without starting a server.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/cli.py#L396-L410">#L396-L410</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.cli.main function vllm_mlx.cli.main() -&gt; not annotated parse the command line and dispatch to the selected vllm-mlx command.">
<td><a href="../api/vllm_mlx/cli/#contract-vllm_mlx.cli.main"><code>vllm_mlx.cli.main</code></a></td>
<td>function</td>
<td><code>vllm_mlx.cli.main() -&gt; not annotated</code></td>
<td>Parse the command line and dispatch to the selected vllm-mlx command.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/cli.py#L2112-L2134">#L2112-L2134</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.cli.model_command function vllm_mlx.cli.model_command(args) -&gt; not annotated run model lifecycle helper commands.">
<td><a href="../api/vllm_mlx/cli/#contract-vllm_mlx.cli.model_command"><code>vllm_mlx.cli.model_command</code></a></td>
<td>function</td>
<td><code>vllm_mlx.cli.model_command(args) -&gt; not annotated</code></td>
<td>Run model lifecycle helper commands.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/cli.py#L413-L503">#L413-L503</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.cli.serve_command function vllm_mlx.cli.serve_command(args) -&gt; not annotated start the openai-compatible server.">
<td><a href="../api/vllm_mlx/cli/#contract-vllm_mlx.cli.serve_command"><code>vllm_mlx.cli.serve_command</code></a></td>
<td>function</td>
<td><code>vllm_mlx.cli.serve_command(args) -&gt; not annotated</code></td>
<td>Start the OpenAI-compatible server.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/cli.py#L22-L393">#L22-L393</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.cli_arg_types.make_json_object_arg_parser function vllm_mlx.cli_arg_types.make_json_object_arg_parser(option_name: str) -&gt; callable[[str], dict[str, any]] create an argparse type parser for json object options.">
<td><a href="../api/vllm_mlx/cli_arg_types/#contract-vllm_mlx.cli_arg_types.make_json_object_arg_parser"><code>vllm_mlx.cli_arg_types.make_json_object_arg_parser</code></a></td>
<td>function</td>
<td><code>vllm_mlx.cli_arg_types.make_json_object_arg_parser(option_name: str) -&gt; Callable[[str], dict[str, Any]]</code></td>
<td>Create an argparse type parser for JSON object options.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/cli_arg_types.py#L25-L31">#L25-L31</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="nested function" data-symbol-search="vllm_mlx.cli_arg_types.make_json_object_arg_parser._parser nested function vllm_mlx.cli_arg_types.make_json_object_arg_parser._parser(value: str) -&gt; dict[str, any] nested function `make_json_object_arg_parser._parser` calls `parse_json_object_arg`; returns `parse_json_object_arg(value, option_name)`.">
<td><a href="../api/vllm_mlx/cli_arg_types/#contract-vllm_mlx.cli_arg_types.make_json_object_arg_parser._parser"><code>vllm_mlx.cli_arg_types.make_json_object_arg_parser._parser</code></a></td>
<td>nested function</td>
<td><code>vllm_mlx.cli_arg_types.make_json_object_arg_parser._parser(value: str) -&gt; dict[str, Any]</code></td>
<td>Nested Function `make_json_object_arg_parser._parser` calls `parse_json_object_arg`; returns `parse_json_object_arg(value, option_name)`.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/cli_arg_types.py#L28-L29">#L28-L29</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.cli_arg_types.make_positive_int_arg_parser function vllm_mlx.cli_arg_types.make_positive_int_arg_parser(option_name: str) -&gt; callable[[str], int] create an argparse type parser for positive integer options.">
<td><a href="../api/vllm_mlx/cli_arg_types/#contract-vllm_mlx.cli_arg_types.make_positive_int_arg_parser"><code>vllm_mlx.cli_arg_types.make_positive_int_arg_parser</code></a></td>
<td>function</td>
<td><code>vllm_mlx.cli_arg_types.make_positive_int_arg_parser(option_name: str) -&gt; Callable[[str], int]</code></td>
<td>Create an argparse type parser for positive integer options.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/cli_arg_types.py#L56-L62">#L56-L62</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="nested function" data-symbol-search="vllm_mlx.cli_arg_types.make_positive_int_arg_parser._parser nested function vllm_mlx.cli_arg_types.make_positive_int_arg_parser._parser(value: str) -&gt; int nested function `make_positive_int_arg_parser._parser` calls `parse_positive_int_arg`; returns `parse_positive_int_arg(value, option_name)`.">
<td><a href="../api/vllm_mlx/cli_arg_types/#contract-vllm_mlx.cli_arg_types.make_positive_int_arg_parser._parser"><code>vllm_mlx.cli_arg_types.make_positive_int_arg_parser._parser</code></a></td>
<td>nested function</td>
<td><code>vllm_mlx.cli_arg_types.make_positive_int_arg_parser._parser(value: str) -&gt; int</code></td>
<td>Nested Function `make_positive_int_arg_parser._parser` calls `parse_positive_int_arg`; returns `parse_positive_int_arg(value, option_name)`.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/cli_arg_types.py#L59-L60">#L59-L60</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.cli_arg_types.parse_json_object_arg function vllm_mlx.cli_arg_types.parse_json_object_arg(value: str, option_name: str) -&gt; dict[str, any] parse and validate that an option value is a json object.">
<td><a href="../api/vllm_mlx/cli_arg_types/#contract-vllm_mlx.cli_arg_types.parse_json_object_arg"><code>vllm_mlx.cli_arg_types.parse_json_object_arg</code></a></td>
<td>function</td>
<td><code>vllm_mlx.cli_arg_types.parse_json_object_arg(value: str, option_name: str) -&gt; dict[str, Any]</code></td>
<td>Parse and validate that an option value is a JSON object.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/cli_arg_types.py#L10-L22">#L10-L22</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.cli_arg_types.parse_positive_int_arg function vllm_mlx.cli_arg_types.parse_positive_int_arg(value: str, option_name: str) -&gt; int parse and validate that an option value is a positive integer.">
<td><a href="../api/vllm_mlx/cli_arg_types/#contract-vllm_mlx.cli_arg_types.parse_positive_int_arg"><code>vllm_mlx.cli_arg_types.parse_positive_int_arg</code></a></td>
<td>function</td>
<td><code>vllm_mlx.cli_arg_types.parse_positive_int_arg(value: str, option_name: str) -&gt; int</code></td>
<td>Parse and validate that an option value is a positive integer.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/cli_arg_types.py#L45-L53">#L45-L53</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.cli_arg_types.positive_int_arg function vllm_mlx.cli_arg_types.positive_int_arg(value: str) -&gt; int parse an argparse integer that must be greater than zero.">
<td><a href="../api/vllm_mlx/cli_arg_types/#contract-vllm_mlx.cli_arg_types.positive_int_arg"><code>vllm_mlx.cli_arg_types.positive_int_arg</code></a></td>
<td>function</td>
<td><code>vllm_mlx.cli_arg_types.positive_int_arg(value: str) -&gt; int</code></td>
<td>Parse an argparse integer that must be greater than zero.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/cli_arg_types.py#L34-L42">#L34-L42</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.constrained.cache._build_regular_tokens_list function vllm_mlx.constrained.cache._build_regular_tokens_list(tokenizer: any, vocab_size: int) -&gt; list[tuple[int, str, bool]] enumerate the regular (non-special) tokens in the vocabulary and produce the ``(token_id, decoded_with_leading_space_marker, is_word_start)`` tuples required by ``tokenenforcertokenizerdata``.">
<td><a href="../api/vllm_mlx/constrained/cache/#contract-vllm_mlx.constrained.cache._build_regular_tokens_list"><code>vllm_mlx.constrained.cache._build_regular_tokens_list</code></a></td>
<td>function</td>
<td><code>vllm_mlx.constrained.cache._build_regular_tokens_list(tokenizer: Any, vocab_size: int) -&gt; list[tuple[int, str, bool]]</code></td>
<td>Enumerate the regular (non-special) tokens in the vocabulary and produce the ``(token_id, decoded_with_leading_space_marker, is_word_start)`` tuples required by ``TokenEnforcerTokenizerData``.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/constrained/cache.py#L56-L95">#L56-L95</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.constrained.cache._decode_function function vllm_mlx.constrained.cache._decode_function(tokenizer: any, tokens: list[int]) -&gt; str function `_decode_function` calls `tokenizer.decode`, `isinstance`, `decoded.rstrip`; has 2 explicit return paths.">
<td><a href="../api/vllm_mlx/constrained/cache/#contract-vllm_mlx.constrained.cache._decode_function"><code>vllm_mlx.constrained.cache._decode_function</code></a></td>
<td>function</td>
<td><code>vllm_mlx.constrained.cache._decode_function(tokenizer: Any, tokens: list[int]) -&gt; str</code></td>
<td>Function `_decode_function` calls `tokenizer.decode`, `isinstance`, `decoded.rstrip`; has 2 explicit return paths.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/constrained/cache.py#L128-L133">#L128-L133</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.constrained.cache._get_eos_token_id function vllm_mlx.constrained.cache._get_eos_token_id(tokenizer: any) -&gt; int | list[int] function `_get_eos_token_id` calls `getattr`, `isinstance`, `list`; has 3 explicit return paths.">
<td><a href="../api/vllm_mlx/constrained/cache/#contract-vllm_mlx.constrained.cache._get_eos_token_id"><code>vllm_mlx.constrained.cache._get_eos_token_id</code></a></td>
<td>function</td>
<td><code>vllm_mlx.constrained.cache._get_eos_token_id(tokenizer: Any) -&gt; int | list[int]</code></td>
<td>Function `_get_eos_token_id` calls `getattr`, `isinstance`, `list`; has 3 explicit return paths.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/constrained/cache.py#L98-L111">#L98-L111</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.constrained.cache._get_vocab_size function vllm_mlx.constrained.cache._get_vocab_size(tokenizer: any) -&gt; int function `_get_vocab_size` calls `getattr`, `isinstance`, `len`, `callable`; can raise `valueerror`; has 3 explicit return paths.">
<td><a href="../api/vllm_mlx/constrained/cache/#contract-vllm_mlx.constrained.cache._get_vocab_size"><code>vllm_mlx.constrained.cache._get_vocab_size</code></a></td>
<td>function</td>
<td><code>vllm_mlx.constrained.cache._get_vocab_size(tokenizer: Any) -&gt; int</code></td>
<td>Function `_get_vocab_size` calls `getattr`, `isinstance`, `len`, `callable`; can raise `ValueError`; has 3 explicit return paths.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/constrained/cache.py#L114-L125">#L114-L125</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.constrained.cache._resolve_inner_tokenizer function vllm_mlx.constrained.cache._resolve_inner_tokenizer(tokenizer: any) -&gt; any vlm processors wrap the actual tokenizer under ``processor.tokenizer``.">
<td><a href="../api/vllm_mlx/constrained/cache/#contract-vllm_mlx.constrained.cache._resolve_inner_tokenizer"><code>vllm_mlx.constrained.cache._resolve_inner_tokenizer</code></a></td>
<td>function</td>
<td><code>vllm_mlx.constrained.cache._resolve_inner_tokenizer(tokenizer: Any) -&gt; Any</code></td>
<td>VLM processors wrap the actual tokenizer under ``processor.tokenizer``.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/constrained/cache.py#L26-L53">#L26-L53</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.constrained.cache.clear_cache function vllm_mlx.constrained.cache.clear_cache() -&gt; none drop the cache (mainly for tests).">
<td><a href="../api/vllm_mlx/constrained/cache/#contract-vllm_mlx.constrained.cache.clear_cache"><code>vllm_mlx.constrained.cache.clear_cache</code></a></td>
<td>function</td>
<td><code>vllm_mlx.constrained.cache.clear_cache() -&gt; None</code></td>
<td>Drop the cache (mainly for tests).</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/constrained/cache.py#L183-L186">#L183-L186</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.constrained.cache.get_tokenizer_data function vllm_mlx.constrained.cache.get_tokenizer_data(tokenizer: any) -&gt; any | none return a cached ``tokenenforcertokenizerdata`` for ``tokenizer``.">
<td><a href="../api/vllm_mlx/constrained/cache/#contract-vllm_mlx.constrained.cache.get_tokenizer_data"><code>vllm_mlx.constrained.cache.get_tokenizer_data</code></a></td>
<td>function</td>
<td><code>vllm_mlx.constrained.cache.get_tokenizer_data(tokenizer: Any) -&gt; Any | None</code></td>
<td>Return a cached ``TokenEnforcerTokenizerData`` for ``tokenizer``.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/constrained/cache.py#L136-L180">#L136-L180</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.constrained.json_schema_processor._canonical_schema_key function vllm_mlx.constrained.json_schema_processor._canonical_schema_key(schema: dict | none) -&gt; str function `_canonical_schema_key` calls `json.dumps(schema, sort_keys=true, separators=(&#x27;,&#x27;, &#x27;:&#x27;)).encode`, `json.dumps`, `hashlib.sha256(blob).hexdigest`, `hashlib.sha256`; has 2 explicit return paths.">
<td><a href="../api/vllm_mlx/constrained/json_schema_processor/#contract-vllm_mlx.constrained.json_schema_processor._canonical_schema_key"><code>vllm_mlx.constrained.json_schema_processor._canonical_schema_key</code></a></td>
<td>function</td>
<td><code>vllm_mlx.constrained.json_schema_processor._canonical_schema_key(schema: dict | None) -&gt; str</code></td>
<td>Function `_canonical_schema_key` calls `json.dumps(schema, sort_keys=True, separators=(&#x27;,&#x27;, &#x27;:&#x27;)).encode`, `json.dumps`, `hashlib.sha256(blob).hexdigest`, `hashlib.sha256`; has 2 explicit return paths.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/constrained/json_schema_processor.py#L50-L54">#L50-L54</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.constrained.json_schema_processor._collect_property_names function vllm_mlx.constrained.json_schema_processor._collect_property_names(schema: dict | none) -&gt; set[str] collect all property names declared anywhere in *schema*.">
<td><a href="../api/vllm_mlx/constrained/json_schema_processor/#contract-vllm_mlx.constrained.json_schema_processor._collect_property_names"><code>vllm_mlx.constrained.json_schema_processor._collect_property_names</code></a></td>
<td>function</td>
<td><code>vllm_mlx.constrained.json_schema_processor._collect_property_names(schema: dict | None) -&gt; set[str]</code></td>
<td>Collect all property names declared anywhere in *schema*.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/constrained/json_schema_processor.py#L241-L247">#L241-L247</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.constrained.json_schema_processor._complete_json_eos_logits function vllm_mlx.constrained.json_schema_processor._complete_json_eos_logits(eos_set: set[int], suffix: list[int], logits: mx.array, is_complete_json, build_allow_mask) -&gt; mx.array | none function `_complete_json_eos_logits` calls `is_complete_json`, `_eos_logits`; has 2 explicit return paths.">
<td><a href="../api/vllm_mlx/constrained/json_schema_processor/#contract-vllm_mlx.constrained.json_schema_processor._complete_json_eos_logits"><code>vllm_mlx.constrained.json_schema_processor._complete_json_eos_logits</code></a></td>
<td>function</td>
<td><code>vllm_mlx.constrained.json_schema_processor._complete_json_eos_logits(eos_set: set[int], suffix: list[int], logits: mx.array, is_complete_json, build_allow_mask) -&gt; mx.array | None</code></td>
<td>Function `_complete_json_eos_logits` calls `is_complete_json`, `_eos_logits`; has 2 explicit return paths.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/constrained/json_schema_processor.py#L267-L276">#L267-L276</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.constrained.json_schema_processor._eos_logits function vllm_mlx.constrained.json_schema_processor._eos_logits(eos_set: set[int], logits: mx.array, build_allow_mask) -&gt; mx.array | none function `_eos_logits` calls `build_allow_mask`, `sorted`; has 2 explicit return paths.">
<td><a href="../api/vllm_mlx/constrained/json_schema_processor/#contract-vllm_mlx.constrained.json_schema_processor._eos_logits"><code>vllm_mlx.constrained.json_schema_processor._eos_logits</code></a></td>
<td>function</td>
<td><code>vllm_mlx.constrained.json_schema_processor._eos_logits(eos_set: set[int], logits: mx.array, build_allow_mask) -&gt; mx.array | None</code></td>
<td>Function `_eos_logits` calls `build_allow_mask`, `sorted`; has 2 explicit return paths.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/constrained/json_schema_processor.py#L279-L290">#L279-L290</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.constrained.json_schema_processor._eos_logits_or_original function vllm_mlx.constrained.json_schema_processor._eos_logits_or_original(eos_set: set[int], logits: mx.array, build_allow_mask) -&gt; mx.array function `_eos_logits_or_original` calls `_eos_logits`; returns `logits if masked is none else masked`.">
<td><a href="../api/vllm_mlx/constrained/json_schema_processor/#contract-vllm_mlx.constrained.json_schema_processor._eos_logits_or_original"><code>vllm_mlx.constrained.json_schema_processor._eos_logits_or_original</code></a></td>
<td>function</td>
<td><code>vllm_mlx.constrained.json_schema_processor._eos_logits_or_original(eos_set: set[int], logits: mx.array, build_allow_mask) -&gt; mx.array</code></td>
<td>Function `_eos_logits_or_original` calls `_eos_logits`; returns `logits if masked is None else masked`.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/constrained/json_schema_processor.py#L293-L299">#L293-L299</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.constrained.json_schema_processor._force_no_additional_properties function vllm_mlx.constrained.json_schema_processor._force_no_additional_properties(schema: dict) -&gt; dict return a deep copy of *schema* with ``additionalproperties: false`` injected into every object-type sub-schema that declares ``properties``.">
<td><a href="../api/vllm_mlx/constrained/json_schema_processor/#contract-vllm_mlx.constrained.json_schema_processor._force_no_additional_properties"><code>vllm_mlx.constrained.json_schema_processor._force_no_additional_properties</code></a></td>
<td>function</td>
<td><code>vllm_mlx.constrained.json_schema_processor._force_no_additional_properties(schema: dict) -&gt; dict</code></td>
<td>Return a deep copy of *schema* with ``additionalProperties: false`` injected into every object-type sub-schema that declares ``properties``.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/constrained/json_schema_processor.py#L210-L224">#L210-L224</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.constrained.json_schema_processor._get_or_build_parser function vllm_mlx.constrained.json_schema_processor._get_or_build_parser(schema: dict | none) -&gt; tuple[dict, any] return (parser_schema, jsonschemaparser) for ``schema``, memoised.">
<td><a href="../api/vllm_mlx/constrained/json_schema_processor/#contract-vllm_mlx.constrained.json_schema_processor._get_or_build_parser"><code>vllm_mlx.constrained.json_schema_processor._get_or_build_parser</code></a></td>
<td>function</td>
<td><code>vllm_mlx.constrained.json_schema_processor._get_or_build_parser(schema: dict | None) -&gt; tuple[dict, Any]</code></td>
<td>Return (parser_schema, JsonSchemaParser) for ``schema``, memoised.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/constrained/json_schema_processor.py#L57-L73">#L57-L73</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.constrained.json_schema_processor._inject_no_additional_props function vllm_mlx.constrained.json_schema_processor._inject_no_additional_props(node: any) -&gt; none recursively inject ``additionalproperties: false`` into *node*.">
<td><a href="../api/vllm_mlx/constrained/json_schema_processor/#contract-vllm_mlx.constrained.json_schema_processor._inject_no_additional_props"><code>vllm_mlx.constrained.json_schema_processor._inject_no_additional_props</code></a></td>
<td>function</td>
<td><code>vllm_mlx.constrained.json_schema_processor._inject_no_additional_props(node: Any) -&gt; None</code></td>
<td>Recursively inject ``additionalProperties: false`` into *node*.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/constrained/json_schema_processor.py#L227-L238">#L227-L238</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.constrained.json_schema_processor._simplify_schema function vllm_mlx.constrained.json_schema_processor._simplify_schema(schema: dict) -&gt; dict pre-process a json schema for ``lm-format-enforcer`` compatibility.">
<td><a href="../api/vllm_mlx/constrained/json_schema_processor/#contract-vllm_mlx.constrained.json_schema_processor._simplify_schema"><code>vllm_mlx.constrained.json_schema_processor._simplify_schema</code></a></td>
<td>function</td>
<td><code>vllm_mlx.constrained.json_schema_processor._simplify_schema(schema: dict) -&gt; dict</code></td>
<td>Pre-process a JSON Schema for ``lm-format-enforcer`` compatibility.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/constrained/json_schema_processor.py#L97-L207">#L97-L207</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="nested function" data-symbol-search="vllm_mlx.constrained.json_schema_processor._simplify_schema._resolve nested function vllm_mlx.constrained.json_schema_processor._simplify_schema._resolve(node: any, depth: int = 0) -&gt; any nested function `_simplify_schema._resolve` calls `isinstance`, `ref.split`, `len`, `resolving.add`; has 3 explicit return paths.">
<td><a href="../api/vllm_mlx/constrained/json_schema_processor/#contract-vllm_mlx.constrained.json_schema_processor._simplify_schema._resolve"><code>vllm_mlx.constrained.json_schema_processor._simplify_schema._resolve</code></a></td>
<td>nested function</td>
<td><code>vllm_mlx.constrained.json_schema_processor._simplify_schema._resolve(node: Any, depth: int = 0) -&gt; Any</code></td>
<td>Nested Function `_simplify_schema._resolve` calls `isinstance`, `ref.split`, `len`, `resolving.add`; has 3 explicit return paths.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/constrained/json_schema_processor.py#L121-L205">#L121-L205</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.constrained.json_schema_processor._walk_properties function vllm_mlx.constrained.json_schema_processor._walk_properties(node: any, names: set[str]) -&gt; none function `_walk_properties` calls `isinstance`, `node.get`, `names.update`, `props.keys`; returns `none`.">
<td><a href="../api/vllm_mlx/constrained/json_schema_processor/#contract-vllm_mlx.constrained.json_schema_processor._walk_properties"><code>vllm_mlx.constrained.json_schema_processor._walk_properties</code></a></td>
<td>function</td>
<td><code>vllm_mlx.constrained.json_schema_processor._walk_properties(node: Any, names: set[str]) -&gt; None</code></td>
<td>Function `_walk_properties` calls `isinstance`, `node.get`, `names.update`, `props.keys`; returns `None`.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/constrained/json_schema_processor.py#L250-L264">#L250-L264</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.constrained.json_schema_processor.is_available function vllm_mlx.constrained.json_schema_processor.is_available() -&gt; bool return ``true`` iff ``lm-format-enforcer`` is importable.">
<td><a href="../api/vllm_mlx/constrained/json_schema_processor/#contract-vllm_mlx.constrained.json_schema_processor.is_available"><code>vllm_mlx.constrained.json_schema_processor.is_available</code></a></td>
<td>function</td>
<td><code>vllm_mlx.constrained.json_schema_processor.is_available() -&gt; bool</code></td>
<td>Return ``True`` iff ``lm-format-enforcer`` is importable.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/constrained/json_schema_processor.py#L76-L82">#L76-L82</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="class" data-symbol-search="vllm_mlx.constrained.json_schema_processor.jsonschemalogitsprocessor class vllm_mlx.constrained.json_schema_processor.jsonschemalogitsprocessor(schema: dict | none, tokenizer: any) logits processor that constrains generation to valid json.">
<td><a href="../api/vllm_mlx/constrained/json_schema_processor/#contract-vllm_mlx.constrained.json_schema_processor.JSONSchemaLogitsProcessor"><code>vllm_mlx.constrained.json_schema_processor.JSONSchemaLogitsProcessor</code></a></td>
<td>class</td>
<td><code>vllm_mlx.constrained.json_schema_processor.JSONSchemaLogitsProcessor(schema: dict | None, tokenizer: Any)</code></td>
<td>Logits processor that constrains generation to valid JSON.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/constrained/json_schema_processor.py#L302-L924">#L302-L924</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.constrained.json_schema_processor.jsonschemalogitsprocessor.__call__ method vllm_mlx.constrained.json_schema_processor.jsonschemalogitsprocessor.__call__(tokens: mx.array, logits: mx.array) -&gt; mx.array apply the allowed-tokens mask to ``logits``.">
<td><a href="../api/vllm_mlx/constrained/json_schema_processor/#contract-vllm_mlx.constrained.json_schema_processor.JSONSchemaLogitsProcessor.__call__"><code>vllm_mlx.constrained.json_schema_processor.JSONSchemaLogitsProcessor.__call__</code></a></td>
<td>method</td>
<td><code>vllm_mlx.constrained.json_schema_processor.JSONSchemaLogitsProcessor.__call__(tokens: mx.array, logits: mx.array) -&gt; mx.array</code></td>
<td>Apply the allowed-tokens mask to ``logits``.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/constrained/json_schema_processor.py#L814-L910">#L814-L910</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.constrained.json_schema_processor.jsonschemalogitsprocessor.__init__ method vllm_mlx.constrained.json_schema_processor.jsonschemalogitsprocessor.__init__(schema: dict | none, tokenizer: any) -&gt; none method `jsonschemalogitsprocessor.__init__` updates `self._tokenizer`, `self._schema`, `self._tok_data`, `self._disabled`; calls `is_available`, `lmformatenforcernotavailableerror`, `get_tokenizer_data`, `_get_or_build_parser`; can raise `lmformatenforcernotavailableerror`.">
<td><a href="../api/vllm_mlx/constrained/json_schema_processor/#contract-vllm_mlx.constrained.json_schema_processor.JSONSchemaLogitsProcessor.__init__"><code>vllm_mlx.constrained.json_schema_processor.JSONSchemaLogitsProcessor.__init__</code></a></td>
<td>method</td>
<td><code>vllm_mlx.constrained.json_schema_processor.JSONSchemaLogitsProcessor.__init__(schema: dict | None, tokenizer: Any) -&gt; None</code></td>
<td>Method `JSONSchemaLogitsProcessor.__init__` updates `self._tokenizer`, `self._schema`, `self._tok_data`, `self._disabled`; calls `is_available`, `LMFormatEnforcerNotAvailableError`, `get_tokenizer_data`, `_get_or_build_parser`; can raise `LMFormatEnforcerNotAvailableError`.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/constrained/json_schema_processor.py#L317-L414">#L317-L414</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.constrained.json_schema_processor.jsonschemalogitsprocessor._build_allow_mask method vllm_mlx.constrained.json_schema_processor.jsonschemalogitsprocessor._build_allow_mask(allowed: list[int], vocab_size: int) -&gt; mx.array build a 1-d mask of length ``vocab_size`` where allowed positions are ``0`` and disallowed positions are ``-inf``.">
<td><a href="../api/vllm_mlx/constrained/json_schema_processor/#contract-vllm_mlx.constrained.json_schema_processor.JSONSchemaLogitsProcessor._build_allow_mask"><code>vllm_mlx.constrained.json_schema_processor.JSONSchemaLogitsProcessor._build_allow_mask</code></a></td>
<td>method</td>
<td><code>vllm_mlx.constrained.json_schema_processor.JSONSchemaLogitsProcessor._build_allow_mask(allowed: list[int], vocab_size: int) -&gt; mx.array</code></td>
<td>Build a 1-D mask of length ``vocab_size`` where allowed positions are ``0`` and disallowed positions are ``-inf``.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/constrained/json_schema_processor.py#L795-L810">#L795-L810</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.constrained.json_schema_processor.jsonschemalogitsprocessor._decode_suffix method vllm_mlx.constrained.json_schema_processor.jsonschemalogitsprocessor._decode_suffix(suffix: list[int]) -&gt; str | none decode suffix tokens to text.">
<td><a href="../api/vllm_mlx/constrained/json_schema_processor/#contract-vllm_mlx.constrained.json_schema_processor.JSONSchemaLogitsProcessor._decode_suffix"><code>vllm_mlx.constrained.json_schema_processor.JSONSchemaLogitsProcessor._decode_suffix</code></a></td>
<td>method</td>
<td><code>vllm_mlx.constrained.json_schema_processor.JSONSchemaLogitsProcessor._decode_suffix(suffix: list[int]) -&gt; str | None</code></td>
<td>Decode suffix tokens to text.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/constrained/json_schema_processor.py#L444-L493">#L444-L493</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.constrained.json_schema_processor.jsonschemalogitsprocessor._decode_token_cached method vllm_mlx.constrained.json_schema_processor.jsonschemalogitsprocessor._decode_token_cached(tok_id: int) -&gt; str | none return the decoded text for a single token (cached).">
<td><a href="../api/vllm_mlx/constrained/json_schema_processor/#contract-vllm_mlx.constrained.json_schema_processor.JSONSchemaLogitsProcessor._decode_token_cached"><code>vllm_mlx.constrained.json_schema_processor.JSONSchemaLogitsProcessor._decode_token_cached</code></a></td>
<td>method</td>
<td><code>vllm_mlx.constrained.json_schema_processor.JSONSchemaLogitsProcessor._decode_token_cached(tok_id: int) -&gt; str | None</code></td>
<td>Return the decoded text for a single token (cached).</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/constrained/json_schema_processor.py#L428-L442">#L428-L442</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.constrained.json_schema_processor.jsonschemalogitsprocessor._filter_at_key_context method vllm_mlx.constrained.json_schema_processor.jsonschemalogitsprocessor._filter_at_key_context(context: str, suffix: list[int], allowed: list[int]) -&gt; list[int] apply schema-aware filtering when in key-related context.">
<td><a href="../api/vllm_mlx/constrained/json_schema_processor/#contract-vllm_mlx.constrained.json_schema_processor.JSONSchemaLogitsProcessor._filter_at_key_context"><code>vllm_mlx.constrained.json_schema_processor.JSONSchemaLogitsProcessor._filter_at_key_context</code></a></td>
<td>method</td>
<td><code>vllm_mlx.constrained.json_schema_processor.JSONSchemaLogitsProcessor._filter_at_key_context(context: str, suffix: list[int], allowed: list[int]) -&gt; list[int]</code></td>
<td>Apply schema-aware filtering when in key-related context.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/constrained/json_schema_processor.py#L645-L662">#L645-L662</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.constrained.json_schema_processor.jsonschemalogitsprocessor._filter_in_key_tokens method vllm_mlx.constrained.json_schema_processor.jsonschemalogitsprocessor._filter_in_key_tokens(suffix: list[int], allowed: list[int]) -&gt; list[int] filter tokens when we&#x27;re inside an open key string.">
<td><a href="../api/vllm_mlx/constrained/json_schema_processor/#contract-vllm_mlx.constrained.json_schema_processor.JSONSchemaLogitsProcessor._filter_in_key_tokens"><code>vllm_mlx.constrained.json_schema_processor.JSONSchemaLogitsProcessor._filter_in_key_tokens</code></a></td>
<td>method</td>
<td><code>vllm_mlx.constrained.json_schema_processor.JSONSchemaLogitsProcessor._filter_in_key_tokens(suffix: list[int], allowed: list[int]) -&gt; list[int]</code></td>
<td>Filter tokens when we&#x27;re inside an open key string.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/constrained/json_schema_processor.py#L719-L758">#L719-L758</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.constrained.json_schema_processor.jsonschemalogitsprocessor._filter_key_start_tokens method vllm_mlx.constrained.json_schema_processor.jsonschemalogitsprocessor._filter_key_start_tokens(suffix: list[int], allowed: list[int]) -&gt; list[int] filter tokens at key-start position.">
<td><a href="../api/vllm_mlx/constrained/json_schema_processor/#contract-vllm_mlx.constrained.json_schema_processor.JSONSchemaLogitsProcessor._filter_key_start_tokens"><code>vllm_mlx.constrained.json_schema_processor.JSONSchemaLogitsProcessor._filter_key_start_tokens</code></a></td>
<td>method</td>
<td><code>vllm_mlx.constrained.json_schema_processor.JSONSchemaLogitsProcessor._filter_key_start_tokens(suffix: list[int], allowed: list[int]) -&gt; list[int]</code></td>
<td>Filter tokens at key-start position.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/constrained/json_schema_processor.py#L664-L717">#L664-L717</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.constrained.json_schema_processor.jsonschemalogitsprocessor._filter_nonprogress_whitespace_tokens method vllm_mlx.constrained.json_schema_processor.jsonschemalogitsprocessor._filter_nonprogress_whitespace_tokens(suffix: list[int], allowed: list[int]) -&gt; list[int] stop constrained json from spending a long run on pure whitespace.">
<td><a href="../api/vllm_mlx/constrained/json_schema_processor/#contract-vllm_mlx.constrained.json_schema_processor.JSONSchemaLogitsProcessor._filter_nonprogress_whitespace_tokens"><code>vllm_mlx.constrained.json_schema_processor.JSONSchemaLogitsProcessor._filter_nonprogress_whitespace_tokens</code></a></td>
<td>method</td>
<td><code>vllm_mlx.constrained.json_schema_processor.JSONSchemaLogitsProcessor._filter_nonprogress_whitespace_tokens(suffix: list[int], allowed: list[int]) -&gt; list[int]</code></td>
<td>Stop constrained JSON from spending a long run on pure whitespace.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/constrained/json_schema_processor.py#L764-L793">#L764-L793</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.constrained.json_schema_processor.jsonschemalogitsprocessor._get_json_context method vllm_mlx.constrained.json_schema_processor.jsonschemalogitsprocessor._get_json_context(suffix: list[int]) -&gt; str determine the json structural context of the current suffix.">
<td><a href="../api/vllm_mlx/constrained/json_schema_processor/#contract-vllm_mlx.constrained.json_schema_processor.JSONSchemaLogitsProcessor._get_json_context"><code>vllm_mlx.constrained.json_schema_processor.JSONSchemaLogitsProcessor._get_json_context</code></a></td>
<td>method</td>
<td><code>vllm_mlx.constrained.json_schema_processor.JSONSchemaLogitsProcessor._get_json_context(suffix: list[int]) -&gt; str</code></td>
<td>Determine the JSON structural context of the current suffix.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/constrained/json_schema_processor.py#L522-L643">#L522-L643</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.constrained.json_schema_processor.jsonschemalogitsprocessor._is_valid_key_prefix method vllm_mlx.constrained.json_schema_processor.jsonschemalogitsprocessor._is_valid_key_prefix(prefix: str) -&gt; bool return true if *prefix* is a prefix of at least one valid key name.">
<td><a href="../api/vllm_mlx/constrained/json_schema_processor/#contract-vllm_mlx.constrained.json_schema_processor.JSONSchemaLogitsProcessor._is_valid_key_prefix"><code>vllm_mlx.constrained.json_schema_processor.JSONSchemaLogitsProcessor._is_valid_key_prefix</code></a></td>
<td>method</td>
<td><code>vllm_mlx.constrained.json_schema_processor.JSONSchemaLogitsProcessor._is_valid_key_prefix(prefix: str) -&gt; bool</code></td>
<td>Return True if *prefix* is a prefix of at least one valid key name.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/constrained/json_schema_processor.py#L760-L762">#L760-L762</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.constrained.json_schema_processor.jsonschemalogitsprocessor._suffix method vllm_mlx.constrained.json_schema_processor.jsonschemalogitsprocessor._suffix(tokens_list: list[int]) -&gt; list[int] return the slice of ``tokens`` that corresponds to generated output.">
<td><a href="../api/vllm_mlx/constrained/json_schema_processor/#contract-vllm_mlx.constrained.json_schema_processor.JSONSchemaLogitsProcessor._suffix"><code>vllm_mlx.constrained.json_schema_processor.JSONSchemaLogitsProcessor._suffix</code></a></td>
<td>method</td>
<td><code>vllm_mlx.constrained.json_schema_processor.JSONSchemaLogitsProcessor._suffix(tokens_list: list[int]) -&gt; list[int]</code></td>
<td>Return the slice of ``tokens`` that corresponds to generated output.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/constrained/json_schema_processor.py#L418-L426">#L418-L426</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.constrained.json_schema_processor.jsonschemalogitsprocessor._suffix_is_complete_json method vllm_mlx.constrained.json_schema_processor.jsonschemalogitsprocessor._suffix_is_complete_json(suffix: list[int]) -&gt; bool return true if the decoded ``suffix`` parses as a complete json value.">
<td><a href="../api/vllm_mlx/constrained/json_schema_processor/#contract-vllm_mlx.constrained.json_schema_processor.JSONSchemaLogitsProcessor._suffix_is_complete_json"><code>vllm_mlx.constrained.json_schema_processor.JSONSchemaLogitsProcessor._suffix_is_complete_json</code></a></td>
<td>method</td>
<td><code>vllm_mlx.constrained.json_schema_processor.JSONSchemaLogitsProcessor._suffix_is_complete_json(suffix: list[int]) -&gt; bool</code></td>
<td>Return True if the decoded ``suffix`` parses as a complete JSON value.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/constrained/json_schema_processor.py#L495-L520">#L495-L520</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.constrained.json_schema_processor.jsonschemalogitsprocessor.schema method vllm_mlx.constrained.json_schema_processor.jsonschemalogitsprocessor.schema() -&gt; dict | none return the normalized json schema enforced for this request.">
<td><a href="../api/vllm_mlx/constrained/json_schema_processor/#contract-vllm_mlx.constrained.json_schema_processor.JSONSchemaLogitsProcessor.schema"><code>vllm_mlx.constrained.json_schema_processor.JSONSchemaLogitsProcessor.schema</code></a></td>
<td>method</td>
<td><code>vllm_mlx.constrained.json_schema_processor.JSONSchemaLogitsProcessor.schema() -&gt; dict | None</code></td>
<td>Return the normalized JSON Schema enforced for this request.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/constrained/json_schema_processor.py#L915-L918">#L915-L918</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.constrained.json_schema_processor.jsonschemalogitsprocessor.vocab_size method vllm_mlx.constrained.json_schema_processor.jsonschemalogitsprocessor.vocab_size() -&gt; int return the tokenizer vocabulary size used to construct masks.">
<td><a href="../api/vllm_mlx/constrained/json_schema_processor/#contract-vllm_mlx.constrained.json_schema_processor.JSONSchemaLogitsProcessor.vocab_size"><code>vllm_mlx.constrained.json_schema_processor.JSONSchemaLogitsProcessor.vocab_size</code></a></td>
<td>method</td>
<td><code>vllm_mlx.constrained.json_schema_processor.JSONSchemaLogitsProcessor.vocab_size() -&gt; int</code></td>
<td>Return the tokenizer vocabulary size used to construct masks.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/constrained/json_schema_processor.py#L921-L924">#L921-L924</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="class" data-symbol-search="vllm_mlx.constrained.json_schema_processor.lmformatenforcernotavailableerror class vllm_mlx.constrained.json_schema_processor.lmformatenforcernotavailableerror() raised when ``lm-format-enforcer`` is required but not installed.">
<td><a href="../api/vllm_mlx/constrained/json_schema_processor/#contract-vllm_mlx.constrained.json_schema_processor.LMFormatEnforcerNotAvailableError"><code>vllm_mlx.constrained.json_schema_processor.LMFormatEnforcerNotAvailableError</code></a></td>
<td>class</td>
<td><code>vllm_mlx.constrained.json_schema_processor.LMFormatEnforcerNotAvailableError()</code></td>
<td>Raised when ``lm-format-enforcer`` is required but not installed.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/constrained/json_schema_processor.py#L33-L34">#L33-L34</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="class" data-symbol-search="vllm_mlx.constrained.thinking_processor.boundedsuffixmatcher class vllm_mlx.constrained.thinking_processor.boundedsuffixmatcher(target_ids: list[int]) detect a target token sequence in a stream using a rolling suffix buffer.">
<td><a href="../api/vllm_mlx/constrained/thinking_processor/#contract-vllm_mlx.constrained.thinking_processor.BoundedSuffixMatcher"><code>vllm_mlx.constrained.thinking_processor.BoundedSuffixMatcher</code></a></td>
<td>class</td>
<td><code>vllm_mlx.constrained.thinking_processor.BoundedSuffixMatcher(target_ids: list[int])</code></td>
<td>Detect a target token sequence in a stream using a rolling suffix buffer.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/constrained/thinking_processor.py#L16-L48">#L16-L48</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.constrained.thinking_processor.boundedsuffixmatcher.__init__ method vllm_mlx.constrained.thinking_processor.boundedsuffixmatcher.__init__(target_ids: list[int]) -&gt; none method `boundedsuffixmatcher.__init__` updates `self.target`, `self._max_len`, `self._buf`; calls `valueerror`, `tuple`, `len`, `deque`; can raise `valueerror`.">
<td><a href="../api/vllm_mlx/constrained/thinking_processor/#contract-vllm_mlx.constrained.thinking_processor.BoundedSuffixMatcher.__init__"><code>vllm_mlx.constrained.thinking_processor.BoundedSuffixMatcher.__init__</code></a></td>
<td>method</td>
<td><code>vllm_mlx.constrained.thinking_processor.BoundedSuffixMatcher.__init__(target_ids: list[int]) -&gt; None</code></td>
<td>Method `BoundedSuffixMatcher.__init__` updates `self.target`, `self._max_len`, `self._buf`; calls `ValueError`, `tuple`, `len`, `deque`; can raise `ValueError`.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/constrained/thinking_processor.py#L25-L30">#L25-L30</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.constrained.thinking_processor.boundedsuffixmatcher.feed method vllm_mlx.constrained.thinking_processor.boundedsuffixmatcher.feed(token_id: int) -&gt; bool feed one token.">
<td><a href="../api/vllm_mlx/constrained/thinking_processor/#contract-vllm_mlx.constrained.thinking_processor.BoundedSuffixMatcher.feed"><code>vllm_mlx.constrained.thinking_processor.BoundedSuffixMatcher.feed</code></a></td>
<td>method</td>
<td><code>vllm_mlx.constrained.thinking_processor.BoundedSuffixMatcher.feed(token_id: int) -&gt; bool</code></td>
<td>Feed one token.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/constrained/thinking_processor.py#L32-L35">#L32-L35</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.constrained.thinking_processor.boundedsuffixmatcher.reset method vllm_mlx.constrained.thinking_processor.boundedsuffixmatcher.reset() -&gt; none clear the buffer.">
<td><a href="../api/vllm_mlx/constrained/thinking_processor/#contract-vllm_mlx.constrained.thinking_processor.BoundedSuffixMatcher.reset"><code>vllm_mlx.constrained.thinking_processor.BoundedSuffixMatcher.reset</code></a></td>
<td>method</td>
<td><code>vllm_mlx.constrained.thinking_processor.BoundedSuffixMatcher.reset() -&gt; None</code></td>
<td>Clear the buffer.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/constrained/thinking_processor.py#L37-L39">#L37-L39</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.constrained.thinking_processor.boundedsuffixmatcher.restore method vllm_mlx.constrained.thinking_processor.boundedsuffixmatcher.restore(state: tuple[int, ...]) -&gt; none restore the suffix buffer from a previous snapshot.">
<td><a href="../api/vllm_mlx/constrained/thinking_processor/#contract-vllm_mlx.constrained.thinking_processor.BoundedSuffixMatcher.restore"><code>vllm_mlx.constrained.thinking_processor.BoundedSuffixMatcher.restore</code></a></td>
<td>method</td>
<td><code>vllm_mlx.constrained.thinking_processor.BoundedSuffixMatcher.restore(state: tuple[int, ...]) -&gt; None</code></td>
<td>Restore the suffix buffer from a previous snapshot.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/constrained/thinking_processor.py#L45-L48">#L45-L48</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.constrained.thinking_processor.boundedsuffixmatcher.snapshot method vllm_mlx.constrained.thinking_processor.boundedsuffixmatcher.snapshot() -&gt; tuple[int, ...] return a serializable copy of the current suffix buffer.">
<td><a href="../api/vllm_mlx/constrained/thinking_processor/#contract-vllm_mlx.constrained.thinking_processor.BoundedSuffixMatcher.snapshot"><code>vllm_mlx.constrained.thinking_processor.BoundedSuffixMatcher.snapshot</code></a></td>
<td>method</td>
<td><code>vllm_mlx.constrained.thinking_processor.BoundedSuffixMatcher.snapshot() -&gt; tuple[int, ...]</code></td>
<td>Return a serializable copy of the current suffix buffer.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/constrained/thinking_processor.py#L41-L43">#L41-L43</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="class" data-symbol-search="vllm_mlx.constrained.thinking_processor.phase class vllm_mlx.constrained.thinking_processor.phase() thinking lifecycle phases.">
<td><a href="../api/vllm_mlx/constrained/thinking_processor/#contract-vllm_mlx.constrained.thinking_processor.Phase"><code>vllm_mlx.constrained.thinking_processor.Phase</code></a></td>
<td>class</td>
<td><code>vllm_mlx.constrained.thinking_processor.Phase()</code></td>
<td>Thinking lifecycle phases.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/constrained/thinking_processor.py#L51-L57">#L51-L57</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="class" data-symbol-search="vllm_mlx.constrained.thinking_processor.thinkingawarelogitsprocessor class vllm_mlx.constrained.thinking_processor.thinkingawarelogitsprocessor(start_token_ids: list[int], end_token_ids: list[int], thinking_token_budget: int, inner: callable[[mx.array, mx.array], mx.array] | none = none, vocab_size: int = 152064, prompt_has_think_tag: bool = false, no_final_content_token_limit: int | none = none) unified logits processor for thinking-model lifecycle management.">
<td><a href="../api/vllm_mlx/constrained/thinking_processor/#contract-vllm_mlx.constrained.thinking_processor.ThinkingAwareLogitsProcessor"><code>vllm_mlx.constrained.thinking_processor.ThinkingAwareLogitsProcessor</code></a></td>
<td>class</td>
<td><code>vllm_mlx.constrained.thinking_processor.ThinkingAwareLogitsProcessor(start_token_ids: list[int], end_token_ids: list[int], thinking_token_budget: int, inner: Callable[[mx.array, mx.array], mx.array] | None = None, vocab_size: int = 152064, prompt_has_think_tag: bool = False, no_final_content_token_limit: int | None = None)</code></td>
<td>Unified logits processor for thinking-model lifecycle management.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/constrained/thinking_processor.py#L60-L287">#L60-L287</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.constrained.thinking_processor.thinkingawarelogitsprocessor.__call__ method vllm_mlx.constrained.thinking_processor.thinkingawarelogitsprocessor.__call__(tokens: mx.array, logits: mx.array) -&gt; mx.array method `thinkingawarelogitsprocessor.__call__` calls `self._force_transition`, `self._call_inner`, `self._sync_to_tokens`; has 3 explicit return paths.">
<td><a href="../api/vllm_mlx/constrained/thinking_processor/#contract-vllm_mlx.constrained.thinking_processor.ThinkingAwareLogitsProcessor.__call__"><code>vllm_mlx.constrained.thinking_processor.ThinkingAwareLogitsProcessor.__call__</code></a></td>
<td>method</td>
<td><code>vllm_mlx.constrained.thinking_processor.ThinkingAwareLogitsProcessor.__call__(tokens: mx.array, logits: mx.array) -&gt; mx.array</code></td>
<td>Method `ThinkingAwareLogitsProcessor.__call__` calls `self._force_transition`, `self._call_inner`, `self._sync_to_tokens`; has 3 explicit return paths.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/constrained/thinking_processor.py#L152-L170">#L152-L170</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.constrained.thinking_processor.thinkingawarelogitsprocessor.__init__ method vllm_mlx.constrained.thinking_processor.thinkingawarelogitsprocessor.__init__(start_token_ids: list[int], end_token_ids: list[int], thinking_token_budget: int, inner: callable[[mx.array, mx.array], mx.array] | none = none, vocab_size: int = 152064, prompt_has_think_tag: bool = false, no_final_content_token_limit: int | none = none) -&gt; none method `thinkingawarelogitsprocessor.__init__` updates `self._start_matcher`, `self._end_matcher`, `self._end_token_ids`, `self._content_phase_mask_ids`; calls `boundedsuffixmatcher`, `list`, `tuple`, `dict.fromkeys`.">
<td><a href="../api/vllm_mlx/constrained/thinking_processor/#contract-vllm_mlx.constrained.thinking_processor.ThinkingAwareLogitsProcessor.__init__"><code>vllm_mlx.constrained.thinking_processor.ThinkingAwareLogitsProcessor.__init__</code></a></td>
<td>method</td>
<td><code>vllm_mlx.constrained.thinking_processor.ThinkingAwareLogitsProcessor.__init__(start_token_ids: list[int], end_token_ids: list[int], thinking_token_budget: int, inner: Callable[[mx.array, mx.array], mx.array] | None = None, vocab_size: int = 152064, prompt_has_think_tag: bool = False, no_final_content_token_limit: int | None = None) -&gt; None</code></td>
<td>Method `ThinkingAwareLogitsProcessor.__init__` updates `self._start_matcher`, `self._end_matcher`, `self._end_token_ids`, `self._content_phase_mask_ids`; calls `BoundedSuffixMatcher`, `list`, `tuple`, `dict.fromkeys`.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/constrained/thinking_processor.py#L92-L129">#L92-L129</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.constrained.thinking_processor.thinkingawarelogitsprocessor._advance_with_token method vllm_mlx.constrained.thinking_processor.thinkingawarelogitsprocessor._advance_with_token(token_id: int) -&gt; none method `thinkingawarelogitsprocessor._advance_with_token` updates `self._state`, `self._transition_index`, `self._thinking_tokens`, `self.watchdog_was_enforced`; calls `self._start_matcher.feed`, `self._end_matcher.feed`, `len`, `self._end_matcher.reset`; returns `none`.">
<td><a href="../api/vllm_mlx/constrained/thinking_processor/#contract-vllm_mlx.constrained.thinking_processor.ThinkingAwareLogitsProcessor._advance_with_token"><code>vllm_mlx.constrained.thinking_processor.ThinkingAwareLogitsProcessor._advance_with_token</code></a></td>
<td>method</td>
<td><code>vllm_mlx.constrained.thinking_processor.ThinkingAwareLogitsProcessor._advance_with_token(token_id: int) -&gt; None</code></td>
<td>Method `ThinkingAwareLogitsProcessor._advance_with_token` updates `self._state`, `self._transition_index`, `self._thinking_tokens`, `self.watchdog_was_enforced`; calls `self._start_matcher.feed`, `self._end_matcher.feed`, `len`, `self._end_matcher.reset`; returns `None`.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/constrained/thinking_processor.py#L254-L287">#L254-L287</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.constrained.thinking_processor.thinkingawarelogitsprocessor._call_inner method vllm_mlx.constrained.thinking_processor.thinkingawarelogitsprocessor._call_inner(tokens: mx.array, logits: mx.array) -&gt; mx.array delegate to inner processor if present.">
<td><a href="../api/vllm_mlx/constrained/thinking_processor/#contract-vllm_mlx.constrained.thinking_processor.ThinkingAwareLogitsProcessor._call_inner"><code>vllm_mlx.constrained.thinking_processor.ThinkingAwareLogitsProcessor._call_inner</code></a></td>
<td>method</td>
<td><code>vllm_mlx.constrained.thinking_processor.ThinkingAwareLogitsProcessor._call_inner(tokens: mx.array, logits: mx.array) -&gt; mx.array</code></td>
<td>Delegate to inner processor if present.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/constrained/thinking_processor.py#L184-L188">#L184-L188</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.constrained.thinking_processor.thinkingawarelogitsprocessor._force_transition method vllm_mlx.constrained.thinking_processor.thinkingawarelogitsprocessor._force_transition(logits: mx.array) -&gt; mx.array force the next token in the reasoning end sequence.">
<td><a href="../api/vllm_mlx/constrained/thinking_processor/#contract-vllm_mlx.constrained.thinking_processor.ThinkingAwareLogitsProcessor._force_transition"><code>vllm_mlx.constrained.thinking_processor.ThinkingAwareLogitsProcessor._force_transition</code></a></td>
<td>method</td>
<td><code>vllm_mlx.constrained.thinking_processor.ThinkingAwareLogitsProcessor._force_transition(logits: mx.array) -&gt; mx.array</code></td>
<td>Force the next token in the reasoning end sequence.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/constrained/thinking_processor.py#L172-L182">#L172-L182</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.constrained.thinking_processor.thinkingawarelogitsprocessor._mask_content_phase_control_tokens method vllm_mlx.constrained.thinking_processor.thinkingawarelogitsprocessor._mask_content_phase_control_tokens(logits: mx.array) -&gt; mx.array prevent reserved think-tag starts from leaking into final content.">
<td><a href="../api/vllm_mlx/constrained/thinking_processor/#contract-vllm_mlx.constrained.thinking_processor.ThinkingAwareLogitsProcessor._mask_content_phase_control_tokens"><code>vllm_mlx.constrained.thinking_processor.ThinkingAwareLogitsProcessor._mask_content_phase_control_tokens</code></a></td>
<td>method</td>
<td><code>vllm_mlx.constrained.thinking_processor.ThinkingAwareLogitsProcessor._mask_content_phase_control_tokens(logits: mx.array) -&gt; mx.array</code></td>
<td>Prevent reserved think-tag starts from leaking into final content.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/constrained/thinking_processor.py#L190-L197">#L190-L197</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.constrained.thinking_processor.thinkingawarelogitsprocessor._restore_snapshot method vllm_mlx.constrained.thinking_processor.thinkingawarelogitsprocessor._restore_snapshot(processed_len: int) -&gt; none method `thinkingawarelogitsprocessor._restore_snapshot` updates `self._state`, `self._thinking_tokens`, `self._transition_index`, `self.watchdog_was_enforced`; calls `min`, `len`, `self._start_matcher.restore`, `self._end_matcher.restore`.">
<td><a href="../api/vllm_mlx/constrained/thinking_processor/#contract-vllm_mlx.constrained.thinking_processor.ThinkingAwareLogitsProcessor._restore_snapshot"><code>vllm_mlx.constrained.thinking_processor.ThinkingAwareLogitsProcessor._restore_snapshot</code></a></td>
<td>method</td>
<td><code>vllm_mlx.constrained.thinking_processor.ThinkingAwareLogitsProcessor._restore_snapshot(processed_len: int) -&gt; None</code></td>
<td>Method `ThinkingAwareLogitsProcessor._restore_snapshot` updates `self._state`, `self._thinking_tokens`, `self._transition_index`, `self.watchdog_was_enforced`; calls `min`, `len`, `self._start_matcher.restore`, `self._end_matcher.restore`.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/constrained/thinking_processor.py#L211-L229">#L211-L229</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.constrained.thinking_processor.thinkingawarelogitsprocessor._snapshot_state method vllm_mlx.constrained.thinking_processor.thinkingawarelogitsprocessor._snapshot_state() -&gt; tuple[phase, int, int, tuple[int, ...], tuple[int, ...], bool] method `thinkingawarelogitsprocessor._snapshot_state` calls `self._start_matcher.snapshot`, `self._end_matcher.snapshot`; returns `(self._state, self._thinking_tokens, self._transition_index, self._start_matcher.snapshot(), self._end_matcher.snapshot…`.">
<td><a href="../api/vllm_mlx/constrained/thinking_processor/#contract-vllm_mlx.constrained.thinking_processor.ThinkingAwareLogitsProcessor._snapshot_state"><code>vllm_mlx.constrained.thinking_processor.ThinkingAwareLogitsProcessor._snapshot_state</code></a></td>
<td>method</td>
<td><code>vllm_mlx.constrained.thinking_processor.ThinkingAwareLogitsProcessor._snapshot_state() -&gt; tuple[Phase, int, int, tuple[int, ...], tuple[int, ...], bool]</code></td>
<td>Method `ThinkingAwareLogitsProcessor._snapshot_state` calls `self._start_matcher.snapshot`, `self._end_matcher.snapshot`; returns `(self._state, self._thinking_tokens, self._transition_index, self._start_matcher.snapshot(), self._end_matcher.snapshot…`.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/constrained/thinking_processor.py#L199-L209">#L199-L209</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.constrained.thinking_processor.thinkingawarelogitsprocessor._sync_to_tokens method vllm_mlx.constrained.thinking_processor.thinkingawarelogitsprocessor._sync_to_tokens(tokens: mx.array) -&gt; none method `thinkingawarelogitsprocessor._sync_to_tokens` updates `self._processed_len`; calls `int`, `tokens.tolist`, `min`, `self._restore_snapshot`; returns `none`.">
<td><a href="../api/vllm_mlx/constrained/thinking_processor/#contract-vllm_mlx.constrained.thinking_processor.ThinkingAwareLogitsProcessor._sync_to_tokens"><code>vllm_mlx.constrained.thinking_processor.ThinkingAwareLogitsProcessor._sync_to_tokens</code></a></td>
<td>method</td>
<td><code>vllm_mlx.constrained.thinking_processor.ThinkingAwareLogitsProcessor._sync_to_tokens(tokens: mx.array) -&gt; None</code></td>
<td>Method `ThinkingAwareLogitsProcessor._sync_to_tokens` updates `self._processed_len`; calls `int`, `tokens.tolist`, `min`, `self._restore_snapshot`; returns `None`.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/constrained/thinking_processor.py#L231-L252">#L231-L252</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.constrained.thinking_processor.thinkingawarelogitsprocessor.is_retired method vllm_mlx.constrained.thinking_processor.thinkingawarelogitsprocessor.is_retired() -&gt; bool true when the processor is in content with no inner constraint.">
<td><a href="../api/vllm_mlx/constrained/thinking_processor/#contract-vllm_mlx.constrained.thinking_processor.ThinkingAwareLogitsProcessor.is_retired"><code>vllm_mlx.constrained.thinking_processor.ThinkingAwareLogitsProcessor.is_retired</code></a></td>
<td>method</td>
<td><code>vllm_mlx.constrained.thinking_processor.ThinkingAwareLogitsProcessor.is_retired() -&gt; bool</code></td>
<td>True when the processor is in CONTENT with no inner constraint.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/constrained/thinking_processor.py#L144-L150">#L144-L150</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.constrained.thinking_processor.thinkingawarelogitsprocessor.state method vllm_mlx.constrained.thinking_processor.thinkingawarelogitsprocessor.state() -&gt; phase return the current reasoning lifecycle phase.">
<td><a href="../api/vllm_mlx/constrained/thinking_processor/#contract-vllm_mlx.constrained.thinking_processor.ThinkingAwareLogitsProcessor.state"><code>vllm_mlx.constrained.thinking_processor.ThinkingAwareLogitsProcessor.state</code></a></td>
<td>method</td>
<td><code>vllm_mlx.constrained.thinking_processor.ThinkingAwareLogitsProcessor.state() -&gt; Phase</code></td>
<td>Return the current reasoning lifecycle phase.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/constrained/thinking_processor.py#L132-L135">#L132-L135</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.constrained.thinking_processor.thinkingawarelogitsprocessor.thinking_tokens method vllm_mlx.constrained.thinking_processor.thinkingawarelogitsprocessor.thinking_tokens() -&gt; int return the number of generated tokens counted as reasoning.">
<td><a href="../api/vllm_mlx/constrained/thinking_processor/#contract-vllm_mlx.constrained.thinking_processor.ThinkingAwareLogitsProcessor.thinking_tokens"><code>vllm_mlx.constrained.thinking_processor.ThinkingAwareLogitsProcessor.thinking_tokens</code></a></td>
<td>method</td>
<td><code>vllm_mlx.constrained.thinking_processor.ThinkingAwareLogitsProcessor.thinking_tokens() -&gt; int</code></td>
<td>Return the number of generated tokens counted as reasoning.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/constrained/thinking_processor.py#L138-L141">#L138-L141</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="class" data-symbol-search="vllm_mlx.embedding.embeddingengine class vllm_mlx.embedding.embeddingengine(model_name: str) wrapper around mlx-embeddings for text embedding generation.">
<td><a href="../api/vllm_mlx/embedding/#contract-vllm_mlx.embedding.EmbeddingEngine"><code>vllm_mlx.embedding.EmbeddingEngine</code></a></td>
<td>class</td>
<td><code>vllm_mlx.embedding.EmbeddingEngine(model_name: str)</code></td>
<td>Wrapper around mlx-embeddings for text embedding generation.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/embedding.py#L19-L131">#L19-L131</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.embedding.embeddingengine.__init__ method vllm_mlx.embedding.embeddingengine.__init__(model_name: str) -&gt; not annotated method `embeddingengine.__init__` updates `self.model_name`, `self._model`, `self._tokenizer`, `self._max_length`.">
<td><a href="../api/vllm_mlx/embedding/#contract-vllm_mlx.embedding.EmbeddingEngine.__init__"><code>vllm_mlx.embedding.EmbeddingEngine.__init__</code></a></td>
<td>method</td>
<td><code>vllm_mlx.embedding.EmbeddingEngine.__init__(model_name: str) -&gt; not annotated</code></td>
<td>Method `EmbeddingEngine.__init__` updates `self.model_name`, `self._model`, `self._tokenizer`, `self._max_length`.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/embedding.py#L27-L31">#L27-L31</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.embedding.embeddingengine._ensure_loaded method vllm_mlx.embedding.embeddingengine._ensure_loaded() -&gt; none method `embeddingengine._ensure_loaded` calls `self.load`.">
<td><a href="../api/vllm_mlx/embedding/#contract-vllm_mlx.embedding.EmbeddingEngine._ensure_loaded"><code>vllm_mlx.embedding.EmbeddingEngine._ensure_loaded</code></a></td>
<td>method</td>
<td><code>vllm_mlx.embedding.EmbeddingEngine._ensure_loaded() -&gt; None</code></td>
<td>Method `EmbeddingEngine._ensure_loaded` calls `self.load`.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/embedding.py#L49-L51">#L49-L51</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.embedding.embeddingengine._resolve_max_length method vllm_mlx.embedding.embeddingengine._resolve_max_length() -&gt; int tokenizer truncation length from the model config (cached).">
<td><a href="../api/vllm_mlx/embedding/#contract-vllm_mlx.embedding.EmbeddingEngine._resolve_max_length"><code>vllm_mlx.embedding.EmbeddingEngine._resolve_max_length</code></a></td>
<td>method</td>
<td><code>vllm_mlx.embedding.EmbeddingEngine._resolve_max_length() -&gt; int</code></td>
<td>Tokenizer truncation length from the model config (cached).</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/embedding.py#L53-L60">#L53-L60</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.embedding.embeddingengine.count_tokens method vllm_mlx.embedding.embeddingengine.count_tokens(texts: str | list[str]) -&gt; int approximate token count for usage reporting.">
<td><a href="../api/vllm_mlx/embedding/#contract-vllm_mlx.embedding.EmbeddingEngine.count_tokens"><code>vllm_mlx.embedding.EmbeddingEngine.count_tokens</code></a></td>
<td>method</td>
<td><code>vllm_mlx.embedding.EmbeddingEngine.count_tokens(texts: str | list[str]) -&gt; int</code></td>
<td>Approximate token count for usage reporting.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/embedding.py#L111-L131">#L111-L131</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.embedding.embeddingengine.embed method vllm_mlx.embedding.embeddingengine.embed(texts: str | list[str]) -&gt; list[list[float]] generate embeddings for one or more texts.">
<td><a href="../api/vllm_mlx/embedding/#contract-vllm_mlx.embedding.EmbeddingEngine.embed"><code>vllm_mlx.embedding.EmbeddingEngine.embed</code></a></td>
<td>method</td>
<td><code>vllm_mlx.embedding.EmbeddingEngine.embed(texts: str | list[str]) -&gt; list[list[float]]</code></td>
<td>Generate embeddings for one or more texts.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/embedding.py#L62-L109">#L62-L109</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.embedding.embeddingengine.is_loaded method vllm_mlx.embedding.embeddingengine.is_loaded() -&gt; bool return whether the embedding model has been loaded.">
<td><a href="../api/vllm_mlx/embedding/#contract-vllm_mlx.embedding.EmbeddingEngine.is_loaded"><code>vllm_mlx.embedding.EmbeddingEngine.is_loaded</code></a></td>
<td>method</td>
<td><code>vllm_mlx.embedding.EmbeddingEngine.is_loaded() -&gt; bool</code></td>
<td>Return whether the embedding model has been loaded.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/embedding.py#L34-L37">#L34-L37</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.embedding.embeddingengine.load method vllm_mlx.embedding.embeddingengine.load() -&gt; none load the embedding model and tokenizer.">
<td><a href="../api/vllm_mlx/embedding/#contract-vllm_mlx.embedding.EmbeddingEngine.load"><code>vllm_mlx.embedding.EmbeddingEngine.load</code></a></td>
<td>method</td>
<td><code>vllm_mlx.embedding.EmbeddingEngine.load() -&gt; None</code></td>
<td>Load the embedding model and tokenizer.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/embedding.py#L39-L47">#L39-L47</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.endpoint_model_policies._reject_unknown_audio_model function vllm_mlx.endpoint_model_policies._reject_unknown_audio_model(endpoint: str, requested_model: str, supported_aliases: dict[str, str]) -&gt; none function `_reject_unknown_audio_model` calls `&#x27;, &#x27;.join`, `sorted`, `httpexception`; can raise `httpexception`.">
<td><a href="../api/vllm_mlx/endpoint_model_policies/#contract-vllm_mlx.endpoint_model_policies._reject_unknown_audio_model"><code>vllm_mlx.endpoint_model_policies._reject_unknown_audio_model</code></a></td>
<td>function</td>
<td><code>vllm_mlx.endpoint_model_policies._reject_unknown_audio_model(endpoint: str, requested_model: str, supported_aliases: dict[str, str]) -&gt; None</code></td>
<td>Function `_reject_unknown_audio_model` calls `&#x27;, &#x27;.join`, `sorted`, `HTTPException`; can raise `HTTPException`.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/endpoint_model_policies.py#L66-L79">#L66-L79</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.endpoint_model_policies._reject_unknown_embedding_model function vllm_mlx.endpoint_model_policies._reject_unknown_embedding_model(requested_model: str) -&gt; none function `_reject_unknown_embedding_model` calls `&#x27;, &#x27;.join`, `sorted`, `httpexception`; can raise `httpexception`.">
<td><a href="../api/vllm_mlx/endpoint_model_policies/#contract-vllm_mlx.endpoint_model_policies._reject_unknown_embedding_model"><code>vllm_mlx.endpoint_model_policies._reject_unknown_embedding_model</code></a></td>
<td>function</td>
<td><code>vllm_mlx.endpoint_model_policies._reject_unknown_embedding_model(requested_model: str) -&gt; None</code></td>
<td>Function `_reject_unknown_embedding_model` calls `&#x27;, &#x27;.join`, `sorted`, `HTTPException`; can raise `HTTPException`.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/endpoint_model_policies.py#L53-L63">#L53-L63</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.endpoint_model_policies._with_identity_aliases function vllm_mlx.endpoint_model_policies._with_identity_aliases(model_map: dict[str, str]) -&gt; dict[str, str] function `_with_identity_aliases` calls `dict`, `model_map.values`; returns `expanded`.">
<td><a href="../api/vllm_mlx/endpoint_model_policies/#contract-vllm_mlx.endpoint_model_policies._with_identity_aliases"><code>vllm_mlx.endpoint_model_policies._with_identity_aliases</code></a></td>
<td>function</td>
<td><code>vllm_mlx.endpoint_model_policies._with_identity_aliases(model_map: dict[str, str]) -&gt; dict[str, str]</code></td>
<td>Function `_with_identity_aliases` calls `dict`, `model_map.values`; returns `expanded`.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/endpoint_model_policies.py#L42-L46">#L42-L46</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.endpoint_model_policies.resolve_embedding_model_name function vllm_mlx.endpoint_model_policies.resolve_embedding_model_name(requested_model: str, *, locked_model: str | none = none) -&gt; str resolve the embedding model for a request or raise http 400.">
<td><a href="../api/vllm_mlx/endpoint_model_policies/#contract-vllm_mlx.endpoint_model_policies.resolve_embedding_model_name"><code>vllm_mlx.endpoint_model_policies.resolve_embedding_model_name</code></a></td>
<td>function</td>
<td><code>vllm_mlx.endpoint_model_policies.resolve_embedding_model_name(requested_model: str, *, locked_model: str | None = None) -&gt; str</code></td>
<td>Resolve the embedding model for a request or raise HTTP 400.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/endpoint_model_policies.py#L82-L104">#L82-L104</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.endpoint_model_policies.resolve_stt_model_name function vllm_mlx.endpoint_model_policies.resolve_stt_model_name(requested_model: str) -&gt; str resolve an stt request model alias or configured model id.">
<td><a href="../api/vllm_mlx/endpoint_model_policies/#contract-vllm_mlx.endpoint_model_policies.resolve_stt_model_name"><code>vllm_mlx.endpoint_model_policies.resolve_stt_model_name</code></a></td>
<td>function</td>
<td><code>vllm_mlx.endpoint_model_policies.resolve_stt_model_name(requested_model: str) -&gt; str</code></td>
<td>Resolve an STT request model alias or configured model ID.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/endpoint_model_policies.py#L107-L111">#L107-L111</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.endpoint_model_policies.resolve_tts_model_name function vllm_mlx.endpoint_model_policies.resolve_tts_model_name(requested_model: str) -&gt; str resolve a tts request model alias or configured model id.">
<td><a href="../api/vllm_mlx/endpoint_model_policies/#contract-vllm_mlx.endpoint_model_policies.resolve_tts_model_name"><code>vllm_mlx.endpoint_model_policies.resolve_tts_model_name</code></a></td>
<td>function</td>
<td><code>vllm_mlx.endpoint_model_policies.resolve_tts_model_name(requested_model: str) -&gt; str</code></td>
<td>Resolve a TTS request model alias or configured model ID.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/endpoint_model_policies.py#L114-L118">#L114-L118</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.engine.__getattr__ function vllm_mlx.engine.__getattr__(name: str) -&gt; not annotated function `__getattr__` calls `attributeerror`; can raise `attributeerror`; has 3 explicit return paths.">
<td><a href="../api/vllm_mlx/engine/#contract-vllm_mlx.engine.__getattr__"><code>vllm_mlx.engine.__getattr__</code></a></td>
<td>function</td>
<td><code>vllm_mlx.engine.__getattr__(name: str) -&gt; not annotated</code></td>
<td>Function `__getattr__` calls `AttributeError`; can raise `AttributeError`; has 3 explicit return paths.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/engine/__init__.py#L34-L54">#L34-L54</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="class" data-symbol-search="vllm_mlx.engine.base.baseengine class vllm_mlx.engine.base.baseengine() abstract base class for inference engines.">
<td><a href="../api/vllm_mlx/engine/base/#contract-vllm_mlx.engine.base.BaseEngine"><code>vllm_mlx.engine.base.BaseEngine</code></a></td>
<td>class</td>
<td><code>vllm_mlx.engine.base.BaseEngine()</code></td>
<td>Abstract base class for inference engines.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/engine/base.py#L101-L288">#L101-L288</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.engine.base.baseengine.abort_request method async vllm_mlx.engine.base.baseengine.abort_request(request_id: str) -&gt; bool abort an active or queued request when the engine supports it.">
<td><a href="../api/vllm_mlx/engine/base/#contract-vllm_mlx.engine.base.BaseEngine.abort_request"><code>vllm_mlx.engine.base.BaseEngine.abort_request</code></a></td>
<td>method</td>
<td><code>async vllm_mlx.engine.base.BaseEngine.abort_request(request_id: str) -&gt; bool</code></td>
<td>Abort an active or queued request when the engine supports it.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/engine/base.py#L286-L288">#L286-L288</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.engine.base.baseengine.chat method async vllm_mlx.engine.base.baseengine.chat(messages: list[dict[str, any]], max_tokens: int = 256, temperature: float = 0.7, top_p: float = 0.9, tools: list[dict] | none = none, images: list[str] | none = none, videos: list[str] | none = none, **kwargs) -&gt; generationoutput chat completion (non-streaming).">
<td><a href="../api/vllm_mlx/engine/base/#contract-vllm_mlx.engine.base.BaseEngine.chat"><code>vllm_mlx.engine.base.BaseEngine.chat</code></a></td>
<td>method</td>
<td><code>async vllm_mlx.engine.base.BaseEngine.chat(messages: list[dict[str, Any]], max_tokens: int = 256, temperature: float = 0.7, top_p: float = 0.9, tools: list[dict] | None = None, images: list[str] | None = None, videos: list[str] | None = None, **kwargs) -&gt; GenerationOutput</code></td>
<td>Chat completion (non-streaming).</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/engine/base.py#L215-L242">#L215-L242</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.engine.base.baseengine.clear_runtime_caches method vllm_mlx.engine.base.baseengine.clear_runtime_caches() -&gt; dict[str, any] | none clear engine-managed runtime caches.">
<td><a href="../api/vllm_mlx/engine/base/#contract-vllm_mlx.engine.base.BaseEngine.clear_runtime_caches"><code>vllm_mlx.engine.base.BaseEngine.clear_runtime_caches</code></a></td>
<td>method</td>
<td><code>vllm_mlx.engine.base.BaseEngine.clear_runtime_caches() -&gt; dict[str, Any] | None</code></td>
<td>Clear engine-managed runtime caches.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/engine/base.py#L282-L284">#L282-L284</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.engine.base.baseengine.generate method async vllm_mlx.engine.base.baseengine.generate(prompt: str, max_tokens: int = 256, temperature: float = 0.7, top_p: float = 0.9, stop: list[str] | none = none, **kwargs) -&gt; generationoutput generate a complete response (non-streaming).">
<td><a href="../api/vllm_mlx/engine/base/#contract-vllm_mlx.engine.base.BaseEngine.generate"><code>vllm_mlx.engine.base.BaseEngine.generate</code></a></td>
<td>method</td>
<td><code>async vllm_mlx.engine.base.BaseEngine.generate(prompt: str, max_tokens: int = 256, temperature: float = 0.7, top_p: float = 0.9, stop: list[str] | None = None, **kwargs) -&gt; GenerationOutput</code></td>
<td>Generate a complete response (non-streaming).</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/engine/base.py#L163-L186">#L163-L186</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.engine.base.baseengine.get_cache_stats method vllm_mlx.engine.base.baseengine.get_cache_stats() -&gt; dict[str, any] | none get cache statistics.">
<td><a href="../api/vllm_mlx/engine/base/#contract-vllm_mlx.engine.base.BaseEngine.get_cache_stats"><code>vllm_mlx.engine.base.BaseEngine.get_cache_stats</code></a></td>
<td>method</td>
<td><code>vllm_mlx.engine.base.BaseEngine.get_cache_stats() -&gt; dict[str, Any] | None</code></td>
<td>Get cache statistics.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/engine/base.py#L278-L280">#L278-L280</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.engine.base.baseengine.get_stats method vllm_mlx.engine.base.baseengine.get_stats() -&gt; dict[str, any] get engine statistics.">
<td><a href="../api/vllm_mlx/engine/base/#contract-vllm_mlx.engine.base.BaseEngine.get_stats"><code>vllm_mlx.engine.base.BaseEngine.get_stats</code></a></td>
<td>method</td>
<td><code>vllm_mlx.engine.base.BaseEngine.get_stats() -&gt; dict[str, Any]</code></td>
<td>Get engine statistics.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/engine/base.py#L274-L276">#L274-L276</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.engine.base.baseengine.is_mllm method vllm_mlx.engine.base.baseengine.is_mllm() -&gt; bool check if this is a multimodal model.">
<td><a href="../api/vllm_mlx/engine/base/#contract-vllm_mlx.engine.base.BaseEngine.is_mllm"><code>vllm_mlx.engine.base.BaseEngine.is_mllm</code></a></td>
<td>method</td>
<td><code>vllm_mlx.engine.base.BaseEngine.is_mllm() -&gt; bool</code></td>
<td>Check if this is a multimodal model.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/engine/base.py#L117-L119">#L117-L119</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.engine.base.baseengine.model_name method vllm_mlx.engine.base.baseengine.model_name() -&gt; str get the model name.">
<td><a href="../api/vllm_mlx/engine/base/#contract-vllm_mlx.engine.base.BaseEngine.model_name"><code>vllm_mlx.engine.base.BaseEngine.model_name</code></a></td>
<td>method</td>
<td><code>vllm_mlx.engine.base.BaseEngine.model_name() -&gt; str</code></td>
<td>Get the model name.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/engine/base.py#L111-L113">#L111-L113</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.engine.base.baseengine.prepare_for_start method vllm_mlx.engine.base.baseengine.prepare_for_start() -&gt; none run blocking startup work before async engine start.">
<td><a href="../api/vllm_mlx/engine/base/#contract-vllm_mlx.engine.base.BaseEngine.prepare_for_start"><code>vllm_mlx.engine.base.BaseEngine.prepare_for_start</code></a></td>
<td>method</td>
<td><code>vllm_mlx.engine.base.BaseEngine.prepare_for_start() -&gt; None</code></td>
<td>Run blocking startup work before async engine start.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/engine/base.py#L143-L150">#L143-L150</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.engine.base.baseengine.preserve_native_tool_format method vllm_mlx.engine.base.baseengine.preserve_native_tool_format() -&gt; bool whether to preserve native tool message format.">
<td><a href="../api/vllm_mlx/engine/base/#contract-vllm_mlx.engine.base.BaseEngine.preserve_native_tool_format"><code>vllm_mlx.engine.base.BaseEngine.preserve_native_tool_format</code></a></td>
<td>method</td>
<td><code>vllm_mlx.engine.base.BaseEngine.preserve_native_tool_format() -&gt; bool</code></td>
<td>Whether to preserve native tool message format.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/engine/base.py#L128-L135">#L128-L135</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.engine.base.baseengine.preserve_native_tool_format method vllm_mlx.engine.base.baseengine.preserve_native_tool_format(value: bool) -&gt; none enable or disable preservation of model-native tool messages.">
<td><a href="../api/vllm_mlx/engine/base/#contract-vllm_mlx.engine.base.BaseEngine.preserve_native_tool_format"><code>vllm_mlx.engine.base.BaseEngine.preserve_native_tool_format</code></a></td>
<td>method</td>
<td><code>vllm_mlx.engine.base.BaseEngine.preserve_native_tool_format(value: bool) -&gt; None</code></td>
<td>Enable or disable preservation of model-native tool messages.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/engine/base.py#L138-L141">#L138-L141</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.engine.base.baseengine.start method async vllm_mlx.engine.base.baseengine.start() -&gt; none start the engine (load model if not loaded).">
<td><a href="../api/vllm_mlx/engine/base/#contract-vllm_mlx.engine.base.BaseEngine.start"><code>vllm_mlx.engine.base.BaseEngine.start</code></a></td>
<td>method</td>
<td><code>async vllm_mlx.engine.base.BaseEngine.start() -&gt; None</code></td>
<td>Start the engine (load model if not loaded).</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/engine/base.py#L153-L155">#L153-L155</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.engine.base.baseengine.stop method async vllm_mlx.engine.base.baseengine.stop() -&gt; none stop the engine and cleanup resources.">
<td><a href="../api/vllm_mlx/engine/base/#contract-vllm_mlx.engine.base.BaseEngine.stop"><code>vllm_mlx.engine.base.BaseEngine.stop</code></a></td>
<td>method</td>
<td><code>async vllm_mlx.engine.base.BaseEngine.stop() -&gt; None</code></td>
<td>Stop the engine and cleanup resources.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/engine/base.py#L158-L160">#L158-L160</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.engine.base.baseengine.stream_chat method async vllm_mlx.engine.base.baseengine.stream_chat(messages: list[dict[str, any]], max_tokens: int = 256, temperature: float = 0.7, top_p: float = 0.9, tools: list[dict] | none = none, images: list[str] | none = none, videos: list[str] | none = none, **kwargs) -&gt; asynciterator[generationoutput] stream chat completion token by token.">
<td><a href="../api/vllm_mlx/engine/base/#contract-vllm_mlx.engine.base.BaseEngine.stream_chat"><code>vllm_mlx.engine.base.BaseEngine.stream_chat</code></a></td>
<td>method</td>
<td><code>async vllm_mlx.engine.base.BaseEngine.stream_chat(messages: list[dict[str, Any]], max_tokens: int = 256, temperature: float = 0.7, top_p: float = 0.9, tools: list[dict] | None = None, images: list[str] | None = None, videos: list[str] | None = None, **kwargs) -&gt; AsyncIterator[GenerationOutput]</code></td>
<td>Stream chat completion token by token.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/engine/base.py#L245-L272">#L245-L272</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.engine.base.baseengine.stream_generate method async vllm_mlx.engine.base.baseengine.stream_generate(prompt: str, max_tokens: int = 256, temperature: float = 0.7, top_p: float = 0.9, stop: list[str] | none = none, **kwargs) -&gt; asynciterator[generationoutput] stream generation token by token.">
<td><a href="../api/vllm_mlx/engine/base/#contract-vllm_mlx.engine.base.BaseEngine.stream_generate"><code>vllm_mlx.engine.base.BaseEngine.stream_generate</code></a></td>
<td>method</td>
<td><code>async vllm_mlx.engine.base.BaseEngine.stream_generate(prompt: str, max_tokens: int = 256, temperature: float = 0.7, top_p: float = 0.9, stop: list[str] | None = None, **kwargs) -&gt; AsyncIterator[GenerationOutput]</code></td>
<td>Stream generation token by token.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/engine/base.py#L189-L212">#L189-L212</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.engine.base.baseengine.tokenizer method vllm_mlx.engine.base.baseengine.tokenizer() -&gt; any get the tokenizer.">
<td><a href="../api/vllm_mlx/engine/base/#contract-vllm_mlx.engine.base.BaseEngine.tokenizer"><code>vllm_mlx.engine.base.BaseEngine.tokenizer</code></a></td>
<td>method</td>
<td><code>vllm_mlx.engine.base.BaseEngine.tokenizer() -&gt; Any</code></td>
<td>Get the tokenizer.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/engine/base.py#L123-L125">#L123-L125</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.engine.base.cleanup_startup_cancellation function async vllm_mlx.engine.base.cleanup_startup_cancellation(cleanup: callable[[], awaitable[none]]) -&gt; none run startup cleanup without letting cleanup failures replace cancellation.">
<td><a href="../api/vllm_mlx/engine/base/#contract-vllm_mlx.engine.base.cleanup_startup_cancellation"><code>vllm_mlx.engine.base.cleanup_startup_cancellation</code></a></td>
<td>function</td>
<td><code>async vllm_mlx.engine.base.cleanup_startup_cancellation(cleanup: Callable[[], Awaitable[None]]) -&gt; None</code></td>
<td>Run startup cleanup without letting cleanup failures replace cancellation.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/engine/base.py#L87-L98">#L87-L98</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="class" data-symbol-search="vllm_mlx.engine.base.enginebusy class vllm_mlx.engine.base.enginebusy() raised when a serialized engine route is already serving a request.">
<td><a href="../api/vllm_mlx/engine/base/#contract-vllm_mlx.engine.base.EngineBusy"><code>vllm_mlx.engine.base.EngineBusy</code></a></td>
<td>class</td>
<td><code>vllm_mlx.engine.base.EngineBusy()</code></td>
<td>Raised when a serialized engine route is already serving a request.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/engine/base.py#L40-L43">#L40-L43</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="class" data-symbol-search="vllm_mlx.engine.base.generationoutput class vllm_mlx.engine.base.generationoutput(text: str, tokens: list[int] = field(default_factory=list), prompt_tokens: int = 0, completion_tokens: int = 0, finish_reason: str | none = &#x27;stop&#x27;, mtp_drafts: int = 0, mtp_accepted: int = 0, new_text: str = &#x27;&#x27;, finished: bool = true, mtp_drafts: int = 0, mtp_accepted: int = 0) output from generation.">
<td><a href="../api/vllm_mlx/engine/base/#contract-vllm_mlx.engine.base.GenerationOutput"><code>vllm_mlx.engine.base.GenerationOutput</code></a></td>
<td>class</td>
<td><code>vllm_mlx.engine.base.GenerationOutput(text: str, tokens: list[int] = field(default_factory=list), prompt_tokens: int = 0, completion_tokens: int = 0, finish_reason: str | None = &#x27;stop&#x27;, mtp_drafts: int = 0, mtp_accepted: int = 0, new_text: str = &#x27;&#x27;, finished: bool = True, mtp_drafts: int = 0, mtp_accepted: int = 0)</code></td>
<td>Output from generation.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/engine/base.py#L18-L37">#L18-L37</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.engine.base.run_blocking_startup_work function async vllm_mlx.engine.base.run_blocking_startup_work(work: callable[[], any]) -&gt; none run blocking startup work off-loop without leaking cancellation races.">
<td><a href="../api/vllm_mlx/engine/base/#contract-vllm_mlx.engine.base.run_blocking_startup_work"><code>vllm_mlx.engine.base.run_blocking_startup_work</code></a></td>
<td>function</td>
<td><code>async vllm_mlx.engine.base.run_blocking_startup_work(work: Callable[[], Any]) -&gt; None</code></td>
<td>Run blocking startup work off-loop without leaking cancellation races.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/engine/base.py#L70-L84">#L70-L84</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.engine.base.suspend_cancellation function vllm_mlx.engine.base.suspend_cancellation() -&gt; not annotated temporarily clear task cancellation so cleanup can finish deterministically.">
<td><a href="../api/vllm_mlx/engine/base/#contract-vllm_mlx.engine.base.suspend_cancellation"><code>vllm_mlx.engine.base.suspend_cancellation</code></a></td>
<td>function</td>
<td><code>vllm_mlx.engine.base.suspend_cancellation() -&gt; not annotated</code></td>
<td>Temporarily clear task cancellation so cleanup can finish deterministically.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/engine/base.py#L47-L67">#L47-L67</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.engine.batched._extract_media_from_messages function vllm_mlx.engine.batched._extract_media_from_messages(messages: list[dict[str, any]]) -&gt; tuple extract images, videos, and audio from openai-format messages.">
<td><a href="../api/vllm_mlx/engine/batched/#contract-vllm_mlx.engine.batched._extract_media_from_messages"><code>vllm_mlx.engine.batched._extract_media_from_messages</code></a></td>
<td>function</td>
<td><code>vllm_mlx.engine.batched._extract_media_from_messages(messages: list[dict[str, Any]]) -&gt; tuple</code></td>
<td>Extract images, videos, and audio from OpenAI-format messages.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/engine/batched.py#L66-L137">#L66-L137</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.engine.batched._normalize_tool_call_arguments_for_template function vllm_mlx.engine.batched._normalize_tool_call_arguments_for_template(messages: list[dict]) -&gt; list[dict] normalize openai tool-call replay for templates expecting mappings.">
<td><a href="../api/vllm_mlx/engine/batched/#contract-vllm_mlx.engine.batched._normalize_tool_call_arguments_for_template"><code>vllm_mlx.engine.batched._normalize_tool_call_arguments_for_template</code></a></td>
<td>function</td>
<td><code>vllm_mlx.engine.batched._normalize_tool_call_arguments_for_template(messages: list[dict]) -&gt; list[dict]</code></td>
<td>Normalize OpenAI tool-call replay for templates expecting mappings.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/engine/batched.py#L61-L63">#L61-L63</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.engine.batched._resolve_metal_buffer_cache_limit function vllm_mlx.engine.batched._resolve_metal_buffer_cache_limit(max_recommended: int, gpu_memory_utilization: float) -&gt; tuple[int, str] resolve the mlx retained-buffer cache cap for metal startup.">
<td><a href="../api/vllm_mlx/engine/batched/#contract-vllm_mlx.engine.batched._resolve_metal_buffer_cache_limit"><code>vllm_mlx.engine.batched._resolve_metal_buffer_cache_limit</code></a></td>
<td>function</td>
<td><code>vllm_mlx.engine.batched._resolve_metal_buffer_cache_limit(max_recommended: int, gpu_memory_utilization: float) -&gt; tuple[int, str]</code></td>
<td>Resolve the MLX retained-buffer cache cap for Metal startup.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/engine/batched.py#L35-L58">#L35-L58</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="class" data-symbol-search="vllm_mlx.engine.batched.batchedengine class vllm_mlx.engine.batched.batchedengine(model_name: str, trust_remote_code: bool = false, scheduler_config: any | none = none, stream_interval: int = 1, force_mllm: bool = false, gpu_memory_utilization: float = 0.9) batched engine for continuous batching.">
<td><a href="../api/vllm_mlx/engine/batched/#contract-vllm_mlx.engine.batched.BatchedEngine"><code>vllm_mlx.engine.batched.BatchedEngine</code></a></td>
<td>class</td>
<td><code>vllm_mlx.engine.batched.BatchedEngine(model_name: str, trust_remote_code: bool = False, scheduler_config: Any | None = None, stream_interval: int = 1, force_mllm: bool = False, gpu_memory_utilization: float = 0.9)</code></td>
<td>Batched engine for continuous batching.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/engine/batched.py#L178-L1231">#L178-L1231</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.engine.batched.batchedengine.__init__ method vllm_mlx.engine.batched.batchedengine.__init__(model_name: str, trust_remote_code: bool = false, scheduler_config: any | none = none, stream_interval: int = 1, force_mllm: bool = false, gpu_memory_utilization: float = 0.9) -&gt; not annotated initialize the batched engine.">
<td><a href="../api/vllm_mlx/engine/batched/#contract-vllm_mlx.engine.batched.BatchedEngine.__init__"><code>vllm_mlx.engine.batched.BatchedEngine.__init__</code></a></td>
<td>method</td>
<td><code>vllm_mlx.engine.batched.BatchedEngine.__init__(model_name: str, trust_remote_code: bool = False, scheduler_config: Any | None = None, stream_interval: int = 1, force_mllm: bool = False, gpu_memory_utilization: float = 0.9) -&gt; not annotated</code></td>
<td>Initialize the batched engine.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/engine/batched.py#L189-L224">#L189-L224</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.engine.batched.batchedengine._apply_chat_template method vllm_mlx.engine.batched.batchedengine._apply_chat_template(messages: list[dict[str, any]], tools: list[dict] | none = none, num_images: int = 0, num_audios: int = 0, chat_template_kwargs: dict[str, any] | none = none, enable_thinking: bool | none = none) -&gt; str apply chat template to messages.">
<td><a href="../api/vllm_mlx/engine/batched/#contract-vllm_mlx.engine.batched.BatchedEngine._apply_chat_template"><code>vllm_mlx.engine.batched.BatchedEngine._apply_chat_template</code></a></td>
<td>method</td>
<td><code>vllm_mlx.engine.batched.BatchedEngine._apply_chat_template(messages: list[dict[str, Any]], tools: list[dict] | None = None, num_images: int = 0, num_audios: int = 0, chat_template_kwargs: dict[str, Any] | None = None, enable_thinking: bool | None = None) -&gt; str</code></td>
<td>Apply chat template to messages.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/engine/batched.py#L599-L687">#L599-L687</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.engine.batched.batchedengine._compute_prefix_boundary method vllm_mlx.engine.batched.batchedengine._compute_prefix_boundary(messages: list[dict[str, any]], tools: list[dict] | none = none, chat_template_kwargs: dict[str, any] | none = none) -&gt; int compute token count for the shared prefix across message variations.">
<td><a href="../api/vllm_mlx/engine/batched/#contract-vllm_mlx.engine.batched.BatchedEngine._compute_prefix_boundary"><code>vllm_mlx.engine.batched.BatchedEngine._compute_prefix_boundary</code></a></td>
<td>method</td>
<td><code>vllm_mlx.engine.batched.BatchedEngine._compute_prefix_boundary(messages: list[dict[str, Any]], tools: list[dict] | None = None, chat_template_kwargs: dict[str, Any] | None = None) -&gt; int</code></td>
<td>Compute token count for the shared prefix across message variations.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/engine/batched.py#L986-L1046">#L986-L1046</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.engine.batched.batchedengine._configure_metal_memory_limits method vllm_mlx.engine.batched.batchedengine._configure_metal_memory_limits() -&gt; none make mlx allocation failures graceful during startup.">
<td><a href="../api/vllm_mlx/engine/batched/#contract-vllm_mlx.engine.batched.BatchedEngine._configure_metal_memory_limits"><code>vllm_mlx.engine.batched.BatchedEngine._configure_metal_memory_limits</code></a></td>
<td>method</td>
<td><code>vllm_mlx.engine.batched.BatchedEngine._configure_metal_memory_limits() -&gt; None</code></td>
<td>Make MLX allocation failures graceful during startup.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/engine/batched.py#L513-L541">#L513-L541</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.engine.batched.batchedengine._inject_mtp_mllm method vllm_mlx.engine.batched.batchedengine._inject_mtp_mllm() -&gt; none inject mtp weights into the mllm model&#x27;s language_model.">
<td><a href="../api/vllm_mlx/engine/batched/#contract-vllm_mlx.engine.batched.BatchedEngine._inject_mtp_mllm"><code>vllm_mlx.engine.batched.BatchedEngine._inject_mtp_mllm</code></a></td>
<td>method</td>
<td><code>vllm_mlx.engine.batched.BatchedEngine._inject_mtp_mllm() -&gt; None</code></td>
<td>Inject MTP weights into the MLLM model&#x27;s language_model.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/engine/batched.py#L431-L477">#L431-L477</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.engine.batched.batchedengine._prepare_llm_model method vllm_mlx.engine.batched.batchedengine._prepare_llm_model() -&gt; none load the llm model/tokenizer before engine loop startup.">
<td><a href="../api/vllm_mlx/engine/batched/#contract-vllm_mlx.engine.batched.BatchedEngine._prepare_llm_model"><code>vllm_mlx.engine.batched.BatchedEngine._prepare_llm_model</code></a></td>
<td>method</td>
<td><code>vllm_mlx.engine.batched.BatchedEngine._prepare_llm_model() -&gt; None</code></td>
<td>Load the LLM model/tokenizer before engine loop startup.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/engine/batched.py#L479-L511">#L479-L511</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.engine.batched.batchedengine._prepare_mllm_messages method vllm_mlx.engine.batched.batchedengine._prepare_mllm_messages(messages: list[dict[str, any]]) -&gt; list[dict[str, any]] convert openai-style multimodal content to huggingface format.">
<td><a href="../api/vllm_mlx/engine/batched/#contract-vllm_mlx.engine.batched.BatchedEngine._prepare_mllm_messages"><code>vllm_mlx.engine.batched.BatchedEngine._prepare_mllm_messages</code></a></td>
<td>method</td>
<td><code>vllm_mlx.engine.batched.BatchedEngine._prepare_mllm_messages(messages: list[dict[str, Any]]) -&gt; list[dict[str, Any]]</code></td>
<td>Convert OpenAI-style multimodal content to HuggingFace format.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/engine/batched.py#L690-L726">#L690-L726</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.engine.batched.batchedengine._prepare_mllm_model method vllm_mlx.engine.batched.batchedengine._prepare_mllm_model() -&gt; none load the mllm model before scheduler startup.">
<td><a href="../api/vllm_mlx/engine/batched/#contract-vllm_mlx.engine.batched.BatchedEngine._prepare_mllm_model"><code>vllm_mlx.engine.batched.BatchedEngine._prepare_mllm_model</code></a></td>
<td>method</td>
<td><code>vllm_mlx.engine.batched.BatchedEngine._prepare_mllm_model() -&gt; None</code></td>
<td>Load the MLLM model before scheduler startup.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/engine/batched.py#L289-L334">#L289-L334</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.engine.batched.batchedengine._start_llm method async vllm_mlx.engine.batched.batchedengine._start_llm() -&gt; none start the llm engine with asyncenginecore.">
<td><a href="../api/vllm_mlx/engine/batched/#contract-vllm_mlx.engine.batched.BatchedEngine._start_llm"><code>vllm_mlx.engine.batched.BatchedEngine._start_llm</code></a></td>
<td>method</td>
<td><code>async vllm_mlx.engine.batched.BatchedEngine._start_llm() -&gt; None</code></td>
<td>Start the LLM engine with AsyncEngineCore.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/engine/batched.py#L543-L579">#L543-L579</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.engine.batched.batchedengine._start_mllm method async vllm_mlx.engine.batched.batchedengine._start_mllm() -&gt; none start the mllm engine with mllmscheduler (continuous batching).">
<td><a href="../api/vllm_mlx/engine/batched/#contract-vllm_mlx.engine.batched.BatchedEngine._start_mllm"><code>vllm_mlx.engine.batched.BatchedEngine._start_mllm</code></a></td>
<td>method</td>
<td><code>async vllm_mlx.engine.batched.BatchedEngine._start_mllm() -&gt; None</code></td>
<td>Start the MLLM engine with MLLMScheduler (continuous batching).</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/engine/batched.py#L336-L429">#L336-L429</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.engine.batched.batchedengine._uses_default_prepare_for_start method vllm_mlx.engine.batched.batchedengine._uses_default_prepare_for_start() -&gt; bool return true when prepare_for_start is the class implementation.">
<td><a href="../api/vllm_mlx/engine/batched/#contract-vllm_mlx.engine.batched.BatchedEngine._uses_default_prepare_for_start"><code>vllm_mlx.engine.batched.BatchedEngine._uses_default_prepare_for_start</code></a></td>
<td>method</td>
<td><code>vllm_mlx.engine.batched.BatchedEngine._uses_default_prepare_for_start() -&gt; bool</code></td>
<td>Return True when prepare_for_start is the class implementation.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/engine/batched.py#L284-L287">#L284-L287</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.engine.batched.batchedengine.abort_request method async vllm_mlx.engine.batched.batchedengine.abort_request(request_id: str) -&gt; bool abort an active or queued batched request by request id.">
<td><a href="../api/vllm_mlx/engine/batched/#contract-vllm_mlx.engine.batched.BatchedEngine.abort_request"><code>vllm_mlx.engine.batched.BatchedEngine.abort_request</code></a></td>
<td>method</td>
<td><code>async vllm_mlx.engine.batched.BatchedEngine.abort_request(request_id: str) -&gt; bool</code></td>
<td>Abort an active or queued batched request by request ID.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/engine/batched.py#L1190-L1199">#L1190-L1199</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.engine.batched.batchedengine.chat method async vllm_mlx.engine.batched.batchedengine.chat(messages: list[dict[str, any]], max_tokens: int = 256, temperature: float = 0.7, top_p: float = 0.9, tools: list[dict] | none = none, images: list[str] | none = none, videos: list[str] | none = none, **kwargs) -&gt; generationoutput chat completion (non-streaming).">
<td><a href="../api/vllm_mlx/engine/batched/#contract-vllm_mlx.engine.batched.BatchedEngine.chat"><code>vllm_mlx.engine.batched.BatchedEngine.chat</code></a></td>
<td>method</td>
<td><code>async vllm_mlx.engine.batched.BatchedEngine.chat(messages: list[dict[str, Any]], max_tokens: int = 256, temperature: float = 0.7, top_p: float = 0.9, tools: list[dict] | None = None, images: list[str] | None = None, videos: list[str] | None = None, **kwargs) -&gt; GenerationOutput</code></td>
<td>Chat completion (non-streaming).</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/engine/batched.py#L915-L984">#L915-L984</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.engine.batched.batchedengine.clear_prefix_cache method vllm_mlx.engine.batched.batchedengine.clear_prefix_cache() -&gt; none clear the in-memory prefix cache.">
<td><a href="../api/vllm_mlx/engine/batched/#contract-vllm_mlx.engine.batched.BatchedEngine.clear_prefix_cache"><code>vllm_mlx.engine.batched.BatchedEngine.clear_prefix_cache</code></a></td>
<td>method</td>
<td><code>vllm_mlx.engine.batched.BatchedEngine.clear_prefix_cache() -&gt; None</code></td>
<td>Clear the in-memory prefix cache.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/engine/batched.py#L1222-L1231">#L1222-L1231</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.engine.batched.batchedengine.clear_runtime_caches method vllm_mlx.engine.batched.batchedengine.clear_runtime_caches() -&gt; dict[str, any] | none clear engine-managed runtime caches.">
<td><a href="../api/vllm_mlx/engine/batched/#contract-vllm_mlx.engine.batched.BatchedEngine.clear_runtime_caches"><code>vllm_mlx.engine.batched.BatchedEngine.clear_runtime_caches</code></a></td>
<td>method</td>
<td><code>vllm_mlx.engine.batched.BatchedEngine.clear_runtime_caches() -&gt; dict[str, Any] | None</code></td>
<td>Clear engine-managed runtime caches.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/engine/batched.py#L1182-L1188">#L1182-L1188</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.engine.batched.batchedengine.generate method async vllm_mlx.engine.batched.batchedengine.generate(prompt: str, max_tokens: int = 256, temperature: float = 0.7, top_p: float = 0.9, stop: list[str] | none = none, images: list[str] | none = none, videos: list[str] | none = none, audio: list[str] | none = none, **kwargs) -&gt; generationoutput generate a complete response (non-streaming).">
<td><a href="../api/vllm_mlx/engine/batched/#contract-vllm_mlx.engine.batched.BatchedEngine.generate"><code>vllm_mlx.engine.batched.BatchedEngine.generate</code></a></td>
<td>method</td>
<td><code>async vllm_mlx.engine.batched.BatchedEngine.generate(prompt: str, max_tokens: int = 256, temperature: float = 0.7, top_p: float = 0.9, stop: list[str] | None = None, images: list[str] | None = None, videos: list[str] | None = None, audio: list[str] | None = None, **kwargs) -&gt; GenerationOutput</code></td>
<td>Generate a complete response (non-streaming).</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/engine/batched.py#L728-L817">#L728-L817</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.engine.batched.batchedengine.get_cache_stats method vllm_mlx.engine.batched.batchedengine.get_cache_stats() -&gt; dict[str, any] | none get cache statistics.">
<td><a href="../api/vllm_mlx/engine/batched/#contract-vllm_mlx.engine.batched.BatchedEngine.get_cache_stats"><code>vllm_mlx.engine.batched.BatchedEngine.get_cache_stats</code></a></td>
<td>method</td>
<td><code>vllm_mlx.engine.batched.BatchedEngine.get_cache_stats() -&gt; dict[str, Any] | None</code></td>
<td>Get cache statistics.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/engine/batched.py#L1171-L1180">#L1171-L1180</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.engine.batched.batchedengine.get_stats method vllm_mlx.engine.batched.batchedengine.get_stats() -&gt; dict[str, any] get engine statistics.">
<td><a href="../api/vllm_mlx/engine/batched/#contract-vllm_mlx.engine.batched.BatchedEngine.get_stats"><code>vllm_mlx.engine.batched.BatchedEngine.get_stats</code></a></td>
<td>method</td>
<td><code>vllm_mlx.engine.batched.BatchedEngine.get_stats() -&gt; dict[str, Any]</code></td>
<td>Get engine statistics.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/engine/batched.py#L1129-L1169">#L1129-L1169</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.engine.batched.batchedengine.is_mllm method vllm_mlx.engine.batched.batchedengine.is_mllm() -&gt; bool check if this is a multimodal model.">
<td><a href="../api/vllm_mlx/engine/batched/#contract-vllm_mlx.engine.batched.BatchedEngine.is_mllm"><code>vllm_mlx.engine.batched.BatchedEngine.is_mllm</code></a></td>
<td>method</td>
<td><code>vllm_mlx.engine.batched.BatchedEngine.is_mllm() -&gt; bool</code></td>
<td>Check if this is a multimodal model.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/engine/batched.py#L232-L234">#L232-L234</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.engine.batched.batchedengine.load_cache_from_disk method vllm_mlx.engine.batched.batchedengine.load_cache_from_disk(cache_dir: str) -&gt; int load prefix cache from disk.">
<td><a href="../api/vllm_mlx/engine/batched/#contract-vllm_mlx.engine.batched.BatchedEngine.load_cache_from_disk"><code>vllm_mlx.engine.batched.BatchedEngine.load_cache_from_disk</code></a></td>
<td>method</td>
<td><code>vllm_mlx.engine.batched.BatchedEngine.load_cache_from_disk(cache_dir: str) -&gt; int</code></td>
<td>Load prefix cache from disk.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/engine/batched.py#L1211-L1220">#L1211-L1220</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.engine.batched.batchedengine.model_name method vllm_mlx.engine.batched.batchedengine.model_name() -&gt; str get the model name.">
<td><a href="../api/vllm_mlx/engine/batched/#contract-vllm_mlx.engine.batched.BatchedEngine.model_name"><code>vllm_mlx.engine.batched.BatchedEngine.model_name</code></a></td>
<td>method</td>
<td><code>vllm_mlx.engine.batched.BatchedEngine.model_name() -&gt; str</code></td>
<td>Get the model name.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/engine/batched.py#L227-L229">#L227-L229</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.engine.batched.batchedengine.prepare_for_start method vllm_mlx.engine.batched.batchedengine.prepare_for_start() -&gt; none load heavyweight model state off the serving event loop.">
<td><a href="../api/vllm_mlx/engine/batched/#contract-vllm_mlx.engine.batched.BatchedEngine.prepare_for_start"><code>vllm_mlx.engine.batched.BatchedEngine.prepare_for_start</code></a></td>
<td>method</td>
<td><code>vllm_mlx.engine.batched.BatchedEngine.prepare_for_start() -&gt; None</code></td>
<td>Load heavyweight model state off the serving event loop.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/engine/batched.py#L243-L251">#L243-L251</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.engine.batched.batchedengine.save_cache_to_disk method vllm_mlx.engine.batched.batchedengine.save_cache_to_disk(cache_dir: str) -&gt; bool save prefix cache to disk for persistence across restarts.">
<td><a href="../api/vllm_mlx/engine/batched/#contract-vllm_mlx.engine.batched.BatchedEngine.save_cache_to_disk"><code>vllm_mlx.engine.batched.BatchedEngine.save_cache_to_disk</code></a></td>
<td>method</td>
<td><code>vllm_mlx.engine.batched.BatchedEngine.save_cache_to_disk(cache_dir: str) -&gt; bool</code></td>
<td>Save prefix cache to disk for persistence across restarts.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/engine/batched.py#L1201-L1209">#L1201-L1209</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.engine.batched.batchedengine.start method async vllm_mlx.engine.batched.batchedengine.start() -&gt; none start the engine (load model if not loaded).">
<td><a href="../api/vllm_mlx/engine/batched/#contract-vllm_mlx.engine.batched.BatchedEngine.start"><code>vllm_mlx.engine.batched.BatchedEngine.start</code></a></td>
<td>method</td>
<td><code>async vllm_mlx.engine.batched.BatchedEngine.start() -&gt; None</code></td>
<td>Start the engine (load model if not loaded).</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/engine/batched.py#L253-L282">#L253-L282</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.engine.batched.batchedengine.stop method async vllm_mlx.engine.batched.batchedengine.stop() -&gt; none stop the engine and cleanup resources.">
<td><a href="../api/vllm_mlx/engine/batched/#contract-vllm_mlx.engine.batched.BatchedEngine.stop"><code>vllm_mlx.engine.batched.BatchedEngine.stop</code></a></td>
<td>method</td>
<td><code>async vllm_mlx.engine.batched.BatchedEngine.stop() -&gt; None</code></td>
<td>Stop the engine and cleanup resources.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/engine/batched.py#L581-L597">#L581-L597</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.engine.batched.batchedengine.stream_chat method async vllm_mlx.engine.batched.batchedengine.stream_chat(messages: list[dict[str, any]], max_tokens: int = 256, temperature: float = 0.7, top_p: float = 0.9, tools: list[dict] | none = none, images: list[str] | none = none, videos: list[str] | none = none, **kwargs) -&gt; asynciterator[generationoutput] stream chat completion token by token.">
<td><a href="../api/vllm_mlx/engine/batched/#contract-vllm_mlx.engine.batched.BatchedEngine.stream_chat"><code>vllm_mlx.engine.batched.BatchedEngine.stream_chat</code></a></td>
<td>method</td>
<td><code>async vllm_mlx.engine.batched.BatchedEngine.stream_chat(messages: list[dict[str, Any]], max_tokens: int = 256, temperature: float = 0.7, top_p: float = 0.9, tools: list[dict] | None = None, images: list[str] | None = None, videos: list[str] | None = None, **kwargs) -&gt; AsyncIterator[GenerationOutput]</code></td>
<td>Stream chat completion token by token.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/engine/batched.py#L1048-L1127">#L1048-L1127</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.engine.batched.batchedengine.stream_generate method async vllm_mlx.engine.batched.batchedengine.stream_generate(prompt: str, max_tokens: int = 256, temperature: float = 0.7, top_p: float = 0.9, stop: list[str] | none = none, images: list[str] | none = none, videos: list[str] | none = none, audio: list[str] | none = none, **kwargs) -&gt; asynciterator[generationoutput] stream generation token by token.">
<td><a href="../api/vllm_mlx/engine/batched/#contract-vllm_mlx.engine.batched.BatchedEngine.stream_generate"><code>vllm_mlx.engine.batched.BatchedEngine.stream_generate</code></a></td>
<td>method</td>
<td><code>async vllm_mlx.engine.batched.BatchedEngine.stream_generate(prompt: str, max_tokens: int = 256, temperature: float = 0.7, top_p: float = 0.9, stop: list[str] | None = None, images: list[str] | None = None, videos: list[str] | None = None, audio: list[str] | None = None, **kwargs) -&gt; AsyncIterator[GenerationOutput]</code></td>
<td>Stream generation token by token.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/engine/batched.py#L819-L913">#L819-L913</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.engine.batched.batchedengine.tokenizer method vllm_mlx.engine.batched.batchedengine.tokenizer() -&gt; any get the tokenizer.">
<td><a href="../api/vllm_mlx/engine/batched/#contract-vllm_mlx.engine.batched.BatchedEngine.tokenizer"><code>vllm_mlx.engine.batched.BatchedEngine.tokenizer</code></a></td>
<td>method</td>
<td><code>vllm_mlx.engine.batched.BatchedEngine.tokenizer() -&gt; Any</code></td>
<td>Get the tokenizer.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/engine/batched.py#L237-L241">#L237-L241</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="class" data-symbol-search="vllm_mlx.engine.batched.mllmmodelwrapper class vllm_mlx.engine.batched.mllmmodelwrapper(model) wrapper for mllm models to make them compatible with batchgenerator.">
<td><a href="../api/vllm_mlx/engine/batched/#contract-vllm_mlx.engine.batched.MLLMModelWrapper"><code>vllm_mlx.engine.batched.MLLMModelWrapper</code></a></td>
<td>class</td>
<td><code>vllm_mlx.engine.batched.MLLMModelWrapper(model)</code></td>
<td>Wrapper for MLLM models to make them compatible with BatchGenerator.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/engine/batched.py#L140-L175">#L140-L175</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.engine.batched.mllmmodelwrapper.__call__ method vllm_mlx.engine.batched.mllmmodelwrapper.__call__(*args, **kwargs) -&gt; not annotated call the model and extract logits from languagemodeloutput.">
<td><a href="../api/vllm_mlx/engine/batched/#contract-vllm_mlx.engine.batched.MLLMModelWrapper.__call__"><code>vllm_mlx.engine.batched.MLLMModelWrapper.__call__</code></a></td>
<td>method</td>
<td><code>vllm_mlx.engine.batched.MLLMModelWrapper.__call__(*args, **kwargs) -&gt; not annotated</code></td>
<td>Call the model and extract logits from LanguageModelOutput.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/engine/batched.py#L160-L171">#L160-L171</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.engine.batched.mllmmodelwrapper.__getattr__ method vllm_mlx.engine.batched.mllmmodelwrapper.__getattr__(name) -&gt; not annotated forward all other attributes to the wrapped model.">
<td><a href="../api/vllm_mlx/engine/batched/#contract-vllm_mlx.engine.batched.MLLMModelWrapper.__getattr__"><code>vllm_mlx.engine.batched.MLLMModelWrapper.__getattr__</code></a></td>
<td>method</td>
<td><code>vllm_mlx.engine.batched.MLLMModelWrapper.__getattr__(name) -&gt; not annotated</code></td>
<td>Forward all other attributes to the wrapped model.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/engine/batched.py#L173-L175">#L173-L175</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.engine.batched.mllmmodelwrapper.__init__ method vllm_mlx.engine.batched.mllmmodelwrapper.__init__(model) -&gt; not annotated method `mllmmodelwrapper.__init__` updates `self._model`, `self._is_gemma3`; calls `hasattr`, `str(getattr(model, &#x27;model_type&#x27;, &#x27;&#x27;)).lower`, `str`, `getattr`.">
<td><a href="../api/vllm_mlx/engine/batched/#contract-vllm_mlx.engine.batched.MLLMModelWrapper.__init__"><code>vllm_mlx.engine.batched.MLLMModelWrapper.__init__</code></a></td>
<td>method</td>
<td><code>vllm_mlx.engine.batched.MLLMModelWrapper.__init__(model) -&gt; not annotated</code></td>
<td>Method `MLLMModelWrapper.__init__` updates `self._model`, `self._is_gemma3`; calls `hasattr`, `str(getattr(model, &#x27;model_type&#x27;, &#x27;&#x27;)).lower`, `str`, `getattr`.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/engine/batched.py#L152-L158">#L152-L158</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.engine.chat_template_safety._close_dangling_think_before_tool_call function vllm_mlx.engine.chat_template_safety._close_dangling_think_before_tool_call(content: str) -&gt; str keep raw tool xml out of an unterminated ``&lt;think&gt;`` section.">
<td><a href="../api/vllm_mlx/engine/chat_template_safety/#contract-vllm_mlx.engine.chat_template_safety._close_dangling_think_before_tool_call"><code>vllm_mlx.engine.chat_template_safety._close_dangling_think_before_tool_call</code></a></td>
<td>function</td>
<td><code>vllm_mlx.engine.chat_template_safety._close_dangling_think_before_tool_call(content: str) -&gt; str</code></td>
<td>Keep raw tool XML out of an unterminated ``&lt;think&gt;`` section.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/engine/chat_template_safety.py#L8-L29">#L8-L29</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.engine.chat_template_safety._message_to_dict function vllm_mlx.engine.chat_template_safety._message_to_dict(message: any) -&gt; dict[str, any] | any convert openai message model objects without stringifying them.">
<td><a href="../api/vllm_mlx/engine/chat_template_safety/#contract-vllm_mlx.engine.chat_template_safety._message_to_dict"><code>vllm_mlx.engine.chat_template_safety._message_to_dict</code></a></td>
<td>function</td>
<td><code>vllm_mlx.engine.chat_template_safety._message_to_dict(message: Any) -&gt; dict[str, Any] | Any</code></td>
<td>Convert OpenAI message model objects without stringifying them.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/engine/chat_template_safety.py#L32-L46">#L32-L46</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.engine.chat_template_safety.normalize_messages_for_chat_template function vllm_mlx.engine.chat_template_safety.normalize_messages_for_chat_template(messages: list[any]) -&gt; list[dict] return a json-safe copy of messages for chat-template rendering.">
<td><a href="../api/vllm_mlx/engine/chat_template_safety/#contract-vllm_mlx.engine.chat_template_safety.normalize_messages_for_chat_template"><code>vllm_mlx.engine.chat_template_safety.normalize_messages_for_chat_template</code></a></td>
<td>function</td>
<td><code>vllm_mlx.engine.chat_template_safety.normalize_messages_for_chat_template(messages: list[Any]) -&gt; list[dict]</code></td>
<td>Return a JSON-safe copy of messages for chat-template rendering.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/engine/chat_template_safety.py#L49-L90">#L49-L90</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.engine.simple._bind_worker_generation_streams function vllm_mlx.engine.simple._bind_worker_generation_streams() -&gt; none rebind mlx generation streams inside the current worker thread.">
<td><a href="../api/vllm_mlx/engine/simple/#contract-vllm_mlx.engine.simple._bind_worker_generation_streams"><code>vllm_mlx.engine.simple._bind_worker_generation_streams</code></a></td>
<td>function</td>
<td><code>vllm_mlx.engine.simple._bind_worker_generation_streams() -&gt; None</code></td>
<td>Rebind mlx generation streams inside the current worker thread.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/engine/simple.py#L48-L50">#L48-L50</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.engine.simple._processors_can_retire function vllm_mlx.engine.simple._processors_can_retire(processors: list[any] | none) -&gt; bool true when any processor advertises a retire-to-content transition.">
<td><a href="../api/vllm_mlx/engine/simple/#contract-vllm_mlx.engine.simple._processors_can_retire"><code>vllm_mlx.engine.simple._processors_can_retire</code></a></td>
<td>function</td>
<td><code>vllm_mlx.engine.simple._processors_can_retire(processors: list[Any] | None) -&gt; bool</code></td>
<td>True when any processor advertises a retire-to-content transition.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/engine/simple.py#L100-L106">#L100-L106</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.engine.simple._processors_retired function vllm_mlx.engine.simple._processors_retired(processors: list[any] | none) -&gt; bool true when any retire-capable processor has entered its retired state.">
<td><a href="../api/vllm_mlx/engine/simple/#contract-vllm_mlx.engine.simple._processors_retired"><code>vllm_mlx.engine.simple._processors_retired</code></a></td>
<td>function</td>
<td><code>vllm_mlx.engine.simple._processors_retired(processors: list[Any] | None) -&gt; bool</code></td>
<td>True when any retire-capable processor has entered its retired state.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/engine/simple.py#L109-L115">#L109-L115</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.engine.simple._sample_with_processors function vllm_mlx.engine.simple._sample_with_processors(tokens: mx.array | none, logits: mx.array, sampler: any, logits_processors: list[any] | none) -&gt; tuple[mx.array, mx.array] sample a token while honoring any active logits processors.">
<td><a href="../api/vllm_mlx/engine/simple/#contract-vllm_mlx.engine.simple._sample_with_processors"><code>vllm_mlx.engine.simple._sample_with_processors</code></a></td>
<td>function</td>
<td><code>vllm_mlx.engine.simple._sample_with_processors(tokens: mx.array | None, logits: mx.array, sampler: Any, logits_processors: list[Any] | None) -&gt; tuple[mx.array, mx.array]</code></td>
<td>Sample a token while honoring any active logits processors.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/engine/simple.py#L80-L97">#L80-L97</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.engine.simple._seed_logits_processors function vllm_mlx.engine.simple._seed_logits_processors(seed_tokens: mx.array | none, processors: list[any] | none) -&gt; list[any] | none wrap logits processors so continuation decode sees the full prompt.">
<td><a href="../api/vllm_mlx/engine/simple/#contract-vllm_mlx.engine.simple._seed_logits_processors"><code>vllm_mlx.engine.simple._seed_logits_processors</code></a></td>
<td>function</td>
<td><code>vllm_mlx.engine.simple._seed_logits_processors(seed_tokens: mx.array | None, processors: list[Any] | None) -&gt; list[Any] | None</code></td>
<td>Wrap logits processors so continuation decode sees the full prompt.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/engine/simple.py#L53-L77">#L53-L77</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="nested function" data-symbol-search="vllm_mlx.engine.simple._seed_logits_processors._wrap nested function vllm_mlx.engine.simple._seed_logits_processors._wrap(processor) -&gt; not annotated nested function `_seed_logits_processors._wrap` returns `_seeded`.">
<td><a href="../api/vllm_mlx/engine/simple/#contract-vllm_mlx.engine.simple._seed_logits_processors._wrap"><code>vllm_mlx.engine.simple._seed_logits_processors._wrap</code></a></td>
<td>nested function</td>
<td><code>vllm_mlx.engine.simple._seed_logits_processors._wrap(processor) -&gt; not annotated</code></td>
<td>Nested Function `_seed_logits_processors._wrap` returns `_seeded`.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/engine/simple.py#L63-L75">#L63-L75</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="nested function" data-symbol-search="vllm_mlx.engine.simple._seed_logits_processors._wrap._seeded nested function vllm_mlx.engine.simple._seed_logits_processors._wrap._seeded(tokens, logits) -&gt; not annotated nested function `_seed_logits_processors._wrap._seeded` calls `isinstance`, `mx.array`, `mx.concatenate`, `processor`; returns `processor(merged, logits)`.">
<td><a href="../api/vllm_mlx/engine/simple/#contract-vllm_mlx.engine.simple._seed_logits_processors._wrap._seeded"><code>vllm_mlx.engine.simple._seed_logits_processors._wrap._seeded</code></a></td>
<td>nested function</td>
<td><code>vllm_mlx.engine.simple._seed_logits_processors._wrap._seeded(tokens, logits) -&gt; not annotated</code></td>
<td>Nested Function `_seed_logits_processors._wrap._seeded` calls `isinstance`, `mx.array`, `mx.concatenate`, `processor`; returns `processor(merged, logits)`.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/engine/simple.py#L64-L73">#L64-L73</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="class" data-symbol-search="vllm_mlx.engine.simple._specprefillcancelled class vllm_mlx.engine.simple._specprefillcancelled() cooperative cancellation sentinel for blocking specprefill workers.">
<td><a href="../api/vllm_mlx/engine/simple/#contract-vllm_mlx.engine.simple._SpecPrefillCancelled"><code>vllm_mlx.engine.simple._SpecPrefillCancelled</code></a></td>
<td>class</td>
<td><code>vllm_mlx.engine.simple._SpecPrefillCancelled()</code></td>
<td>Cooperative cancellation sentinel for blocking SpecPrefill workers.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/engine/simple.py#L118-L119">#L118-L119</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="class" data-symbol-search="vllm_mlx.engine.simple.simpleengine class vllm_mlx.engine.simple.simpleengine(model_name: str, trust_remote_code: bool = false, enable_cache: bool = true, force_mllm: bool = false, mtp: bool = false, mtp_num_draft_tokens: int = 1, prefill_step_size: int = 2048, specprefill_enabled: bool = false, specprefill_threshold: int = 8192, specprefill_keep_pct: float = 0.3, specprefill_backbone_pct: float = 0.0, specprefill_draft_model: str | none = none, max_kv_size: int = 0, mllm_draft_model: str | none = none, mllm_draft_kind: str | none = none, mllm_draft_block_size: int | none = none) simple engine for direct model calls.">
<td><a href="../api/vllm_mlx/engine/simple/#contract-vllm_mlx.engine.simple.SimpleEngine"><code>vllm_mlx.engine.simple.SimpleEngine</code></a></td>
<td>class</td>
<td><code>vllm_mlx.engine.simple.SimpleEngine(model_name: str, trust_remote_code: bool = False, enable_cache: bool = True, force_mllm: bool = False, mtp: bool = False, mtp_num_draft_tokens: int = 1, prefill_step_size: int = 2048, specprefill_enabled: bool = False, specprefill_threshold: int = 8192, specprefill_keep_pct: float = 0.3, specprefill_backbone_pct: float = 0.0, specprefill_draft_model: str | None = None, max_kv_size: int = 0, mllm_draft_model: str | None = None, mllm_draft_kind: str | None = None, mllm_draft_block_size: int | None = None)</code></td>
<td>Simple engine for direct model calls.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/engine/simple.py#L122-L2912">#L122-L2912</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.engine.simple.simpleengine.__init__ method vllm_mlx.engine.simple.simpleengine.__init__(model_name: str, trust_remote_code: bool = false, enable_cache: bool = true, force_mllm: bool = false, mtp: bool = false, mtp_num_draft_tokens: int = 1, prefill_step_size: int = 2048, specprefill_enabled: bool = false, specprefill_threshold: int = 8192, specprefill_keep_pct: float = 0.3, specprefill_backbone_pct: float = 0.0, specprefill_draft_model: str | none = none, max_kv_size: int = 0, mllm_draft_model: str | none = none, mllm_draft_kind: str | none = none, mllm_draft_block_size: int | none = none) -&gt; not annotated initialize the simple engine.">
<td><a href="../api/vllm_mlx/engine/simple/#contract-vllm_mlx.engine.simple.SimpleEngine.__init__"><code>vllm_mlx.engine.simple.SimpleEngine.__init__</code></a></td>
<td>method</td>
<td><code>vllm_mlx.engine.simple.SimpleEngine.__init__(model_name: str, trust_remote_code: bool = False, enable_cache: bool = True, force_mllm: bool = False, mtp: bool = False, mtp_num_draft_tokens: int = 1, prefill_step_size: int = 2048, specprefill_enabled: bool = False, specprefill_threshold: int = 8192, specprefill_keep_pct: float = 0.3, specprefill_backbone_pct: float = 0.0, specprefill_draft_model: str | None = None, max_kv_size: int = 0, mllm_draft_model: str | None = None, mllm_draft_kind: str | None = None, mllm_draft_block_size: int | None = None) -&gt; not annotated</code></td>
<td>Initialize the simple engine.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/engine/simple.py#L130-L257">#L130-L257</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.engine.simple.simpleengine._acquire_generation_slot method async vllm_mlx.engine.simple.simpleengine._acquire_generation_slot(request_id: str) -&gt; not annotated admission control for simpleengine&#x27;s serialized mlx route.">
<td><a href="../api/vllm_mlx/engine/simple/#contract-vllm_mlx.engine.simple.SimpleEngine._acquire_generation_slot"><code>vllm_mlx.engine.simple.SimpleEngine._acquire_generation_slot</code></a></td>
<td>method</td>
<td><code>async vllm_mlx.engine.simple.SimpleEngine._acquire_generation_slot(request_id: str) -&gt; not annotated</code></td>
<td>Admission control for SimpleEngine&#x27;s serialized MLX route.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/engine/simple.py#L374-L398">#L374-L398</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.engine.simple.simpleengine._cache_class_is_system_snapshot_safe method vllm_mlx.engine.simple.simpleengine._cache_class_is_system_snapshot_safe(cache_entry: any) -&gt; bool method `simpleengine._cache_class_is_system_snapshot_safe` calls `isinstance`, `type`; has 2 explicit return paths.">
<td><a href="../api/vllm_mlx/engine/simple/#contract-vllm_mlx.engine.simple.SimpleEngine._cache_class_is_system_snapshot_safe"><code>vllm_mlx.engine.simple.SimpleEngine._cache_class_is_system_snapshot_safe</code></a></td>
<td>method</td>
<td><code>vllm_mlx.engine.simple.SimpleEngine._cache_class_is_system_snapshot_safe(cache_entry: Any) -&gt; bool</code></td>
<td>Method `SimpleEngine._cache_class_is_system_snapshot_safe` calls `isinstance`, `type`; has 2 explicit return paths.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/engine/simple.py#L296-L303">#L296-L303</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.engine.simple.simpleengine._clone_cache_state method vllm_mlx.engine.simple.simpleengine._clone_cache_state(value: any) -&gt; any copy cache state containers without duplicating immutable mlx arrays.">
<td><a href="../api/vllm_mlx/engine/simple/#contract-vllm_mlx.engine.simple.SimpleEngine._clone_cache_state"><code>vllm_mlx.engine.simple.SimpleEngine._clone_cache_state</code></a></td>
<td>method</td>
<td><code>vllm_mlx.engine.simple.SimpleEngine._clone_cache_state(value: Any) -&gt; Any</code></td>
<td>Copy cache state containers without duplicating immutable MLX arrays.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/engine/simple.py#L260-L266">#L260-L266</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.engine.simple.simpleengine._eval_cache_snapshot method vllm_mlx.engine.simple.simpleengine._eval_cache_snapshot(snapshot: list[any]) -&gt; none method `simpleengine._eval_cache_snapshot` calls `list`, `cls._iter_cache_state_arrays`, `mx.eval`.">
<td><a href="../api/vllm_mlx/engine/simple/#contract-vllm_mlx.engine.simple.SimpleEngine._eval_cache_snapshot"><code>vllm_mlx.engine.simple.SimpleEngine._eval_cache_snapshot</code></a></td>
<td>method</td>
<td><code>vllm_mlx.engine.simple.SimpleEngine._eval_cache_snapshot(snapshot: list[Any]) -&gt; None</code></td>
<td>Method `SimpleEngine._eval_cache_snapshot` calls `list`, `cls._iter_cache_state_arrays`, `mx.eval`.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/engine/simple.py#L290-L293">#L290-L293</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.engine.simple.simpleengine._generation_lock_holder_summary method vllm_mlx.engine.simple.simpleengine._generation_lock_holder_summary() -&gt; str method `simpleengine._generation_lock_holder_summary` calls `time.time`, `self._active_requests.items`, `info.get`, `round`; has 2 explicit return paths.">
<td><a href="../api/vllm_mlx/engine/simple/#contract-vllm_mlx.engine.simple.SimpleEngine._generation_lock_holder_summary"><code>vllm_mlx.engine.simple.SimpleEngine._generation_lock_holder_summary</code></a></td>
<td>method</td>
<td><code>vllm_mlx.engine.simple.SimpleEngine._generation_lock_holder_summary() -&gt; str</code></td>
<td>Method `SimpleEngine._generation_lock_holder_summary` calls `time.time`, `self._active_requests.items`, `info.get`, `round`; has 2 explicit return paths.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/engine/simple.py#L352-L371">#L352-L371</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.engine.simple.simpleengine._iter_cache_state_arrays method vllm_mlx.engine.simple.simpleengine._iter_cache_state_arrays(value: any) -&gt; not annotated method `simpleengine._iter_cache_state_arrays` calls `isinstance`, `simpleengine._iter_cache_state_arrays`, `hasattr`; yields values incrementally.">
<td><a href="../api/vllm_mlx/engine/simple/#contract-vllm_mlx.engine.simple.SimpleEngine._iter_cache_state_arrays"><code>vllm_mlx.engine.simple.SimpleEngine._iter_cache_state_arrays</code></a></td>
<td>method</td>
<td><code>vllm_mlx.engine.simple.SimpleEngine._iter_cache_state_arrays(value: Any) -&gt; not annotated</code></td>
<td>Method `SimpleEngine._iter_cache_state_arrays` calls `isinstance`, `SimpleEngine._iter_cache_state_arrays`, `hasattr`; yields values incrementally.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/engine/simple.py#L282-L287">#L282-L287</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.engine.simple.simpleengine._probe_system_kv_cache_support method vllm_mlx.engine.simple.simpleengine._probe_system_kv_cache_support(model: any, route: str) -&gt; bool method `simpleengine._probe_system_kv_cache_support` calls `make_prompt_cache`, `bool`, `all`, `cls._cache_class_is_system_snapshot_safe`; has 2 explicit return paths.">
<td><a href="../api/vllm_mlx/engine/simple/#contract-vllm_mlx.engine.simple.SimpleEngine._probe_system_kv_cache_support"><code>vllm_mlx.engine.simple.SimpleEngine._probe_system_kv_cache_support</code></a></td>
<td>method</td>
<td><code>vllm_mlx.engine.simple.SimpleEngine._probe_system_kv_cache_support(model: Any, route: str) -&gt; bool</code></td>
<td>Method `SimpleEngine._probe_system_kv_cache_support` calls `make_prompt_cache`, `bool`, `all`, `cls._cache_class_is_system_snapshot_safe`; has 2 explicit return paths.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/engine/simple.py#L306-L331">#L306-L331</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.engine.simple.simpleengine._restore_prompt_cache method vllm_mlx.engine.simple.simpleengine._restore_prompt_cache(prompt_cache: list[any], snapshot: list[any]) -&gt; none restore cache states without letting decode mutate the saved snapshot.">
<td><a href="../api/vllm_mlx/engine/simple/#contract-vllm_mlx.engine.simple.SimpleEngine._restore_prompt_cache"><code>vllm_mlx.engine.simple.SimpleEngine._restore_prompt_cache</code></a></td>
<td>method</td>
<td><code>vllm_mlx.engine.simple.SimpleEngine._restore_prompt_cache(prompt_cache: list[Any], snapshot: list[Any]) -&gt; None</code></td>
<td>Restore cache states without letting decode mutate the saved snapshot.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/engine/simple.py#L274-L279">#L274-L279</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.engine.simple.simpleengine._run_blocking_serialized method async vllm_mlx.engine.simple.simpleengine._run_blocking_serialized(func, /, *args, request_id: str | none = none, on_cancel = none, **kwargs) -&gt; not annotated run a blocking mlx operation under the generation lock.">
<td><a href="../api/vllm_mlx/engine/simple/#contract-vllm_mlx.engine.simple.SimpleEngine._run_blocking_serialized"><code>vllm_mlx.engine.simple.SimpleEngine._run_blocking_serialized</code></a></td>
<td>method</td>
<td><code>async vllm_mlx.engine.simple.SimpleEngine._run_blocking_serialized(func, /, *args, request_id: str | None = None, on_cancel = None, **kwargs) -&gt; not annotated</code></td>
<td>Run a blocking MLX operation under the generation lock.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/engine/simple.py#L616-L666">#L616-L666</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="nested function" data-symbol-search="vllm_mlx.engine.simple.simpleengine._run_blocking_serialized.run_bound nested function vllm_mlx.engine.simple.simpleengine._run_blocking_serialized.run_bound() -&gt; not annotated nested function `simpleengine._run_blocking_serialized.run_bound` calls `_bind_worker_generation_streams`, `func`; returns `func(*args, **kwargs)`.">
<td><a href="../api/vllm_mlx/engine/simple/#contract-vllm_mlx.engine.simple.SimpleEngine._run_blocking_serialized.run_bound"><code>vllm_mlx.engine.simple.SimpleEngine._run_blocking_serialized.run_bound</code></a></td>
<td>nested function</td>
<td><code>vllm_mlx.engine.simple.SimpleEngine._run_blocking_serialized.run_bound() -&gt; not annotated</code></td>
<td>Nested Function `SimpleEngine._run_blocking_serialized.run_bound` calls `_bind_worker_generation_streams`, `func`; returns `func(*args, **kwargs)`.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/engine/simple.py#L644-L646">#L644-L646</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.engine.simple.simpleengine._should_route_text_through_text_model method vllm_mlx.engine.simple.simpleengine._should_route_text_through_text_model(*, mllm_draft_requested: bool = false) -&gt; bool return whether text-only mllm requests may use mlx_lm textmodel.">
<td><a href="../api/vllm_mlx/engine/simple/#contract-vllm_mlx.engine.simple.SimpleEngine._should_route_text_through_text_model"><code>vllm_mlx.engine.simple.SimpleEngine._should_route_text_through_text_model</code></a></td>
<td>method</td>
<td><code>vllm_mlx.engine.simple.SimpleEngine._should_route_text_through_text_model(*, mllm_draft_requested: bool = False) -&gt; bool</code></td>
<td>Return whether text-only MLLM requests may use mlx_lm TextModel.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/engine/simple.py#L610-L614">#L610-L614</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.engine.simple.simpleengine._snapshot_prompt_cache method vllm_mlx.engine.simple.simpleengine._snapshot_prompt_cache(prompt_cache: list[any]) -&gt; list[any] capture cache states without aliasing mutable state containers.">
<td><a href="../api/vllm_mlx/engine/simple/#contract-vllm_mlx.engine.simple.SimpleEngine._snapshot_prompt_cache"><code>vllm_mlx.engine.simple.SimpleEngine._snapshot_prompt_cache</code></a></td>
<td>method</td>
<td><code>vllm_mlx.engine.simple.SimpleEngine._snapshot_prompt_cache(prompt_cache: list[Any]) -&gt; list[Any]</code></td>
<td>Capture cache states without aliasing mutable state containers.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/engine/simple.py#L269-L271">#L269-L271</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.engine.simple.simpleengine._stream_chat_impl method async vllm_mlx.engine.simple.simpleengine._stream_chat_impl(messages: list[dict[str, any]], max_tokens: int = 256, temperature: float = 0.7, top_p: float = 0.9, tools: list[dict] | none = none, images: list[str] | none = none, videos: list[str] | none = none, **kwargs) -&gt; asynciterator[generationoutput] stream chat completion token by token.">
<td><a href="../api/vllm_mlx/engine/simple/#contract-vllm_mlx.engine.simple.SimpleEngine._stream_chat_impl"><code>vllm_mlx.engine.simple.SimpleEngine._stream_chat_impl</code></a></td>
<td>method</td>
<td><code>async vllm_mlx.engine.simple.SimpleEngine._stream_chat_impl(messages: list[dict[str, Any]], max_tokens: int = 256, temperature: float = 0.7, top_p: float = 0.9, tools: list[dict] | None = None, images: list[str] | None = None, videos: list[str] | None = None, **kwargs) -&gt; AsyncIterator[GenerationOutput]</code></td>
<td>Stream chat completion token by token.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/engine/simple.py#L1173-L1794">#L1173-L1794</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="nested function" data-symbol-search="vllm_mlx.engine.simple.simpleengine._stream_chat_impl._emit_done nested function vllm_mlx.engine.simple.simpleengine._stream_chat_impl._emit_done() -&gt; none nested function `simpleengine._stream_chat_impl._emit_done` calls `loop.call_soon_threadsafe`.">
<td><a href="../api/vllm_mlx/engine/simple/#contract-vllm_mlx.engine.simple.SimpleEngine._stream_chat_impl._emit_done"><code>vllm_mlx.engine.simple.SimpleEngine._stream_chat_impl._emit_done</code></a></td>
<td>nested function</td>
<td><code>vllm_mlx.engine.simple.SimpleEngine._stream_chat_impl._emit_done() -&gt; None</code></td>
<td>Nested Function `SimpleEngine._stream_chat_impl._emit_done` calls `loop.call_soon_threadsafe`.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/engine/simple.py#L1614-L1615">#L1614-L1615</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="nested function" data-symbol-search="vllm_mlx.engine.simple.simpleengine._stream_chat_impl._emit_error nested function vllm_mlx.engine.simple.simpleengine._stream_chat_impl._emit_error(exc: baseexception) -&gt; none nested function `simpleengine._stream_chat_impl._emit_error` calls `loop.call_soon_threadsafe`.">
<td><a href="../api/vllm_mlx/engine/simple/#contract-vllm_mlx.engine.simple.SimpleEngine._stream_chat_impl._emit_error"><code>vllm_mlx.engine.simple.SimpleEngine._stream_chat_impl._emit_error</code></a></td>
<td>nested function</td>
<td><code>vllm_mlx.engine.simple.SimpleEngine._stream_chat_impl._emit_error(exc: BaseException) -&gt; None</code></td>
<td>Nested Function `SimpleEngine._stream_chat_impl._emit_error` calls `loop.call_soon_threadsafe`.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/engine/simple.py#L1617-L1618">#L1617-L1618</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="nested function" data-symbol-search="vllm_mlx.engine.simple.simpleengine._stream_chat_impl._emit_response nested function vllm_mlx.engine.simple.simpleengine._stream_chat_impl._emit_response(resp: any) -&gt; none nested function `simpleengine._stream_chat_impl._emit_response` calls `abort_event.is_set`, `loop.call_soon_threadsafe`; returns `none`.">
<td><a href="../api/vllm_mlx/engine/simple/#contract-vllm_mlx.engine.simple.SimpleEngine._stream_chat_impl._emit_response"><code>vllm_mlx.engine.simple.SimpleEngine._stream_chat_impl._emit_response</code></a></td>
<td>nested function</td>
<td><code>vllm_mlx.engine.simple.SimpleEngine._stream_chat_impl._emit_response(resp: Any) -&gt; None</code></td>
<td>Nested Function `SimpleEngine._stream_chat_impl._emit_response` calls `abort_event.is_set`, `loop.call_soon_threadsafe`; returns `None`.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/engine/simple.py#L1609-L1612">#L1609-L1612</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="nested function" data-symbol-search="vllm_mlx.engine.simple.simpleengine._stream_chat_impl._produce_responses nested function async vllm_mlx.engine.simple.simpleengine._stream_chat_impl._produce_responses() -&gt; none nested function `simpleengine._stream_chat_impl._produce_responses` calls `self._run_blocking_serialized`, `_emit_error`, `_emit_done`; awaits asynchronous work.">
<td><a href="../api/vllm_mlx/engine/simple/#contract-vllm_mlx.engine.simple.SimpleEngine._stream_chat_impl._produce_responses"><code>vllm_mlx.engine.simple.SimpleEngine._stream_chat_impl._produce_responses</code></a></td>
<td>nested function</td>
<td><code>async vllm_mlx.engine.simple.SimpleEngine._stream_chat_impl._produce_responses() -&gt; None</code></td>
<td>Nested Function `SimpleEngine._stream_chat_impl._produce_responses` calls `self._run_blocking_serialized`, `_emit_error`, `_emit_done`; awaits asynchronous work.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/engine/simple.py#L1707-L1718">#L1707-L1718</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="nested function" data-symbol-search="vllm_mlx.engine.simple.simpleengine._stream_chat_impl._run_with_cache nested function vllm_mlx.engine.simple.simpleengine._stream_chat_impl._run_with_cache() -&gt; none nested function `simpleengine._stream_chat_impl._run_with_cache` calls `make_sampler`, `make_prompt_cache`, `self._restore_prompt_cache`, `self._system_kv_cache.move_to_end`.">
<td><a href="../api/vllm_mlx/engine/simple/#contract-vllm_mlx.engine.simple.SimpleEngine._stream_chat_impl._run_with_cache"><code>vllm_mlx.engine.simple.SimpleEngine._stream_chat_impl._run_with_cache</code></a></td>
<td>nested function</td>
<td><code>vllm_mlx.engine.simple.SimpleEngine._stream_chat_impl._run_with_cache() -&gt; None</code></td>
<td>Nested Function `SimpleEngine._stream_chat_impl._run_with_cache` calls `make_sampler`, `make_prompt_cache`, `self._restore_prompt_cache`, `self._system_kv_cache.move_to_end`.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/engine/simple.py#L1620-L1705">#L1620-L1705</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="nested function" data-symbol-search="vllm_mlx.engine.simple.simpleengine._stream_chat_impl._to_msg_dict nested function vllm_mlx.engine.simple.simpleengine._stream_chat_impl._to_msg_dict(m: any) -&gt; dict[str, any] nested function `simpleengine._stream_chat_impl._to_msg_dict` calls `isinstance`, `hasattr`, `m.model_dump`, `m.dict`; has 4 explicit return paths.">
<td><a href="../api/vllm_mlx/engine/simple/#contract-vllm_mlx.engine.simple.SimpleEngine._stream_chat_impl._to_msg_dict"><code>vllm_mlx.engine.simple.SimpleEngine._stream_chat_impl._to_msg_dict</code></a></td>
<td>nested function</td>
<td><code>vllm_mlx.engine.simple.SimpleEngine._stream_chat_impl._to_msg_dict(m: Any) -&gt; dict[str, Any]</code></td>
<td>Nested Function `SimpleEngine._stream_chat_impl._to_msg_dict` calls `isinstance`, `hasattr`, `m.model_dump`, `m.dict`; has 4 explicit return paths.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/engine/simple.py#L1499-L1509">#L1499-L1509</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="nested function" data-symbol-search="vllm_mlx.engine.simple.simpleengine._stream_chat_impl._with_user nested function vllm_mlx.engine.simple.simpleengine._stream_chat_impl._with_user(user_content: str) -&gt; list[dict[str, any]] nested function `simpleengine._stream_chat_impl._with_user` calls `dict`, `msgs[-1].get`; returns `msgs`.">
<td><a href="../api/vllm_mlx/engine/simple/#contract-vllm_mlx.engine.simple.SimpleEngine._stream_chat_impl._with_user"><code>vllm_mlx.engine.simple.SimpleEngine._stream_chat_impl._with_user</code></a></td>
<td>nested function</td>
<td><code>vllm_mlx.engine.simple.SimpleEngine._stream_chat_impl._with_user(user_content: str) -&gt; list[dict[str, Any]]</code></td>
<td>Nested Function `SimpleEngine._stream_chat_impl._with_user` calls `dict`, `msgs[-1].get`; returns `msgs`.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/engine/simple.py#L1519-L1525">#L1519-L1525</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="nested function" data-symbol-search="vllm_mlx.engine.simple.simpleengine._stream_chat_impl.mllm_call_kwargs nested function vllm_mlx.engine.simple.simpleengine._stream_chat_impl.mllm_call_kwargs() -&gt; dict nested function `simpleengine._stream_chat_impl.mllm_call_kwargs` calls `dict`; returns `local_kwargs`.">
<td><a href="../api/vllm_mlx/engine/simple/#contract-vllm_mlx.engine.simple.SimpleEngine._stream_chat_impl.mllm_call_kwargs"><code>vllm_mlx.engine.simple.SimpleEngine._stream_chat_impl.mllm_call_kwargs</code></a></td>
<td>nested function</td>
<td><code>vllm_mlx.engine.simple.SimpleEngine._stream_chat_impl.mllm_call_kwargs() -&gt; dict</code></td>
<td>Nested Function `SimpleEngine._stream_chat_impl.mllm_call_kwargs` calls `dict`; returns `local_kwargs`.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/engine/simple.py#L1236-L1242">#L1236-L1242</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="nested function" data-symbol-search="vllm_mlx.engine.simple.simpleengine._stream_chat_impl.run_native_video nested function vllm_mlx.engine.simple.simpleengine._stream_chat_impl.run_native_video() -&gt; not annotated nested function `simpleengine._stream_chat_impl.run_native_video` calls `mllm_call_kwargs`, `list`, `self._model.stream_chat`; returns `list(self._model.stream_chat(messages=messages, max_tokens=max_tokens, temperature=temperature, tools=template_tools, *…`.">
<td><a href="../api/vllm_mlx/engine/simple/#contract-vllm_mlx.engine.simple.SimpleEngine._stream_chat_impl.run_native_video"><code>vllm_mlx.engine.simple.SimpleEngine._stream_chat_impl.run_native_video</code></a></td>
<td>nested function</td>
<td><code>vllm_mlx.engine.simple.SimpleEngine._stream_chat_impl.run_native_video() -&gt; not annotated</code></td>
<td>Nested Function `SimpleEngine._stream_chat_impl.run_native_video` calls `mllm_call_kwargs`, `list`, `self._model.stream_chat`; returns `list(self._model.stream_chat(messages=messages, max_tokens=max_tokens, temperature=temperature, tools=template_tools, *…`.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/engine/simple.py#L1299-L1309">#L1299-L1309</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.engine.simple.simpleengine._stream_generate_impl method async vllm_mlx.engine.simple.simpleengine._stream_generate_impl(prompt: str, max_tokens: int = 256, temperature: float = 0.7, top_p: float = 0.9, stop: list[str] | none = none, **kwargs) -&gt; asynciterator[generationoutput] stream generation token by token.">
<td><a href="../api/vllm_mlx/engine/simple/#contract-vllm_mlx.engine.simple.SimpleEngine._stream_generate_impl"><code>vllm_mlx.engine.simple.SimpleEngine._stream_generate_impl</code></a></td>
<td>method</td>
<td><code>async vllm_mlx.engine.simple.SimpleEngine._stream_generate_impl(prompt: str, max_tokens: int = 256, temperature: float = 0.7, top_p: float = 0.9, stop: list[str] | None = None, **kwargs) -&gt; AsyncIterator[GenerationOutput]</code></td>
<td>Stream generation token by token.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/engine/simple.py#L842-L1012">#L842-L1012</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.engine.simple.simpleengine._stream_generate_specprefill method async vllm_mlx.engine.simple.simpleengine._stream_generate_specprefill(prompt: str, tokens: list[int], max_tokens: int, temperature: float, top_p: float, stop: list[str] | none = none, specprefill_keep_pct: float | none = none, specprefill_backbone_pct: float | none = none, **kwargs) -&gt; asynciterator[generationoutput] specprefill path for non-mtp models (nemotron, gpt-oss, etc).">
<td><a href="../api/vllm_mlx/engine/simple/#contract-vllm_mlx.engine.simple.SimpleEngine._stream_generate_specprefill"><code>vllm_mlx.engine.simple.SimpleEngine._stream_generate_specprefill</code></a></td>
<td>method</td>
<td><code>async vllm_mlx.engine.simple.SimpleEngine._stream_generate_specprefill(prompt: str, tokens: list[int], max_tokens: int, temperature: float, top_p: float, stop: list[str] | None = None, specprefill_keep_pct: float | None = None, specprefill_backbone_pct: float | None = None, **kwargs) -&gt; AsyncIterator[GenerationOutput]</code></td>
<td>SpecPrefill path for non-MTP models (Nemotron, GPT-OSS, etc).</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/engine/simple.py#L1796-L2000">#L1796-L2000</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="nested function" data-symbol-search="vllm_mlx.engine.simple.simpleengine._stream_generate_specprefill._cancel_check nested function vllm_mlx.engine.simple.simpleengine._stream_generate_specprefill._cancel_check() -&gt; none nested function `simpleengine._stream_generate_specprefill._cancel_check` calls `cancel_requested.is_set`, `_specprefillcancelled`; can raise `_specprefillcancelled`.">
<td><a href="../api/vllm_mlx/engine/simple/#contract-vllm_mlx.engine.simple.SimpleEngine._stream_generate_specprefill._cancel_check"><code>vllm_mlx.engine.simple.SimpleEngine._stream_generate_specprefill._cancel_check</code></a></td>
<td>nested function</td>
<td><code>vllm_mlx.engine.simple.SimpleEngine._stream_generate_specprefill._cancel_check() -&gt; None</code></td>
<td>Nested Function `SimpleEngine._stream_generate_specprefill._cancel_check` calls `cancel_requested.is_set`, `_SpecPrefillCancelled`; can raise `_SpecPrefillCancelled`.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/engine/simple.py#L1824-L1826">#L1824-L1826</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="nested function" data-symbol-search="vllm_mlx.engine.simple.simpleengine._stream_generate_specprefill._request_cancel nested function vllm_mlx.engine.simple.simpleengine._stream_generate_specprefill._request_cancel() -&gt; none nested function `simpleengine._stream_generate_specprefill._request_cancel` calls `cancel_requested.set`.">
<td><a href="../api/vllm_mlx/engine/simple/#contract-vllm_mlx.engine.simple.SimpleEngine._stream_generate_specprefill._request_cancel"><code>vllm_mlx.engine.simple.SimpleEngine._stream_generate_specprefill._request_cancel</code></a></td>
<td>nested function</td>
<td><code>vllm_mlx.engine.simple.SimpleEngine._stream_generate_specprefill._request_cancel() -&gt; None</code></td>
<td>Nested Function `SimpleEngine._stream_generate_specprefill._request_cancel` calls `cancel_requested.set`.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/engine/simple.py#L1821-L1822">#L1821-L1822</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="nested function" data-symbol-search="vllm_mlx.engine.simple.simpleengine._stream_generate_specprefill._run_all nested function vllm_mlx.engine.simple.simpleengine._stream_generate_specprefill._run_all() -&gt; not annotated nested function `simpleengine._stream_generate_specprefill._run_all` calls `_run_specprefill`, `logger.error`, `_run_normal`; has 2 explicit return paths.">
<td><a href="../api/vllm_mlx/engine/simple/#contract-vllm_mlx.engine.simple.SimpleEngine._stream_generate_specprefill._run_all"><code>vllm_mlx.engine.simple.SimpleEngine._stream_generate_specprefill._run_all</code></a></td>
<td>nested function</td>
<td><code>vllm_mlx.engine.simple.SimpleEngine._stream_generate_specprefill._run_all() -&gt; not annotated</code></td>
<td>Nested Function `SimpleEngine._stream_generate_specprefill._run_all` calls `_run_specprefill`, `logger.error`, `_run_normal`; has 2 explicit return paths.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/engine/simple.py#L1828-L1835">#L1828-L1835</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="nested function" data-symbol-search="vllm_mlx.engine.simple.simpleengine._stream_generate_specprefill._run_normal nested function vllm_mlx.engine.simple.simpleengine._stream_generate_specprefill._run_normal() -&gt; not annotated fallback: normal generation without specprefill.">
<td><a href="../api/vllm_mlx/engine/simple/#contract-vllm_mlx.engine.simple.SimpleEngine._stream_generate_specprefill._run_normal"><code>vllm_mlx.engine.simple.SimpleEngine._stream_generate_specprefill._run_normal</code></a></td>
<td>nested function</td>
<td><code>vllm_mlx.engine.simple.SimpleEngine._stream_generate_specprefill._run_normal() -&gt; not annotated</code></td>
<td>Fallback: normal generation without specprefill.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/engine/simple.py#L1941-L1962">#L1941-L1962</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="nested function" data-symbol-search="vllm_mlx.engine.simple.simpleengine._stream_generate_specprefill._run_specprefill nested function vllm_mlx.engine.simple.simpleengine._stream_generate_specprefill._run_specprefill() -&gt; not annotated score tokens, sparse prefill, generate autoregressively.">
<td><a href="../api/vllm_mlx/engine/simple/#contract-vllm_mlx.engine.simple.SimpleEngine._stream_generate_specprefill._run_specprefill"><code>vllm_mlx.engine.simple.SimpleEngine._stream_generate_specprefill._run_specprefill</code></a></td>
<td>nested function</td>
<td><code>vllm_mlx.engine.simple.SimpleEngine._stream_generate_specprefill._run_specprefill() -&gt; not annotated</code></td>
<td>Score tokens, sparse prefill, generate autoregressively.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/engine/simple.py#L1837-L1939">#L1837-L1939</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.engine.simple.simpleengine._stream_generate_text method async vllm_mlx.engine.simple.simpleengine._stream_generate_text(messages: list[dict[str, any]], max_tokens: int, temperature: float, top_p: float, tools: list | none = none, **kwargs) -&gt; asynciterator[generationoutput] text-only generation via mlx_lm textmodel.">
<td><a href="../api/vllm_mlx/engine/simple/#contract-vllm_mlx.engine.simple.SimpleEngine._stream_generate_text"><code>vllm_mlx.engine.simple.SimpleEngine._stream_generate_text</code></a></td>
<td>method</td>
<td><code>async vllm_mlx.engine.simple.SimpleEngine._stream_generate_text(messages: list[dict[str, Any]], max_tokens: int, temperature: float, top_p: float, tools: list | None = None, **kwargs) -&gt; AsyncIterator[GenerationOutput]</code></td>
<td>Text-only generation via mlx_lm TextModel.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/engine/simple.py#L2002-L2734">#L2002-L2734</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="nested function" data-symbol-search="vllm_mlx.engine.simple.simpleengine._stream_generate_text._emit_done nested function vllm_mlx.engine.simple.simpleengine._stream_generate_text._emit_done() -&gt; none nested function `simpleengine._stream_generate_text._emit_done` calls `loop.call_soon_threadsafe`.">
<td><a href="../api/vllm_mlx/engine/simple/#contract-vllm_mlx.engine.simple.SimpleEngine._stream_generate_text._emit_done"><code>vllm_mlx.engine.simple.SimpleEngine._stream_generate_text._emit_done</code></a></td>
<td>nested function</td>
<td><code>vllm_mlx.engine.simple.SimpleEngine._stream_generate_text._emit_done() -&gt; None</code></td>
<td>Nested Function `SimpleEngine._stream_generate_text._emit_done` calls `loop.call_soon_threadsafe`.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/engine/simple.py#L2277-L2278">#L2277-L2278</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="nested function" data-symbol-search="vllm_mlx.engine.simple.simpleengine._stream_generate_text._emit_error nested function vllm_mlx.engine.simple.simpleengine._stream_generate_text._emit_error(exc: baseexception) -&gt; none nested function `simpleengine._stream_generate_text._emit_error` calls `loop.call_soon_threadsafe`.">
<td><a href="../api/vllm_mlx/engine/simple/#contract-vllm_mlx.engine.simple.SimpleEngine._stream_generate_text._emit_error"><code>vllm_mlx.engine.simple.SimpleEngine._stream_generate_text._emit_error</code></a></td>
<td>nested function</td>
<td><code>vllm_mlx.engine.simple.SimpleEngine._stream_generate_text._emit_error(exc: BaseException) -&gt; None</code></td>
<td>Nested Function `SimpleEngine._stream_generate_text._emit_error` calls `loop.call_soon_threadsafe`.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/engine/simple.py#L2280-L2281">#L2280-L2281</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="nested function" data-symbol-search="vllm_mlx.engine.simple.simpleengine._stream_generate_text._emit_response nested function vllm_mlx.engine.simple.simpleengine._stream_generate_text._emit_response(resp: any) -&gt; none nested function `simpleengine._stream_generate_text._emit_response` calls `abort_event.is_set`, `loop.call_soon_threadsafe`; returns `none`.">
<td><a href="../api/vllm_mlx/engine/simple/#contract-vllm_mlx.engine.simple.SimpleEngine._stream_generate_text._emit_response"><code>vllm_mlx.engine.simple.SimpleEngine._stream_generate_text._emit_response</code></a></td>
<td>nested function</td>
<td><code>vllm_mlx.engine.simple.SimpleEngine._stream_generate_text._emit_response(resp: Any) -&gt; None</code></td>
<td>Nested Function `SimpleEngine._stream_generate_text._emit_response` calls `abort_event.is_set`, `loop.call_soon_threadsafe`; returns `None`.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/engine/simple.py#L2272-L2275">#L2272-L2275</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="nested function" data-symbol-search="vllm_mlx.engine.simple.simpleengine._stream_generate_text._produce_responses nested function async vllm_mlx.engine.simple.simpleengine._stream_generate_text._produce_responses() -&gt; none nested function `simpleengine._stream_generate_text._produce_responses` calls `self._run_blocking_serialized`, `_emit_error`, `_emit_done`; awaits asynchronous work.">
<td><a href="../api/vllm_mlx/engine/simple/#contract-vllm_mlx.engine.simple.SimpleEngine._stream_generate_text._produce_responses"><code>vllm_mlx.engine.simple.SimpleEngine._stream_generate_text._produce_responses</code></a></td>
<td>nested function</td>
<td><code>async vllm_mlx.engine.simple.SimpleEngine._stream_generate_text._produce_responses() -&gt; None</code></td>
<td>Nested Function `SimpleEngine._stream_generate_text._produce_responses` calls `self._run_blocking_serialized`, `_emit_error`, `_emit_done`; awaits asynchronous work.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/engine/simple.py#L2666-L2677">#L2666-L2677</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="nested function" data-symbol-search="vllm_mlx.engine.simple.simpleengine._stream_generate_text._resume_after_processor_retirement nested function vllm_mlx.engine.simple.simpleengine._stream_generate_text._resume_after_processor_retirement(model, prompt_cache, prompt, remaining_tokens: int) -&gt; none nested function `simpleengine._stream_generate_text._resume_after_processor_retirement` calls `dict`, `hasattr`, `model.make_mtp_cache`, `mlx_stream_generate`.">
<td><a href="../api/vllm_mlx/engine/simple/#contract-vllm_mlx.engine.simple.SimpleEngine._stream_generate_text._resume_after_processor_retirement"><code>vllm_mlx.engine.simple.SimpleEngine._stream_generate_text._resume_after_processor_retirement</code></a></td>
<td>nested function</td>
<td><code>vllm_mlx.engine.simple.SimpleEngine._stream_generate_text._resume_after_processor_retirement(model, prompt_cache, prompt, remaining_tokens: int) -&gt; None</code></td>
<td>Nested Function `SimpleEngine._stream_generate_text._resume_after_processor_retirement` calls `dict`, `hasattr`, `model.make_mtp_cache`, `mlx_stream_generate`.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/engine/simple.py#L2293-L2320">#L2293-L2320</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="nested function" data-symbol-search="vllm_mlx.engine.simple.simpleengine._stream_generate_text._run_all nested function vllm_mlx.engine.simple.simpleengine._stream_generate_text._run_all() -&gt; not annotated nested function `simpleengine._stream_generate_text._run_all` calls `_processors_can_retire`, `hasattr`, `logger.info`, `make_prompt_cache`; returns `none`.">
<td><a href="../api/vllm_mlx/engine/simple/#contract-vllm_mlx.engine.simple.SimpleEngine._stream_generate_text._run_all"><code>vllm_mlx.engine.simple.SimpleEngine._stream_generate_text._run_all</code></a></td>
<td>nested function</td>
<td><code>vllm_mlx.engine.simple.SimpleEngine._stream_generate_text._run_all() -&gt; not annotated</code></td>
<td>Nested Function `SimpleEngine._stream_generate_text._run_all` calls `_processors_can_retire`, `hasattr`, `logger.info`, `make_prompt_cache`; returns `None`.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/engine/simple.py#L2323-L2485">#L2323-L2485</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="nested function" data-symbol-search="vllm_mlx.engine.simple.simpleengine._stream_generate_text._run_specprefill nested function vllm_mlx.engine.simple.simpleengine._stream_generate_text._run_specprefill(model, bc, use_mtp) -&gt; not annotated score tokens, sparse prefill, then continue on the standard decode path.">
<td><a href="../api/vllm_mlx/engine/simple/#contract-vllm_mlx.engine.simple.SimpleEngine._stream_generate_text._run_specprefill"><code>vllm_mlx.engine.simple.SimpleEngine._stream_generate_text._run_specprefill</code></a></td>
<td>nested function</td>
<td><code>vllm_mlx.engine.simple.SimpleEngine._stream_generate_text._run_specprefill(model, bc, use_mtp) -&gt; not annotated</code></td>
<td>Score tokens, sparse prefill, then continue on the standard decode path.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/engine/simple.py#L2487-L2664">#L2487-L2664</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="nested function" data-symbol-search="vllm_mlx.engine.simple.simpleengine._stream_generate_text._seed_from_last_response nested function vllm_mlx.engine.simple.simpleengine._stream_generate_text._seed_from_last_response(prompt_cache, last_resp) -&gt; not annotated nested function `simpleengine._stream_generate_text._seed_from_last_response` calls `getattr`, `cache_module.trim_prompt_cache`, `mx.array`, `self._text_tokenizer.encode`; has 2 explicit return paths.">
<td><a href="../api/vllm_mlx/engine/simple/#contract-vllm_mlx.engine.simple.SimpleEngine._stream_generate_text._seed_from_last_response"><code>vllm_mlx.engine.simple.SimpleEngine._stream_generate_text._seed_from_last_response</code></a></td>
<td>nested function</td>
<td><code>vllm_mlx.engine.simple.SimpleEngine._stream_generate_text._seed_from_last_response(prompt_cache, last_resp) -&gt; not annotated</code></td>
<td>Nested Function `SimpleEngine._stream_generate_text._seed_from_last_response` calls `getattr`, `cache_module.trim_prompt_cache`, `mx.array`, `self._text_tokenizer.encode`; has 2 explicit return paths.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/engine/simple.py#L2283-L2291">#L2283-L2291</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="nested function" data-symbol-search="vllm_mlx.engine.simple.simpleengine._stream_generate_text.make_cache_with_snapshot nested function vllm_mlx.engine.simple.simpleengine._stream_generate_text.make_cache_with_snapshot(text_model, system_kv_snapshot, _max_kv_size = self._max_kv_size) -&gt; not annotated nested function `simpleengine._stream_generate_text.make_cache_with_snapshot` calls `make_prompt_cache`, `simpleengine._restore_prompt_cache`, `mx.array`; returns `(backbone_cache, prompt_to_send)`.">
<td><a href="../api/vllm_mlx/engine/simple/#contract-vllm_mlx.engine.simple.SimpleEngine._stream_generate_text.make_cache_with_snapshot"><code>vllm_mlx.engine.simple.SimpleEngine._stream_generate_text.make_cache_with_snapshot</code></a></td>
<td>nested function</td>
<td><code>vllm_mlx.engine.simple.SimpleEngine._stream_generate_text.make_cache_with_snapshot(text_model, system_kv_snapshot, _max_kv_size = self._max_kv_size) -&gt; not annotated</code></td>
<td>Nested Function `SimpleEngine._stream_generate_text.make_cache_with_snapshot` calls `make_prompt_cache`, `SimpleEngine._restore_prompt_cache`, `mx.array`; returns `(backbone_cache, prompt_to_send)`.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/engine/simple.py#L2159-L2176">#L2159-L2176</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.engine.simple.simpleengine._track_request_stream method async vllm_mlx.engine.simple.simpleengine._track_request_stream(source_gen: asynciterator[generationoutput], *, max_tokens: int = 0) -&gt; asynciterator[generationoutput] yield-through wrapper that records per-request live state and final ``prompt_tokens``/``completion_tokens`` counters.">
<td><a href="../api/vllm_mlx/engine/simple/#contract-vllm_mlx.engine.simple.SimpleEngine._track_request_stream"><code>vllm_mlx.engine.simple.SimpleEngine._track_request_stream</code></a></td>
<td>method</td>
<td><code>async vllm_mlx.engine.simple.SimpleEngine._track_request_stream(source_gen: AsyncIterator[GenerationOutput], *, max_tokens: int = 0) -&gt; AsyncIterator[GenerationOutput]</code></td>
<td>Yield-through wrapper that records per-request live state and final ``prompt_tokens``/``completion_tokens`` counters.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/engine/simple.py#L732-L817">#L732-L817</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.engine.simple.simpleengine._uses_default_prepare_for_start method vllm_mlx.engine.simple.simpleengine._uses_default_prepare_for_start() -&gt; bool return true when prepare_for_start is the class implementation.">
<td><a href="../api/vllm_mlx/engine/simple/#contract-vllm_mlx.engine.simple.SimpleEngine._uses_default_prepare_for_start"><code>vllm_mlx.engine.simple.SimpleEngine._uses_default_prepare_for_start</code></a></td>
<td>method</td>
<td><code>vllm_mlx.engine.simple.SimpleEngine._uses_default_prepare_for_start() -&gt; bool</code></td>
<td>Return True when prepare_for_start is the class implementation.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/engine/simple.py#L429-L432">#L429-L432</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.engine.simple.simpleengine.chat method async vllm_mlx.engine.simple.simpleengine.chat(messages: list[dict[str, any]], max_tokens: int = 256, temperature: float = 0.7, top_p: float = 0.9, tools: list[dict] | none = none, images: list[str] | none = none, videos: list[str] | none = none, **kwargs) -&gt; generationoutput chat completion (non-streaming).">
<td><a href="../api/vllm_mlx/engine/simple/#contract-vllm_mlx.engine.simple.SimpleEngine.chat"><code>vllm_mlx.engine.simple.SimpleEngine.chat</code></a></td>
<td>method</td>
<td><code>async vllm_mlx.engine.simple.SimpleEngine.chat(messages: list[dict[str, Any]], max_tokens: int = 256, temperature: float = 0.7, top_p: float = 0.9, tools: list[dict] | None = None, images: list[str] | None = None, videos: list[str] | None = None, **kwargs) -&gt; GenerationOutput</code></td>
<td>Chat completion (non-streaming).</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/engine/simple.py#L1014-L1144">#L1014-L1144</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="nested function" data-symbol-search="vllm_mlx.engine.simple.simpleengine.chat.aggregate_stream_chat nested function async vllm_mlx.engine.simple.simpleengine.chat.aggregate_stream_chat() -&gt; generationoutput nested function `simpleengine.chat.aggregate_stream_chat` calls `generationoutput`, `self.stream_chat`, `clean_output_text`, `list`; returns `generationoutput(text=text, tokens=list(final_output.tokens), prompt_tokens=final_output.prompt_tokens, completion_toke…`.">
<td><a href="../api/vllm_mlx/engine/simple/#contract-vllm_mlx.engine.simple.SimpleEngine.chat.aggregate_stream_chat"><code>vllm_mlx.engine.simple.SimpleEngine.chat.aggregate_stream_chat</code></a></td>
<td>nested function</td>
<td><code>async vllm_mlx.engine.simple.SimpleEngine.chat.aggregate_stream_chat() -&gt; GenerationOutput</code></td>
<td>Nested Function `SimpleEngine.chat.aggregate_stream_chat` calls `GenerationOutput`, `self.stream_chat`, `clean_output_text`, `list`; returns `GenerationOutput(text=text, tokens=list(final_output.tokens), prompt_tokens=final_output.prompt_tokens, completion_toke…`.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/engine/simple.py#L1046-L1069">#L1046-L1069</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.engine.simple.simpleengine.clear_runtime_caches method vllm_mlx.engine.simple.simpleengine.clear_runtime_caches() -&gt; dict[str, any] | none clear engine-managed runtime caches.">
<td><a href="../api/vllm_mlx/engine/simple/#contract-vllm_mlx.engine.simple.SimpleEngine.clear_runtime_caches"><code>vllm_mlx.engine.simple.SimpleEngine.clear_runtime_caches</code></a></td>
<td>method</td>
<td><code>vllm_mlx.engine.simple.SimpleEngine.clear_runtime_caches() -&gt; dict[str, Any] | None</code></td>
<td>Clear engine-managed runtime caches.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/engine/simple.py#L2880-L2912">#L2880-L2912</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.engine.simple.simpleengine.generate method async vllm_mlx.engine.simple.simpleengine.generate(prompt: str, max_tokens: int = 256, temperature: float = 0.7, top_p: float = 0.9, stop: list[str] | none = none, **kwargs) -&gt; generationoutput generate a complete response (non-streaming).">
<td><a href="../api/vllm_mlx/engine/simple/#contract-vllm_mlx.engine.simple.SimpleEngine.generate"><code>vllm_mlx.engine.simple.SimpleEngine.generate</code></a></td>
<td>method</td>
<td><code>async vllm_mlx.engine.simple.SimpleEngine.generate(prompt: str, max_tokens: int = 256, temperature: float = 0.7, top_p: float = 0.9, stop: list[str] | None = None, **kwargs) -&gt; GenerationOutput</code></td>
<td>Generate a complete response (non-streaming).</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/engine/simple.py#L668-L730">#L668-L730</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.engine.simple.simpleengine.get_cache_stats method vllm_mlx.engine.simple.simpleengine.get_cache_stats() -&gt; dict[str, any] | none get cache statistics for the system-prompt kv lru plus, when the model is multimodal, the mllm&#x27;s own cache stats.">
<td><a href="../api/vllm_mlx/engine/simple/#contract-vllm_mlx.engine.simple.SimpleEngine.get_cache_stats"><code>vllm_mlx.engine.simple.SimpleEngine.get_cache_stats</code></a></td>
<td>method</td>
<td><code>vllm_mlx.engine.simple.SimpleEngine.get_cache_stats() -&gt; dict[str, Any] | None</code></td>
<td>Get cache statistics for the system-prompt KV LRU plus, when the model is multimodal, the MLLM&#x27;s own cache stats.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/engine/simple.py#L2860-L2878">#L2860-L2878</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.engine.simple.simpleengine.get_stats method vllm_mlx.engine.simple.simpleengine.get_stats() -&gt; dict[str, any] get engine statistics.">
<td><a href="../api/vllm_mlx/engine/simple/#contract-vllm_mlx.engine.simple.SimpleEngine.get_stats"><code>vllm_mlx.engine.simple.SimpleEngine.get_stats</code></a></td>
<td>method</td>
<td><code>vllm_mlx.engine.simple.SimpleEngine.get_stats() -&gt; dict[str, Any]</code></td>
<td>Get engine statistics.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/engine/simple.py#L2736-L2858">#L2736-L2858</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.engine.simple.simpleengine.is_mllm method vllm_mlx.engine.simple.simpleengine.is_mllm() -&gt; bool check if this is a multimodal model.">
<td><a href="../api/vllm_mlx/engine/simple/#contract-vllm_mlx.engine.simple.SimpleEngine.is_mllm"><code>vllm_mlx.engine.simple.SimpleEngine.is_mllm</code></a></td>
<td>method</td>
<td><code>vllm_mlx.engine.simple.SimpleEngine.is_mllm() -&gt; bool</code></td>
<td>Check if this is a multimodal model.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/engine/simple.py#L339-L341">#L339-L341</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.engine.simple.simpleengine.model_name method vllm_mlx.engine.simple.simpleengine.model_name() -&gt; str get the model name.">
<td><a href="../api/vllm_mlx/engine/simple/#contract-vllm_mlx.engine.simple.SimpleEngine.model_name"><code>vllm_mlx.engine.simple.SimpleEngine.model_name</code></a></td>
<td>method</td>
<td><code>vllm_mlx.engine.simple.SimpleEngine.model_name() -&gt; str</code></td>
<td>Get the model name.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/engine/simple.py#L334-L336">#L334-L336</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.engine.simple.simpleengine.prepare_for_start method vllm_mlx.engine.simple.simpleengine.prepare_for_start() -&gt; none load the backing model off the serving event loop.">
<td><a href="../api/vllm_mlx/engine/simple/#contract-vllm_mlx.engine.simple.SimpleEngine.prepare_for_start"><code>vllm_mlx.engine.simple.SimpleEngine.prepare_for_start</code></a></td>
<td>method</td>
<td><code>vllm_mlx.engine.simple.SimpleEngine.prepare_for_start() -&gt; None</code></td>
<td>Load the backing model off the serving event loop.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/engine/simple.py#L400-L427">#L400-L427</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.engine.simple.simpleengine.start method async vllm_mlx.engine.simple.simpleengine.start() -&gt; none start the engine (load model if not loaded).">
<td><a href="../api/vllm_mlx/engine/simple/#contract-vllm_mlx.engine.simple.SimpleEngine.start"><code>vllm_mlx.engine.simple.SimpleEngine.start</code></a></td>
<td>method</td>
<td><code>async vllm_mlx.engine.simple.SimpleEngine.start() -&gt; None</code></td>
<td>Start the engine (load model if not loaded).</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/engine/simple.py#L434-L595">#L434-L595</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.engine.simple.simpleengine.stop method async vllm_mlx.engine.simple.simpleengine.stop() -&gt; none stop the engine and cleanup resources.">
<td><a href="../api/vllm_mlx/engine/simple/#contract-vllm_mlx.engine.simple.SimpleEngine.stop"><code>vllm_mlx.engine.simple.SimpleEngine.stop</code></a></td>
<td>method</td>
<td><code>async vllm_mlx.engine.simple.SimpleEngine.stop() -&gt; None</code></td>
<td>Stop the engine and cleanup resources.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/engine/simple.py#L597-L608">#L597-L608</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.engine.simple.simpleengine.stream_chat method async vllm_mlx.engine.simple.simpleengine.stream_chat(messages: list[dict[str, any]], max_tokens: int = 256, temperature: float = 0.7, top_p: float = 0.9, tools: list[dict] | none = none, images: list[str] | none = none, videos: list[str] | none = none, **kwargs) -&gt; asynciterator[generationoutput] public stream-chat wrapper with request stats tracking.">
<td><a href="../api/vllm_mlx/engine/simple/#contract-vllm_mlx.engine.simple.SimpleEngine.stream_chat"><code>vllm_mlx.engine.simple.SimpleEngine.stream_chat</code></a></td>
<td>method</td>
<td><code>async vllm_mlx.engine.simple.SimpleEngine.stream_chat(messages: list[dict[str, Any]], max_tokens: int = 256, temperature: float = 0.7, top_p: float = 0.9, tools: list[dict] | None = None, images: list[str] | None = None, videos: list[str] | None = None, **kwargs) -&gt; AsyncIterator[GenerationOutput]</code></td>
<td>Public stream-chat wrapper with request stats tracking.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/engine/simple.py#L1146-L1171">#L1146-L1171</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.engine.simple.simpleengine.stream_generate method async vllm_mlx.engine.simple.simpleengine.stream_generate(prompt: str, max_tokens: int = 256, temperature: float = 0.7, top_p: float = 0.9, stop: list[str] | none = none, **kwargs) -&gt; asynciterator[generationoutput] public stream-generate wrapper with request stats tracking.">
<td><a href="../api/vllm_mlx/engine/simple/#contract-vllm_mlx.engine.simple.SimpleEngine.stream_generate"><code>vllm_mlx.engine.simple.SimpleEngine.stream_generate</code></a></td>
<td>method</td>
<td><code>async vllm_mlx.engine.simple.SimpleEngine.stream_generate(prompt: str, max_tokens: int = 256, temperature: float = 0.7, top_p: float = 0.9, stop: list[str] | None = None, **kwargs) -&gt; AsyncIterator[GenerationOutput]</code></td>
<td>Public stream-generate wrapper with request stats tracking.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/engine/simple.py#L819-L840">#L819-L840</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.engine.simple.simpleengine.tokenizer method vllm_mlx.engine.simple.simpleengine.tokenizer() -&gt; any get the tokenizer.">
<td><a href="../api/vllm_mlx/engine/simple/#contract-vllm_mlx.engine.simple.SimpleEngine.tokenizer"><code>vllm_mlx.engine.simple.SimpleEngine.tokenizer</code></a></td>
<td>method</td>
<td><code>vllm_mlx.engine.simple.SimpleEngine.tokenizer() -&gt; Any</code></td>
<td>Get the tokenizer.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/engine/simple.py#L344-L350">#L344-L350</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.engine_core._is_stream_thread_error function vllm_mlx.engine_core._is_stream_thread_error(error: exception) -&gt; bool true when mlx reports stream ownership mismatch across threads.">
<td><a href="../api/vllm_mlx/engine_core/#contract-vllm_mlx.engine_core._is_stream_thread_error"><code>vllm_mlx.engine_core._is_stream_thread_error</code></a></td>
<td>function</td>
<td><code>vllm_mlx.engine_core._is_stream_thread_error(error: Exception) -&gt; bool</code></td>
<td>True when MLX reports stream ownership mismatch across threads.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/engine_core.py#L33-L36">#L33-L36</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="class" data-symbol-search="vllm_mlx.engine_core.asyncenginecore class vllm_mlx.engine_core.asyncenginecore(model: any, tokenizer: any, config: optional[engineconfig] = none) async context manager wrapper for enginecore.">
<td><a href="../api/vllm_mlx/engine_core/#contract-vllm_mlx.engine_core.AsyncEngineCore"><code>vllm_mlx.engine_core.AsyncEngineCore</code></a></td>
<td>class</td>
<td><code>vllm_mlx.engine_core.AsyncEngineCore(model: Any, tokenizer: Any, config: Optional[EngineConfig] = None)</code></td>
<td>Async context manager wrapper for EngineCore.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/engine_core.py#L701-L794">#L701-L794</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.engine_core.asyncenginecore.__aenter__ method async vllm_mlx.engine_core.asyncenginecore.__aenter__() -&gt; &#x27;asyncenginecore&#x27; method `asyncenginecore.__aenter__` calls `self.engine.start`; awaits asynchronous work; returns `self`.">
<td><a href="../api/vllm_mlx/engine_core/#contract-vllm_mlx.engine_core.AsyncEngineCore.__aenter__"><code>vllm_mlx.engine_core.AsyncEngineCore.__aenter__</code></a></td>
<td>method</td>
<td><code>async vllm_mlx.engine_core.AsyncEngineCore.__aenter__() -&gt; &#x27;AsyncEngineCore&#x27;</code></td>
<td>Method `AsyncEngineCore.__aenter__` calls `self.engine.start`; awaits asynchronous work; returns `self`.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/engine_core.py#L720-L722">#L720-L722</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.engine_core.asyncenginecore.__aexit__ method async vllm_mlx.engine_core.asyncenginecore.__aexit__(*args) -&gt; none method `asyncenginecore.__aexit__` calls `self.engine.stop`; awaits asynchronous work.">
<td><a href="../api/vllm_mlx/engine_core/#contract-vllm_mlx.engine_core.AsyncEngineCore.__aexit__"><code>vllm_mlx.engine_core.AsyncEngineCore.__aexit__</code></a></td>
<td>method</td>
<td><code>async vllm_mlx.engine_core.AsyncEngineCore.__aexit__(*args) -&gt; None</code></td>
<td>Method `AsyncEngineCore.__aexit__` calls `self.engine.stop`; awaits asynchronous work.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/engine_core.py#L724-L725">#L724-L725</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.engine_core.asyncenginecore.__init__ method vllm_mlx.engine_core.asyncenginecore.__init__(model: any, tokenizer: any, config: optional[engineconfig] = none) -&gt; not annotated method `asyncenginecore.__init__` updates `self.engine`; calls `enginecore`.">
<td><a href="../api/vllm_mlx/engine_core/#contract-vllm_mlx.engine_core.AsyncEngineCore.__init__"><code>vllm_mlx.engine_core.AsyncEngineCore.__init__</code></a></td>
<td>method</td>
<td><code>vllm_mlx.engine_core.AsyncEngineCore.__init__(model: Any, tokenizer: Any, config: Optional[EngineConfig] = None) -&gt; not annotated</code></td>
<td>Method `AsyncEngineCore.__init__` updates `self.engine`; calls `EngineCore`.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/engine_core.py#L712-L718">#L712-L718</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.engine_core.asyncenginecore.abort_request method async vllm_mlx.engine_core.asyncenginecore.abort_request(request_id: str) -&gt; bool abort a request.">
<td><a href="../api/vllm_mlx/engine_core/#contract-vllm_mlx.engine_core.AsyncEngineCore.abort_request"><code>vllm_mlx.engine_core.AsyncEngineCore.abort_request</code></a></td>
<td>method</td>
<td><code>async vllm_mlx.engine_core.AsyncEngineCore.abort_request(request_id: str) -&gt; bool</code></td>
<td>Abort a request.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/engine_core.py#L750-L752">#L750-L752</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.engine_core.asyncenginecore.add_request method async vllm_mlx.engine_core.asyncenginecore.add_request(prompt: union[str, list[int]], sampling_params: optional[samplingparams] = none, request_id: optional[str] = none, **kwargs) -&gt; str add a request.">
<td><a href="../api/vllm_mlx/engine_core/#contract-vllm_mlx.engine_core.AsyncEngineCore.add_request"><code>vllm_mlx.engine_core.AsyncEngineCore.add_request</code></a></td>
<td>method</td>
<td><code>async vllm_mlx.engine_core.AsyncEngineCore.add_request(prompt: Union[str, List[int]], sampling_params: Optional[SamplingParams] = None, request_id: Optional[str] = None, **kwargs) -&gt; str</code></td>
<td>Add a request.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/engine_core.py#L735-L748">#L735-L748</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.engine_core.asyncenginecore.clear_runtime_caches method vllm_mlx.engine_core.asyncenginecore.clear_runtime_caches() -&gt; dict[str, any] | none clear scheduler-managed runtime caches.">
<td><a href="../api/vllm_mlx/engine_core/#contract-vllm_mlx.engine_core.AsyncEngineCore.clear_runtime_caches"><code>vllm_mlx.engine_core.AsyncEngineCore.clear_runtime_caches</code></a></td>
<td>method</td>
<td><code>vllm_mlx.engine_core.AsyncEngineCore.clear_runtime_caches() -&gt; Dict[str, Any] | None</code></td>
<td>Clear scheduler-managed runtime caches.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/engine_core.py#L792-L794">#L792-L794</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.engine_core.asyncenginecore.generate method async vllm_mlx.engine_core.asyncenginecore.generate(prompt: union[str, list[int]], sampling_params: optional[samplingparams] = none, **kwargs) -&gt; requestoutput generate complete response.">
<td><a href="../api/vllm_mlx/engine_core/#contract-vllm_mlx.engine_core.AsyncEngineCore.generate"><code>vllm_mlx.engine_core.AsyncEngineCore.generate</code></a></td>
<td>method</td>
<td><code>async vllm_mlx.engine_core.AsyncEngineCore.generate(prompt: Union[str, List[int]], sampling_params: Optional[SamplingParams] = None, **kwargs) -&gt; RequestOutput</code></td>
<td>Generate complete response.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/engine_core.py#L763-L774">#L763-L774</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.engine_core.asyncenginecore.get_cache_stats method vllm_mlx.engine_core.asyncenginecore.get_cache_stats() -&gt; optional[dict[str, any]] get prefix cache statistics.">
<td><a href="../api/vllm_mlx/engine_core/#contract-vllm_mlx.engine_core.AsyncEngineCore.get_cache_stats"><code>vllm_mlx.engine_core.AsyncEngineCore.get_cache_stats</code></a></td>
<td>method</td>
<td><code>vllm_mlx.engine_core.AsyncEngineCore.get_cache_stats() -&gt; Optional[Dict[str, Any]]</code></td>
<td>Get prefix cache statistics.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/engine_core.py#L780-L782">#L780-L782</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.engine_core.asyncenginecore.get_stats method vllm_mlx.engine_core.asyncenginecore.get_stats() -&gt; dict[str, any] get engine stats.">
<td><a href="../api/vllm_mlx/engine_core/#contract-vllm_mlx.engine_core.AsyncEngineCore.get_stats"><code>vllm_mlx.engine_core.AsyncEngineCore.get_stats</code></a></td>
<td>method</td>
<td><code>vllm_mlx.engine_core.AsyncEngineCore.get_stats() -&gt; Dict[str, Any]</code></td>
<td>Get engine stats.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/engine_core.py#L776-L778">#L776-L778</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.engine_core.asyncenginecore.load_cache_from_disk method vllm_mlx.engine_core.asyncenginecore.load_cache_from_disk(cache_dir: str) -&gt; int load prefix cache from disk.">
<td><a href="../api/vllm_mlx/engine_core/#contract-vllm_mlx.engine_core.AsyncEngineCore.load_cache_from_disk"><code>vllm_mlx.engine_core.AsyncEngineCore.load_cache_from_disk</code></a></td>
<td>method</td>
<td><code>vllm_mlx.engine_core.AsyncEngineCore.load_cache_from_disk(cache_dir: str) -&gt; int</code></td>
<td>Load prefix cache from disk.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/engine_core.py#L788-L790">#L788-L790</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.engine_core.asyncenginecore.save_cache_to_disk method vllm_mlx.engine_core.asyncenginecore.save_cache_to_disk(cache_dir: str) -&gt; bool save prefix cache to disk.">
<td><a href="../api/vllm_mlx/engine_core/#contract-vllm_mlx.engine_core.AsyncEngineCore.save_cache_to_disk"><code>vllm_mlx.engine_core.AsyncEngineCore.save_cache_to_disk</code></a></td>
<td>method</td>
<td><code>vllm_mlx.engine_core.AsyncEngineCore.save_cache_to_disk(cache_dir: str) -&gt; bool</code></td>
<td>Save prefix cache to disk.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/engine_core.py#L784-L786">#L784-L786</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.engine_core.asyncenginecore.start method vllm_mlx.engine_core.asyncenginecore.start() -&gt; none start engine (creates task in current loop).">
<td><a href="../api/vllm_mlx/engine_core/#contract-vllm_mlx.engine_core.AsyncEngineCore.start"><code>vllm_mlx.engine_core.AsyncEngineCore.start</code></a></td>
<td>method</td>
<td><code>vllm_mlx.engine_core.AsyncEngineCore.start() -&gt; None</code></td>
<td>Start engine (creates task in current loop).</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/engine_core.py#L727-L729">#L727-L729</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.engine_core.asyncenginecore.stop method async vllm_mlx.engine_core.asyncenginecore.stop() -&gt; none stop the engine.">
<td><a href="../api/vllm_mlx/engine_core/#contract-vllm_mlx.engine_core.AsyncEngineCore.stop"><code>vllm_mlx.engine_core.AsyncEngineCore.stop</code></a></td>
<td>method</td>
<td><code>async vllm_mlx.engine_core.AsyncEngineCore.stop() -&gt; None</code></td>
<td>Stop the engine.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/engine_core.py#L731-L733">#L731-L733</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.engine_core.asyncenginecore.stream_outputs method async vllm_mlx.engine_core.asyncenginecore.stream_outputs(request_id: str, timeout: optional[float] = none) -&gt; asynciterator[requestoutput] stream outputs.">
<td><a href="../api/vllm_mlx/engine_core/#contract-vllm_mlx.engine_core.AsyncEngineCore.stream_outputs"><code>vllm_mlx.engine_core.AsyncEngineCore.stream_outputs</code></a></td>
<td>method</td>
<td><code>async vllm_mlx.engine_core.AsyncEngineCore.stream_outputs(request_id: str, timeout: Optional[float] = None) -&gt; AsyncIterator[RequestOutput]</code></td>
<td>Stream outputs.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/engine_core.py#L754-L761">#L754-L761</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="class" data-symbol-search="vllm_mlx.engine_core.engineconfig class vllm_mlx.engine_core.engineconfig(model_name: str = &#x27;&#x27;, scheduler_config: optional[schedulerconfig] = none, step_interval: float = 0.001, stream_interval: int = 1, gpu_memory_utilization: float = 0.9) configuration for the engine.">
<td><a href="../api/vllm_mlx/engine_core/#contract-vllm_mlx.engine_core.EngineConfig"><code>vllm_mlx.engine_core.EngineConfig</code></a></td>
<td>class</td>
<td><code>vllm_mlx.engine_core.EngineConfig(model_name: str = &#x27;&#x27;, scheduler_config: Optional[SchedulerConfig] = None, step_interval: float = 0.001, stream_interval: int = 1, gpu_memory_utilization: float = 0.9)</code></td>
<td>Configuration for the engine.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/engine_core.py#L40-L47">#L40-L47</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="class" data-symbol-search="vllm_mlx.engine_core.enginecore class vllm_mlx.engine_core.enginecore(model: any, tokenizer: any, config: optional[engineconfig] = none, engine_id: optional[str] = none, force_model_ownership: bool = true) core engine for vllm-mlx inference with continuous batching.">
<td><a href="../api/vllm_mlx/engine_core/#contract-vllm_mlx.engine_core.EngineCore"><code>vllm_mlx.engine_core.EngineCore</code></a></td>
<td>class</td>
<td><code>vllm_mlx.engine_core.EngineCore(model: Any, tokenizer: Any, config: Optional[EngineConfig] = None, engine_id: Optional[str] = None, force_model_ownership: bool = True)</code></td>
<td>Core engine for vllm-mlx inference with continuous batching.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/engine_core.py#L50-L698">#L50-L698</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.engine_core.enginecore.__del__ method vllm_mlx.engine_core.enginecore.__del__() -&gt; not annotated cleanup on destruction.">
<td><a href="../api/vllm_mlx/engine_core/#contract-vllm_mlx.engine_core.EngineCore.__del__"><code>vllm_mlx.engine_core.EngineCore.__del__</code></a></td>
<td>method</td>
<td><code>vllm_mlx.engine_core.EngineCore.__del__() -&gt; not annotated</code></td>
<td>Cleanup on destruction.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/engine_core.py#L687-L693">#L687-L693</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.engine_core.enginecore.__init__ method vllm_mlx.engine_core.enginecore.__init__(model: any, tokenizer: any, config: optional[engineconfig] = none, engine_id: optional[str] = none, force_model_ownership: bool = true) -&gt; not annotated initialize the engine.">
<td><a href="../api/vllm_mlx/engine_core/#contract-vllm_mlx.engine_core.EngineCore.__init__"><code>vllm_mlx.engine_core.EngineCore.__init__</code></a></td>
<td>method</td>
<td><code>vllm_mlx.engine_core.EngineCore.__init__(model: Any, tokenizer: Any, config: Optional[EngineConfig] = None, engine_id: Optional[str] = None, force_model_ownership: bool = True) -&gt; not annotated</code></td>
<td>Initialize the engine.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/engine_core.py#L58-L114">#L58-L114</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.engine_core.enginecore._cleanup_request method vllm_mlx.engine_core.enginecore._cleanup_request(request_id: str) -&gt; none clean up request tracking.">
<td><a href="../api/vllm_mlx/engine_core/#contract-vllm_mlx.engine_core.EngineCore._cleanup_request"><code>vllm_mlx.engine_core.EngineCore._cleanup_request</code></a></td>
<td>method</td>
<td><code>vllm_mlx.engine_core.EngineCore._cleanup_request(request_id: str) -&gt; None</code></td>
<td>Clean up request tracking.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/engine_core.py#L392-L399">#L392-L399</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.engine_core.enginecore._engine_loop method async vllm_mlx.engine_core.enginecore._engine_loop() -&gt; none main engine loop.">
<td><a href="../api/vllm_mlx/engine_core/#contract-vllm_mlx.engine_core.EngineCore._engine_loop"><code>vllm_mlx.engine_core.EngineCore._engine_loop</code></a></td>
<td>method</td>
<td><code>async vllm_mlx.engine_core.EngineCore._engine_loop() -&gt; None</code></td>
<td>Main engine loop.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/engine_core.py#L146-L334">#L146-L334</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="nested function" data-symbol-search="vllm_mlx.engine_core.enginecore._engine_loop._bind_model_streams_once nested function vllm_mlx.engine_core.enginecore._engine_loop._bind_model_streams_once() -&gt; none nested function `enginecore._engine_loop._bind_model_streams_once` calls `bind_generation_streams`.">
<td><a href="../api/vllm_mlx/engine_core/#contract-vllm_mlx.engine_core.EngineCore._engine_loop._bind_model_streams_once"><code>vllm_mlx.engine_core.EngineCore._engine_loop._bind_model_streams_once</code></a></td>
<td>nested function</td>
<td><code>vllm_mlx.engine_core.EngineCore._engine_loop._bind_model_streams_once() -&gt; None</code></td>
<td>Nested Function `EngineCore._engine_loop._bind_model_streams_once` calls `bind_generation_streams`.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/engine_core.py#L166-L170">#L166-L170</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="nested function" data-symbol-search="vllm_mlx.engine_core.enginecore._engine_loop._bind_worker_streams_once nested function vllm_mlx.engine_core.enginecore._engine_loop._bind_worker_streams_once() -&gt; none nested function `enginecore._engine_loop._bind_worker_streams_once` calls `bind_generation_streams`.">
<td><a href="../api/vllm_mlx/engine_core/#contract-vllm_mlx.engine_core.EngineCore._engine_loop._bind_worker_streams_once"><code>vllm_mlx.engine_core.EngineCore._engine_loop._bind_worker_streams_once</code></a></td>
<td>nested function</td>
<td><code>vllm_mlx.engine_core.EngineCore._engine_loop._bind_worker_streams_once() -&gt; None</code></td>
<td>Nested Function `EngineCore._engine_loop._bind_worker_streams_once` calls `bind_generation_streams`.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/engine_core.py#L160-L164">#L160-L164</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="nested function" data-symbol-search="vllm_mlx.engine_core.enginecore._engine_loop._clear_cache_on_worker nested function vllm_mlx.engine_core.enginecore._engine_loop._clear_cache_on_worker() -&gt; none nested function `enginecore._engine_loop._clear_cache_on_worker` calls `_bind_worker_streams_once`, `mx.clear_cache`.">
<td><a href="../api/vllm_mlx/engine_core/#contract-vllm_mlx.engine_core.EngineCore._engine_loop._clear_cache_on_worker"><code>vllm_mlx.engine_core.EngineCore._engine_loop._clear_cache_on_worker</code></a></td>
<td>nested function</td>
<td><code>vllm_mlx.engine_core.EngineCore._engine_loop._clear_cache_on_worker() -&gt; None</code></td>
<td>Nested Function `EngineCore._engine_loop._clear_cache_on_worker` calls `_bind_worker_streams_once`, `mx.clear_cache`.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/engine_core.py#L217-L219">#L217-L219</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="nested function" data-symbol-search="vllm_mlx.engine_core.enginecore._engine_loop._close_batch_generator_on_worker nested function vllm_mlx.engine_core.enginecore._engine_loop._close_batch_generator_on_worker() -&gt; none nested function `enginecore._engine_loop._close_batch_generator_on_worker` calls `_bind_worker_streams_once`, `self.scheduler._close_batch_generator`.">
<td><a href="../api/vllm_mlx/engine_core/#contract-vllm_mlx.engine_core.EngineCore._engine_loop._close_batch_generator_on_worker"><code>vllm_mlx.engine_core.EngineCore._engine_loop._close_batch_generator_on_worker</code></a></td>
<td>nested function</td>
<td><code>vllm_mlx.engine_core.EngineCore._engine_loop._close_batch_generator_on_worker() -&gt; None</code></td>
<td>Nested Function `EngineCore._engine_loop._close_batch_generator_on_worker` calls `_bind_worker_streams_once`, `self.scheduler._close_batch_generator`.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/engine_core.py#L221-L223">#L221-L223</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="nested function" data-symbol-search="vllm_mlx.engine_core.enginecore._engine_loop._recover_stream_thread_error_on_worker nested function vllm_mlx.engine_core.enginecore._engine_loop._recover_stream_thread_error_on_worker() -&gt; none nested function `enginecore._engine_loop._recover_stream_thread_error_on_worker` calls `_bind_worker_streams_once`, `self.scheduler._recover_from_cache_error`, `self.scheduler._reschedule_running_requests`.">
<td><a href="../api/vllm_mlx/engine_core/#contract-vllm_mlx.engine_core.EngineCore._engine_loop._recover_stream_thread_error_on_worker"><code>vllm_mlx.engine_core.EngineCore._engine_loop._recover_stream_thread_error_on_worker</code></a></td>
<td>nested function</td>
<td><code>vllm_mlx.engine_core.EngineCore._engine_loop._recover_stream_thread_error_on_worker() -&gt; None</code></td>
<td>Nested Function `EngineCore._engine_loop._recover_stream_thread_error_on_worker` calls `_bind_worker_streams_once`, `self.scheduler._recover_from_cache_error`, `self.scheduler._reschedule_running_requests`.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/engine_core.py#L212-L215">#L212-L215</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="nested function" data-symbol-search="vllm_mlx.engine_core.enginecore._engine_loop._step_on_model_thread nested function vllm_mlx.engine_core.enginecore._engine_loop._step_on_model_thread() -&gt; not annotated nested function `enginecore._engine_loop._step_on_model_thread` updates `self._steps_executed`; calls `_bind_model_streams_once`, `self.scheduler.step`, `mx.get_active_memory`, `mx.clear_cache`; returns `output`.">
<td><a href="../api/vllm_mlx/engine_core/#contract-vllm_mlx.engine_core.EngineCore._engine_loop._step_on_model_thread"><code>vllm_mlx.engine_core.EngineCore._engine_loop._step_on_model_thread</code></a></td>
<td>nested function</td>
<td><code>vllm_mlx.engine_core.EngineCore._engine_loop._step_on_model_thread() -&gt; not annotated</code></td>
<td>Nested Function `EngineCore._engine_loop._step_on_model_thread` updates `self._steps_executed`; calls `_bind_model_streams_once`, `self.scheduler.step`, `mx.get_active_memory`, `mx.clear_cache`; returns `output`.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/engine_core.py#L192-L210">#L192-L210</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="nested function" data-symbol-search="vllm_mlx.engine_core.enginecore._engine_loop._step_on_worker nested function vllm_mlx.engine_core.enginecore._engine_loop._step_on_worker() -&gt; not annotated nested function `enginecore._engine_loop._step_on_worker` updates `self._steps_executed`; calls `_bind_worker_streams_once`, `self.scheduler.step`, `mx.get_active_memory`, `mx.clear_cache`; returns `output`.">
<td><a href="../api/vllm_mlx/engine_core/#contract-vllm_mlx.engine_core.EngineCore._engine_loop._step_on_worker"><code>vllm_mlx.engine_core.EngineCore._engine_loop._step_on_worker</code></a></td>
<td>nested function</td>
<td><code>vllm_mlx.engine_core.EngineCore._engine_loop._step_on_worker() -&gt; not annotated</code></td>
<td>Nested Function `EngineCore._engine_loop._step_on_worker` updates `self._steps_executed`; calls `_bind_worker_streams_once`, `self.scheduler.step`, `mx.get_active_memory`, `mx.clear_cache`; returns `output`.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/engine_core.py#L172-L190">#L172-L190</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.engine_core.enginecore._release_model method vllm_mlx.engine_core.enginecore._release_model() -&gt; none release model ownership.">
<td><a href="../api/vllm_mlx/engine_core/#contract-vllm_mlx.engine_core.EngineCore._release_model"><code>vllm_mlx.engine_core.EngineCore._release_model</code></a></td>
<td>method</td>
<td><code>vllm_mlx.engine_core.EngineCore._release_model() -&gt; None</code></td>
<td>Release model ownership.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/engine_core.py#L647-L653">#L647-L653</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.engine_core.enginecore.abort_request method async vllm_mlx.engine_core.enginecore.abort_request(request_id: str) -&gt; bool abort a request.">
<td><a href="../api/vllm_mlx/engine_core/#contract-vllm_mlx.engine_core.EngineCore.abort_request"><code>vllm_mlx.engine_core.EngineCore.abort_request</code></a></td>
<td>method</td>
<td><code>async vllm_mlx.engine_core.EngineCore.abort_request(request_id: str) -&gt; bool</code></td>
<td>Abort a request.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/engine_core.py#L386-L390">#L386-L390</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.engine_core.enginecore.add_request method async vllm_mlx.engine_core.enginecore.add_request(prompt: union[str, list[int]], sampling_params: optional[samplingparams] = none, request_id: optional[str] = none, images: optional[list[any]] = none, videos: optional[list[any]] = none, prefix_boundary: int = 0) -&gt; str add a request for processing.">
<td><a href="../api/vllm_mlx/engine_core/#contract-vllm_mlx.engine_core.EngineCore.add_request"><code>vllm_mlx.engine_core.EngineCore.add_request</code></a></td>
<td>method</td>
<td><code>async vllm_mlx.engine_core.EngineCore.add_request(prompt: Union[str, List[int]], sampling_params: Optional[SamplingParams] = None, request_id: Optional[str] = None, images: Optional[List[Any]] = None, videos: Optional[List[Any]] = None, prefix_boundary: int = 0) -&gt; str</code></td>
<td>Add a request for processing.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/engine_core.py#L336-L384">#L336-L384</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.engine_core.enginecore.clear_prefix_cache method vllm_mlx.engine_core.enginecore.clear_prefix_cache() -&gt; none clear the prefix cache (delegates to scheduler).">
<td><a href="../api/vllm_mlx/engine_core/#contract-vllm_mlx.engine_core.EngineCore.clear_prefix_cache"><code>vllm_mlx.engine_core.EngineCore.clear_prefix_cache</code></a></td>
<td>method</td>
<td><code>vllm_mlx.engine_core.EngineCore.clear_prefix_cache() -&gt; None</code></td>
<td>Clear the prefix cache (delegates to scheduler).</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/engine_core.py#L642-L645">#L642-L645</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.engine_core.enginecore.clear_runtime_caches method vllm_mlx.engine_core.enginecore.clear_runtime_caches() -&gt; dict[str, any] | none clear scheduler-managed runtime caches.">
<td><a href="../api/vllm_mlx/engine_core/#contract-vllm_mlx.engine_core.EngineCore.clear_runtime_caches"><code>vllm_mlx.engine_core.EngineCore.clear_runtime_caches</code></a></td>
<td>method</td>
<td><code>vllm_mlx.engine_core.EngineCore.clear_runtime_caches() -&gt; Dict[str, Any] | None</code></td>
<td>Clear scheduler-managed runtime caches.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/engine_core.py#L638-L640">#L638-L640</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.engine_core.enginecore.close method vllm_mlx.engine_core.enginecore.close() -&gt; none explicitly close the engine and release resources.">
<td><a href="../api/vllm_mlx/engine_core/#contract-vllm_mlx.engine_core.EngineCore.close"><code>vllm_mlx.engine_core.EngineCore.close</code></a></td>
<td>method</td>
<td><code>vllm_mlx.engine_core.EngineCore.close() -&gt; None</code></td>
<td>Explicitly close the engine and release resources.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/engine_core.py#L655-L685">#L655-L685</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.engine_core.enginecore.engine_id method vllm_mlx.engine_core.enginecore.engine_id() -&gt; str get the engine id.">
<td><a href="../api/vllm_mlx/engine_core/#contract-vllm_mlx.engine_core.EngineCore.engine_id"><code>vllm_mlx.engine_core.EngineCore.engine_id</code></a></td>
<td>method</td>
<td><code>vllm_mlx.engine_core.EngineCore.engine_id() -&gt; str</code></td>
<td>Get the engine ID.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/engine_core.py#L696-L698">#L696-L698</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.engine_core.enginecore.generate method async vllm_mlx.engine_core.enginecore.generate(prompt: union[str, list[int]], sampling_params: optional[samplingparams] = none, request_id: optional[str] = none, **kwargs) -&gt; requestoutput generate a complete response (non-streaming).">
<td><a href="../api/vllm_mlx/engine_core/#contract-vllm_mlx.engine_core.EngineCore.generate"><code>vllm_mlx.engine_core.EngineCore.generate</code></a></td>
<td>method</td>
<td><code>async vllm_mlx.engine_core.EngineCore.generate(prompt: Union[str, List[int]], sampling_params: Optional[SamplingParams] = None, request_id: Optional[str] = None, **kwargs) -&gt; RequestOutput</code></td>
<td>Generate a complete response (non-streaming).</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/engine_core.py#L490-L552">#L490-L552</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.engine_core.enginecore.generate_batch_sync method vllm_mlx.engine_core.enginecore.generate_batch_sync(prompts: list[union[str, list[int]]], sampling_params: optional[samplingparams] = none) -&gt; list[requestoutput] generate responses synchronously for maximum throughput.">
<td><a href="../api/vllm_mlx/engine_core/#contract-vllm_mlx.engine_core.EngineCore.generate_batch_sync"><code>vllm_mlx.engine_core.EngineCore.generate_batch_sync</code></a></td>
<td>method</td>
<td><code>vllm_mlx.engine_core.EngineCore.generate_batch_sync(prompts: List[Union[str, List[int]]], sampling_params: Optional[SamplingParams] = None) -&gt; List[RequestOutput]</code></td>
<td>Generate responses synchronously for maximum throughput.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/engine_core.py#L554-L609">#L554-L609</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.engine_core.enginecore.get_cache_stats method vllm_mlx.engine_core.enginecore.get_cache_stats() -&gt; optional[dict[str, any]] get prefix cache statistics.">
<td><a href="../api/vllm_mlx/engine_core/#contract-vllm_mlx.engine_core.EngineCore.get_cache_stats"><code>vllm_mlx.engine_core.EngineCore.get_cache_stats</code></a></td>
<td>method</td>
<td><code>vllm_mlx.engine_core.EngineCore.get_cache_stats() -&gt; Optional[Dict[str, Any]]</code></td>
<td>Get prefix cache statistics.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/engine_core.py#L626-L628">#L626-L628</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.engine_core.enginecore.get_stats method vllm_mlx.engine_core.enginecore.get_stats() -&gt; dict[str, any] get engine statistics.">
<td><a href="../api/vllm_mlx/engine_core/#contract-vllm_mlx.engine_core.EngineCore.get_stats"><code>vllm_mlx.engine_core.EngineCore.get_stats</code></a></td>
<td>method</td>
<td><code>vllm_mlx.engine_core.EngineCore.get_stats() -&gt; Dict[str, Any]</code></td>
<td>Get engine statistics.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/engine_core.py#L611-L624">#L611-L624</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.engine_core.enginecore.is_running method vllm_mlx.engine_core.enginecore.is_running() -&gt; bool check if engine is running.">
<td><a href="../api/vllm_mlx/engine_core/#contract-vllm_mlx.engine_core.EngineCore.is_running"><code>vllm_mlx.engine_core.EngineCore.is_running</code></a></td>
<td>method</td>
<td><code>vllm_mlx.engine_core.EngineCore.is_running() -&gt; bool</code></td>
<td>Check if engine is running.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/engine_core.py#L142-L144">#L142-L144</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.engine_core.enginecore.load_cache_from_disk method vllm_mlx.engine_core.enginecore.load_cache_from_disk(cache_dir: str) -&gt; int load prefix cache from disk.">
<td><a href="../api/vllm_mlx/engine_core/#contract-vllm_mlx.engine_core.EngineCore.load_cache_from_disk"><code>vllm_mlx.engine_core.EngineCore.load_cache_from_disk</code></a></td>
<td>method</td>
<td><code>vllm_mlx.engine_core.EngineCore.load_cache_from_disk(cache_dir: str) -&gt; int</code></td>
<td>Load prefix cache from disk.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/engine_core.py#L634-L636">#L634-L636</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.engine_core.enginecore.save_cache_to_disk method vllm_mlx.engine_core.enginecore.save_cache_to_disk(cache_dir: str) -&gt; bool save prefix cache to disk.">
<td><a href="../api/vllm_mlx/engine_core/#contract-vllm_mlx.engine_core.EngineCore.save_cache_to_disk"><code>vllm_mlx.engine_core.EngineCore.save_cache_to_disk</code></a></td>
<td>method</td>
<td><code>vllm_mlx.engine_core.EngineCore.save_cache_to_disk(cache_dir: str) -&gt; bool</code></td>
<td>Save prefix cache to disk.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/engine_core.py#L630-L632">#L630-L632</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.engine_core.enginecore.start method async vllm_mlx.engine_core.enginecore.start() -&gt; none start the engine loop.">
<td><a href="../api/vllm_mlx/engine_core/#contract-vllm_mlx.engine_core.EngineCore.start"><code>vllm_mlx.engine_core.EngineCore.start</code></a></td>
<td>method</td>
<td><code>async vllm_mlx.engine_core.EngineCore.start() -&gt; None</code></td>
<td>Start the engine loop.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/engine_core.py#L116-L124">#L116-L124</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.engine_core.enginecore.stop method async vllm_mlx.engine_core.enginecore.stop() -&gt; none stop the engine loop.">
<td><a href="../api/vllm_mlx/engine_core/#contract-vllm_mlx.engine_core.EngineCore.stop"><code>vllm_mlx.engine_core.EngineCore.stop</code></a></td>
<td>method</td>
<td><code>async vllm_mlx.engine_core.EngineCore.stop() -&gt; None</code></td>
<td>Stop the engine loop.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/engine_core.py#L126-L140">#L126-L140</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.engine_core.enginecore.stream_outputs method async vllm_mlx.engine_core.enginecore.stream_outputs(request_id: str, timeout: optional[float] = none) -&gt; asynciterator[requestoutput] stream outputs for a request with low-latency non-blocking pattern.">
<td><a href="../api/vllm_mlx/engine_core/#contract-vllm_mlx.engine_core.EngineCore.stream_outputs"><code>vllm_mlx.engine_core.EngineCore.stream_outputs</code></a></td>
<td>method</td>
<td><code>async vllm_mlx.engine_core.EngineCore.stream_outputs(request_id: str, timeout: Optional[float] = None) -&gt; AsyncIterator[RequestOutput]</code></td>
<td>Stream outputs for a request with low-latency non-blocking pattern.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/engine_core.py#L401-L488">#L401-L488</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.gradio_app.build_message_content function vllm_mlx.gradio_app.build_message_content(text: str, files: list[str] | none = none) -&gt; list | str build openai-compatible message content with text and optional files.">
<td><a href="../api/vllm_mlx/gradio_app/#contract-vllm_mlx.gradio_app.build_message_content"><code>vllm_mlx.gradio_app.build_message_content</code></a></td>
<td>function</td>
<td><code>vllm_mlx.gradio_app.build_message_content(text: str, files: list[str] | None = None) -&gt; list | str</code></td>
<td>Build OpenAI-compatible message content with text and optional files.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/gradio_app.py#L79-L108">#L79-L108</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.gradio_app.create_chat_function function vllm_mlx.gradio_app.create_chat_function(server_url: str, max_tokens: int, temperature: float, served_model_name: str = &#x27;default&#x27;) -&gt; not annotated create the chat function for gradio chatinterface.">
<td><a href="../api/vllm_mlx/gradio_app/#contract-vllm_mlx.gradio_app.create_chat_function"><code>vllm_mlx.gradio_app.create_chat_function</code></a></td>
<td>function</td>
<td><code>vllm_mlx.gradio_app.create_chat_function(server_url: str, max_tokens: int, temperature: float, served_model_name: str = &#x27;default&#x27;) -&gt; not annotated</code></td>
<td>Create the chat function for Gradio ChatInterface.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/gradio_app.py#L111-L257">#L111-L257</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="nested function" data-symbol-search="vllm_mlx.gradio_app.create_chat_function.chat nested function vllm_mlx.gradio_app.create_chat_function.chat(message: dict, history: list) -&gt; str process a multimodal message and return response.">
<td><a href="../api/vllm_mlx/gradio_app/#contract-vllm_mlx.gradio_app.create_chat_function.chat"><code>vllm_mlx.gradio_app.create_chat_function.chat</code></a></td>
<td>nested function</td>
<td><code>vllm_mlx.gradio_app.create_chat_function.chat(message: dict, history: list) -&gt; str</code></td>
<td>Process a multimodal message and return response.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/gradio_app.py#L132-L255">#L132-L255</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.gradio_app.encode_file_to_base64 function vllm_mlx.gradio_app.encode_file_to_base64(file_path: str) -&gt; tuple[str, str] encode a file to base64 data url.">
<td><a href="../api/vllm_mlx/gradio_app/#contract-vllm_mlx.gradio_app.encode_file_to_base64"><code>vllm_mlx.gradio_app.encode_file_to_base64</code></a></td>
<td>function</td>
<td><code>vllm_mlx.gradio_app.encode_file_to_base64(file_path: str) -&gt; tuple[str, str]</code></td>
<td>Encode a file to base64 data URL.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/gradio_app.py#L33-L76">#L33-L76</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.gradio_app.main function vllm_mlx.gradio_app.main() -&gt; not annotated run the gradio app.">
<td><a href="../api/vllm_mlx/gradio_app/#contract-vllm_mlx.gradio_app.main"><code>vllm_mlx.gradio_app.main</code></a></td>
<td>function</td>
<td><code>vllm_mlx.gradio_app.main() -&gt; not annotated</code></td>
<td>Run the Gradio app.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/gradio_app.py#L260-L407">#L260-L407</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="nested function" data-symbol-search="vllm_mlx.gradio_app.main.text_chat nested function vllm_mlx.gradio_app.main.text_chat(message: str, history: list) -&gt; str process a text-only message.">
<td><a href="../api/vllm_mlx/gradio_app/#contract-vllm_mlx.gradio_app.main.text_chat"><code>vllm_mlx.gradio_app.main.text_chat</code></a></td>
<td>nested function</td>
<td><code>vllm_mlx.gradio_app.main.text_chat(message: str, history: list) -&gt; str</code></td>
<td>Process a text-only message.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/gradio_app.py#L331-L368">#L331-L368</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.gradio_text_app.create_chat_function function vllm_mlx.gradio_text_app.create_chat_function(server_url: str, max_tokens: int, temperature: float, served_model_name: str = &#x27;default&#x27;) -&gt; not annotated create the chat function for gradio chatinterface.">
<td><a href="../api/vllm_mlx/gradio_text_app/#contract-vllm_mlx.gradio_text_app.create_chat_function"><code>vllm_mlx.gradio_text_app.create_chat_function</code></a></td>
<td>function</td>
<td><code>vllm_mlx.gradio_text_app.create_chat_function(server_url: str, max_tokens: int, temperature: float, served_model_name: str = &#x27;default&#x27;) -&gt; not annotated</code></td>
<td>Create the chat function for Gradio ChatInterface.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/gradio_text_app.py#L34-L108">#L34-L108</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="nested function" data-symbol-search="vllm_mlx.gradio_text_app.create_chat_function.chat nested function vllm_mlx.gradio_text_app.create_chat_function.chat(message: str, history: list) -&gt; str process a text message and return response.">
<td><a href="../api/vllm_mlx/gradio_text_app/#contract-vllm_mlx.gradio_text_app.create_chat_function.chat"><code>vllm_mlx.gradio_text_app.create_chat_function.chat</code></a></td>
<td>nested function</td>
<td><code>vllm_mlx.gradio_text_app.create_chat_function.chat(message: str, history: list) -&gt; str</code></td>
<td>Process a text message and return response.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/gradio_text_app.py#L53-L106">#L53-L106</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.gradio_text_app.main function vllm_mlx.gradio_text_app.main() -&gt; not annotated run the gradio app.">
<td><a href="../api/vllm_mlx/gradio_text_app/#contract-vllm_mlx.gradio_text_app.main"><code>vllm_mlx.gradio_text_app.main</code></a></td>
<td>function</td>
<td><code>vllm_mlx.gradio_text_app.main() -&gt; not annotated</code></td>
<td>Run the Gradio app.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/gradio_text_app.py#L111-L201">#L111-L201</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="class" data-symbol-search="vllm_mlx.lifecycle.modelspec class vllm_mlx.lifecycle.modelspec(model_key: str, model_name: str, use_batching: bool = false, scheduler_config: any | none = none, stream_interval: int = 1, max_tokens: int = 32768, force_mllm: bool = false, mtp: bool = false, prefill_step_size: int = 2048, specprefill_enabled: bool = false, specprefill_threshold: int = 8192, specprefill_keep_pct: float = 0.3, specprefill_backbone_pct: float = 0.0, specprefill_draft_model: str | none = none) immutable engine construction inputs for a resident model.">
<td><a href="../api/vllm_mlx/lifecycle/#contract-vllm_mlx.lifecycle.ModelSpec"><code>vllm_mlx.lifecycle.ModelSpec</code></a></td>
<td>class</td>
<td><code>vllm_mlx.lifecycle.ModelSpec(model_key: str, model_name: str, use_batching: bool = False, scheduler_config: Any | None = None, stream_interval: int = 1, max_tokens: int = 32768, force_mllm: bool = False, mtp: bool = False, prefill_step_size: int = 2048, specprefill_enabled: bool = False, specprefill_threshold: int = 8192, specprefill_keep_pct: float = 0.3, specprefill_backbone_pct: float = 0.0, specprefill_draft_model: str | None = None)</code></td>
<td>Immutable engine construction inputs for a resident model.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/lifecycle.py#L28-L44">#L28-L44</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="class" data-symbol-search="vllm_mlx.lifecycle.residencymanager class vllm_mlx.lifecycle.residencymanager(engine_factory: callable[[modelspec], awaitable[baseengine]], *, on_engine_loaded: callable[[modelspec, baseengine], awaitable[none] | none] | none = none, on_engine_unloading: callable[[modelspec, baseengine], awaitable[none] | none] | none = none, time_fn: callable[[], float] | none = none, auto_unload_idle_seconds: float = 0) single-flight lifecycle manager for resident models.">
<td><a href="../api/vllm_mlx/lifecycle/#contract-vllm_mlx.lifecycle.ResidencyManager"><code>vllm_mlx.lifecycle.ResidencyManager</code></a></td>
<td>class</td>
<td><code>vllm_mlx.lifecycle.ResidencyManager(engine_factory: Callable[[ModelSpec], Awaitable[BaseEngine]], *, on_engine_loaded: Callable[[ModelSpec, BaseEngine], Awaitable[None] | None] | None = None, on_engine_unloading: Callable[[ModelSpec, BaseEngine], Awaitable[None] | None] | None = None, time_fn: Callable[[], float] | None = None, auto_unload_idle_seconds: float = 0)</code></td>
<td>Single-flight lifecycle manager for resident models.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/lifecycle.py#L69-L493">#L69-L493</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.lifecycle.residencymanager.__init__ method vllm_mlx.lifecycle.residencymanager.__init__(engine_factory: callable[[modelspec], awaitable[baseengine]], *, on_engine_loaded: callable[[modelspec, baseengine], awaitable[none] | none] | none = none, on_engine_unloading: callable[[modelspec, baseengine], awaitable[none] | none] | none = none, time_fn: callable[[], float] | none = none, auto_unload_idle_seconds: float = 0) -&gt; none method `residencymanager.__init__` updates `self._engine_factory`, `self._on_engine_loaded`, `self._on_engine_unloading`, `self._time_fn`; calls `__import__`, `asyncio.lock`.">
<td><a href="../api/vllm_mlx/lifecycle/#contract-vllm_mlx.lifecycle.ResidencyManager.__init__"><code>vllm_mlx.lifecycle.ResidencyManager.__init__</code></a></td>
<td>method</td>
<td><code>vllm_mlx.lifecycle.ResidencyManager.__init__(engine_factory: Callable[[ModelSpec], Awaitable[BaseEngine]], *, on_engine_loaded: Callable[[ModelSpec, BaseEngine], Awaitable[None] | None] | None = None, on_engine_unloading: Callable[[ModelSpec, BaseEngine], Awaitable[None] | None] | None = None, time_fn: Callable[[], float] | None = None, auto_unload_idle_seconds: float = 0) -&gt; None</code></td>
<td>Method `ResidencyManager.__init__` updates `self._engine_factory`, `self._on_engine_loaded`, `self._on_engine_unloading`, `self._time_fn`; calls `__import__`, `asyncio.Lock`.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/lifecycle.py#L72-L91">#L72-L91</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.lifecycle.residencymanager._cleanup_cancelled_load method async vllm_mlx.lifecycle.residencymanager._cleanup_cancelled_load(resident: residentmodel, engine: baseengine | none) -&gt; none stop a partially loaded engine and unwind resident state.">
<td><a href="../api/vllm_mlx/lifecycle/#contract-vllm_mlx.lifecycle.ResidencyManager._cleanup_cancelled_load"><code>vllm_mlx.lifecycle.ResidencyManager._cleanup_cancelled_load</code></a></td>
<td>method</td>
<td><code>async vllm_mlx.lifecycle.ResidencyManager._cleanup_cancelled_load(resident: ResidentModel, engine: BaseEngine | None) -&gt; None</code></td>
<td>Stop a partially loaded engine and unwind resident state.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/lifecycle.py#L447-L465">#L447-L465</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.lifecycle.residencymanager._load_engine method async vllm_mlx.lifecycle.residencymanager._load_engine(resident: residentmodel) -&gt; baseengine create and start a resident engine.">
<td><a href="../api/vllm_mlx/lifecycle/#contract-vllm_mlx.lifecycle.ResidencyManager._load_engine"><code>vllm_mlx.lifecycle.ResidencyManager._load_engine</code></a></td>
<td>method</td>
<td><code>async vllm_mlx.lifecycle.ResidencyManager._load_engine(resident: ResidentModel) -&gt; BaseEngine</code></td>
<td>Create and start a resident engine.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/lifecycle.py#L314-L354">#L314-L354</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.lifecycle.residencymanager._prepare_engine_start method async vllm_mlx.lifecycle.residencymanager._prepare_engine_start(resident: residentmodel, engine: baseengine) -&gt; none run blocking startup work away from the serving event loop.">
<td><a href="../api/vllm_mlx/lifecycle/#contract-vllm_mlx.lifecycle.ResidencyManager._prepare_engine_start"><code>vllm_mlx.lifecycle.ResidencyManager._prepare_engine_start</code></a></td>
<td>method</td>
<td><code>async vllm_mlx.lifecycle.ResidencyManager._prepare_engine_start(resident: ResidentModel, engine: BaseEngine) -&gt; None</code></td>
<td>Run blocking startup work away from the serving event loop.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/lifecycle.py#L409-L445">#L409-L445</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.lifecycle.residencymanager._release_load_waiter method async vllm_mlx.lifecycle.residencymanager._release_load_waiter(model_key: str, task: asyncio.task[baseengine]) -&gt; none drop one waiter from a shared load, canceling abandoned solo loads.">
<td><a href="../api/vllm_mlx/lifecycle/#contract-vllm_mlx.lifecycle.ResidencyManager._release_load_waiter"><code>vllm_mlx.lifecycle.ResidencyManager._release_load_waiter</code></a></td>
<td>method</td>
<td><code>async vllm_mlx.lifecycle.ResidencyManager._release_load_waiter(model_key: str, task: asyncio.Task[BaseEngine]) -&gt; None</code></td>
<td>Drop one waiter from a shared load, canceling abandoned solo loads.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/lifecycle.py#L467-L493">#L467-L493</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.lifecycle.residencymanager._resident method vllm_mlx.lifecycle.residencymanager._resident(model_key: str) -&gt; residentmodel method `residencymanager._resident` calls `keyerror`; can raise `keyerror`; returns `self._residents[model_key]`.">
<td><a href="../api/vllm_mlx/lifecycle/#contract-vllm_mlx.lifecycle.ResidencyManager._resident"><code>vllm_mlx.lifecycle.ResidencyManager._resident</code></a></td>
<td>method</td>
<td><code>vllm_mlx.lifecycle.ResidencyManager._resident(model_key: str) -&gt; ResidentModel</code></td>
<td>Method `ResidencyManager._resident` calls `KeyError`; can raise `KeyError`; returns `self._residents[model_key]`.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/lifecycle.py#L390-L394">#L390-L394</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.lifecycle.residencymanager._run_hook method async vllm_mlx.lifecycle.residencymanager._run_hook(hook: callable[[modelspec, baseengine], awaitable[none] | none] | none, spec: modelspec, engine: baseengine) -&gt; none method `residencymanager._run_hook` calls `hook`, `inspect.isawaitable`; awaits asynchronous work; returns `none`.">
<td><a href="../api/vllm_mlx/lifecycle/#contract-vllm_mlx.lifecycle.ResidencyManager._run_hook"><code>vllm_mlx.lifecycle.ResidencyManager._run_hook</code></a></td>
<td>method</td>
<td><code>async vllm_mlx.lifecycle.ResidencyManager._run_hook(hook: Callable[[ModelSpec, BaseEngine], Awaitable[None] | None] | None, spec: ModelSpec, engine: BaseEngine) -&gt; None</code></td>
<td>Method `ResidencyManager._run_hook` calls `hook`, `inspect.isawaitable`; awaits asynchronous work; returns `None`.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/lifecycle.py#L396-L407">#L396-L407</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.lifecycle.residencymanager._unload_engine method async vllm_mlx.lifecycle.residencymanager._unload_engine(resident: residentmodel) -&gt; bool stop and drop a resident engine.">
<td><a href="../api/vllm_mlx/lifecycle/#contract-vllm_mlx.lifecycle.ResidencyManager._unload_engine"><code>vllm_mlx.lifecycle.ResidencyManager._unload_engine</code></a></td>
<td>method</td>
<td><code>async vllm_mlx.lifecycle.ResidencyManager._unload_engine(resident: ResidentModel) -&gt; bool</code></td>
<td>Stop and drop a resident engine.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/lifecycle.py#L356-L388">#L356-L388</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.lifecycle.residencymanager.acquire method async vllm_mlx.lifecycle.residencymanager.acquire(model_key: str, *, count_activity: bool = true) -&gt; baseengine acquire a resident engine for request processing.">
<td><a href="../api/vllm_mlx/lifecycle/#contract-vllm_mlx.lifecycle.ResidencyManager.acquire"><code>vllm_mlx.lifecycle.ResidencyManager.acquire</code></a></td>
<td>method</td>
<td><code>async vllm_mlx.lifecycle.ResidencyManager.acquire(model_key: str, *, count_activity: bool = True) -&gt; BaseEngine</code></td>
<td>Acquire a resident engine for request processing.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/lifecycle.py#L186-L206">#L186-L206</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.lifecycle.residencymanager.ensure_loaded method async vllm_mlx.lifecycle.residencymanager.ensure_loaded(model_key: str) -&gt; baseengine load and start a resident engine if needed.">
<td><a href="../api/vllm_mlx/lifecycle/#contract-vllm_mlx.lifecycle.ResidencyManager.ensure_loaded"><code>vllm_mlx.lifecycle.ResidencyManager.ensure_loaded</code></a></td>
<td>method</td>
<td><code>async vllm_mlx.lifecycle.ResidencyManager.ensure_loaded(model_key: str) -&gt; BaseEngine</code></td>
<td>Load and start a resident engine if needed.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/lifecycle.py#L132-L184">#L132-L184</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.lifecycle.residencymanager.get_engine method vllm_mlx.lifecycle.residencymanager.get_engine(model_key: str) -&gt; baseengine | none get the currently loaded engine, if any.">
<td><a href="../api/vllm_mlx/lifecycle/#contract-vllm_mlx.lifecycle.ResidencyManager.get_engine"><code>vllm_mlx.lifecycle.ResidencyManager.get_engine</code></a></td>
<td>method</td>
<td><code>vllm_mlx.lifecycle.ResidencyManager.get_engine(model_key: str) -&gt; BaseEngine | None</code></td>
<td>Get the currently loaded engine, if any.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/lifecycle.py#L113-L115">#L113-L115</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.lifecycle.residencymanager.get_status method vllm_mlx.lifecycle.residencymanager.get_status(model_key: str) -&gt; dict[str, any] return a serializable snapshot of resident state.">
<td><a href="../api/vllm_mlx/lifecycle/#contract-vllm_mlx.lifecycle.ResidencyManager.get_status"><code>vllm_mlx.lifecycle.ResidencyManager.get_status</code></a></td>
<td>method</td>
<td><code>vllm_mlx.lifecycle.ResidencyManager.get_status(model_key: str) -&gt; dict[str, Any]</code></td>
<td>Return a serializable snapshot of resident state.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/lifecycle.py#L117-L130">#L117-L130</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.lifecycle.residencymanager.register_model method vllm_mlx.lifecycle.residencymanager.register_model(spec: modelspec) -&gt; str register a model spec, or replace a dormant resident entry.">
<td><a href="../api/vllm_mlx/lifecycle/#contract-vllm_mlx.lifecycle.ResidencyManager.register_model"><code>vllm_mlx.lifecycle.ResidencyManager.register_model</code></a></td>
<td>method</td>
<td><code>vllm_mlx.lifecycle.ResidencyManager.register_model(spec: ModelSpec) -&gt; str</code></td>
<td>Register a model spec, or replace a dormant resident entry.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/lifecycle.py#L93-L111">#L93-L111</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.lifecycle.residencymanager.release method async vllm_mlx.lifecycle.residencymanager.release(model_key: str, *, count_activity: bool = true) -&gt; none release a previously acquired resident engine.">
<td><a href="../api/vllm_mlx/lifecycle/#contract-vllm_mlx.lifecycle.ResidencyManager.release"><code>vllm_mlx.lifecycle.ResidencyManager.release</code></a></td>
<td>method</td>
<td><code>async vllm_mlx.lifecycle.ResidencyManager.release(model_key: str, *, count_activity: bool = True) -&gt; None</code></td>
<td>Release a previously acquired resident engine.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/lifecycle.py#L208-L215">#L208-L215</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.lifecycle.residencymanager.shutdown method async vllm_mlx.lifecycle.residencymanager.shutdown() -&gt; none stop all loaded residents.">
<td><a href="../api/vllm_mlx/lifecycle/#contract-vllm_mlx.lifecycle.ResidencyManager.shutdown"><code>vllm_mlx.lifecycle.ResidencyManager.shutdown</code></a></td>
<td>method</td>
<td><code>async vllm_mlx.lifecycle.ResidencyManager.shutdown() -&gt; None</code></td>
<td>Stop all loaded residents.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/lifecycle.py#L255-L312">#L255-L312</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.lifecycle.residencymanager.unload_if_idle method async vllm_mlx.lifecycle.residencymanager.unload_if_idle(model_key: str) -&gt; bool unload a resident engine if it has been idle past the threshold.">
<td><a href="../api/vllm_mlx/lifecycle/#contract-vllm_mlx.lifecycle.ResidencyManager.unload_if_idle"><code>vllm_mlx.lifecycle.ResidencyManager.unload_if_idle</code></a></td>
<td>method</td>
<td><code>async vllm_mlx.lifecycle.ResidencyManager.unload_if_idle(model_key: str) -&gt; bool</code></td>
<td>Unload a resident engine if it has been idle past the threshold.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/lifecycle.py#L217-L253">#L217-L253</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="class" data-symbol-search="vllm_mlx.lifecycle.residentmodel class vllm_mlx.lifecycle.residentmodel(spec: modelspec, state: residentstate = residentstate.unloaded, engine: baseengine | none = none, active_requests: int = 0, last_used_at: float | none = none, loaded_at: float | none = none, last_error: str | none = none, estimated_memory_bytes: int | none = none, _load_waiters: int = field(default=0, repr=false), _load_waiter_task: asyncio.task[baseengine] | none = field(default=none, repr=false), _prepare_task: asyncio.task[none] | none = field(default=none, repr=false), _abandoned_loading_task: asyncio.task[baseengine] | none = field(default=none, repr=false), _loading_task: asyncio.task[baseengine] | none = field(default=none, repr=false), _unloading_task: asyncio.task[bool] | none = field(default=none, repr=false)) runtime state for a single resident model.">
<td><a href="../api/vllm_mlx/lifecycle/#contract-vllm_mlx.lifecycle.ResidentModel"><code>vllm_mlx.lifecycle.ResidentModel</code></a></td>
<td>class</td>
<td><code>vllm_mlx.lifecycle.ResidentModel(spec: ModelSpec, state: ResidentState = ResidentState.UNLOADED, engine: BaseEngine | None = None, active_requests: int = 0, last_used_at: float | None = None, loaded_at: float | None = None, last_error: str | None = None, estimated_memory_bytes: int | None = None, _load_waiters: int = field(default=0, repr=False), _load_waiter_task: asyncio.Task[BaseEngine] | None = field(default=None, repr=False), _prepare_task: asyncio.Task[None] | None = field(default=None, repr=False), _abandoned_loading_task: asyncio.Task[BaseEngine] | None = field(default=None, repr=False), _loading_task: asyncio.Task[BaseEngine] | None = field(default=None, repr=False), _unloading_task: asyncio.Task[bool] | None = field(default=None, repr=False))</code></td>
<td>Runtime state for a single resident model.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/lifecycle.py#L48-L66">#L48-L66</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="class" data-symbol-search="vllm_mlx.lifecycle.residentstate class vllm_mlx.lifecycle.residentstate() runtime residency state for a configured model.">
<td><a href="../api/vllm_mlx/lifecycle/#contract-vllm_mlx.lifecycle.ResidentState"><code>vllm_mlx.lifecycle.ResidentState</code></a></td>
<td>class</td>
<td><code>vllm_mlx.lifecycle.ResidentState()</code></td>
<td>Runtime residency state for a configured model.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/lifecycle.py#L17-L24">#L17-L24</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="class" data-symbol-search="vllm_mlx.mcp.client.mcpclient class vllm_mlx.mcp.client.mcpclient(config: mcpserverconfig) client for connecting to a single mcp server.">
<td><a href="../api/vllm_mlx/mcp/client/#contract-vllm_mlx.mcp.client.MCPClient"><code>vllm_mlx.mcp.client.MCPClient</code></a></td>
<td>class</td>
<td><code>vllm_mlx.mcp.client.MCPClient(config: MCPServerConfig)</code></td>
<td>Client for connecting to a single MCP server.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/mcp/client.py#L23-L328">#L23-L328</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.mcp.client.mcpclient.__init__ method vllm_mlx.mcp.client.mcpclient.__init__(config: mcpserverconfig) -&gt; not annotated initialize mcp client.">
<td><a href="../api/vllm_mlx/mcp/client/#contract-vllm_mlx.mcp.client.MCPClient.__init__"><code>vllm_mlx.mcp.client.MCPClient.__init__</code></a></td>
<td>method</td>
<td><code>vllm_mlx.mcp.client.MCPClient.__init__(config: MCPServerConfig) -&gt; not annotated</code></td>
<td>Initialize MCP client.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/mcp/client.py#L30-L45">#L30-L45</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.mcp.client.mcpclient._connect_sse method async vllm_mlx.mcp.client.mcpclient._connect_sse() -&gt; not annotated connect via sse transport.">
<td><a href="../api/vllm_mlx/mcp/client/#contract-vllm_mlx.mcp.client.MCPClient._connect_sse"><code>vllm_mlx.mcp.client.MCPClient._connect_sse</code></a></td>
<td>method</td>
<td><code>async vllm_mlx.mcp.client.MCPClient._connect_sse() -&gt; not annotated</code></td>
<td>Connect via SSE transport.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/mcp/client.py#L154-L170">#L154-L170</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.mcp.client.mcpclient._connect_stdio method async vllm_mlx.mcp.client.mcpclient._connect_stdio() -&gt; not annotated connect via stdio transport.">
<td><a href="../api/vllm_mlx/mcp/client/#contract-vllm_mlx.mcp.client.MCPClient._connect_stdio"><code>vllm_mlx.mcp.client.MCPClient._connect_stdio</code></a></td>
<td>method</td>
<td><code>async vllm_mlx.mcp.client.MCPClient._connect_stdio() -&gt; not annotated</code></td>
<td>Connect via stdio transport.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/mcp/client.py#L124-L152">#L124-L152</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.mcp.client.mcpclient._discover_tools method async vllm_mlx.mcp.client.mcpclient._discover_tools() -&gt; not annotated discover available tools from the server.">
<td><a href="../api/vllm_mlx/mcp/client/#contract-vllm_mlx.mcp.client.MCPClient._discover_tools"><code>vllm_mlx.mcp.client.MCPClient._discover_tools</code></a></td>
<td>method</td>
<td><code>async vllm_mlx.mcp.client.MCPClient._discover_tools() -&gt; not annotated</code></td>
<td>Discover available tools from the server.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/mcp/client.py#L185-L208">#L185-L208</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.mcp.client.mcpclient._extract_content method vllm_mlx.mcp.client.mcpclient._extract_content(result) -&gt; any extract content from mcp tool result.">
<td><a href="../api/vllm_mlx/mcp/client/#contract-vllm_mlx.mcp.client.MCPClient._extract_content"><code>vllm_mlx.mcp.client.MCPClient._extract_content</code></a></td>
<td>method</td>
<td><code>vllm_mlx.mcp.client.MCPClient._extract_content(result) -&gt; Any</code></td>
<td>Extract content from MCP tool result.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/mcp/client.py#L303-L321">#L303-L321</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.mcp.client.mcpclient._initialize_session method async vllm_mlx.mcp.client.mcpclient._initialize_session() -&gt; not annotated initialize the mcp session.">
<td><a href="../api/vllm_mlx/mcp/client/#contract-vllm_mlx.mcp.client.MCPClient._initialize_session"><code>vllm_mlx.mcp.client.MCPClient._initialize_session</code></a></td>
<td>method</td>
<td><code>async vllm_mlx.mcp.client.MCPClient._initialize_session() -&gt; not annotated</code></td>
<td>Initialize the MCP session.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/mcp/client.py#L172-L183">#L172-L183</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.mcp.client.mcpclient.call_tool method async vllm_mlx.mcp.client.mcpclient.call_tool(tool_name: str, arguments: dict[str, any], timeout: optional[float] = none) -&gt; mcptoolresult call a tool on the mcp server.">
<td><a href="../api/vllm_mlx/mcp/client/#contract-vllm_mlx.mcp.client.MCPClient.call_tool"><code>vllm_mlx.mcp.client.MCPClient.call_tool</code></a></td>
<td>method</td>
<td><code>async vllm_mlx.mcp.client.MCPClient.call_tool(tool_name: str, arguments: Dict[str, Any], timeout: Optional[float] = None) -&gt; MCPToolResult</code></td>
<td>Call a tool on the MCP server.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/mcp/client.py#L237-L301">#L237-L301</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.mcp.client.mcpclient.connect method async vllm_mlx.mcp.client.mcpclient.connect() -&gt; bool connect to the mcp server.">
<td><a href="../api/vllm_mlx/mcp/client/#contract-vllm_mlx.mcp.client.MCPClient.connect"><code>vllm_mlx.mcp.client.MCPClient.connect</code></a></td>
<td>method</td>
<td><code>async vllm_mlx.mcp.client.MCPClient.connect() -&gt; bool</code></td>
<td>Connect to the MCP server.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/mcp/client.py#L78-L122">#L78-L122</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.mcp.client.mcpclient.disconnect method async vllm_mlx.mcp.client.mcpclient.disconnect() -&gt; not annotated disconnect from the mcp server.">
<td><a href="../api/vllm_mlx/mcp/client/#contract-vllm_mlx.mcp.client.MCPClient.disconnect"><code>vllm_mlx.mcp.client.MCPClient.disconnect</code></a></td>
<td>method</td>
<td><code>async vllm_mlx.mcp.client.MCPClient.disconnect() -&gt; not annotated</code></td>
<td>Disconnect from the MCP server.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/mcp/client.py#L210-L235">#L210-L235</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.mcp.client.mcpclient.get_status method vllm_mlx.mcp.client.mcpclient.get_status() -&gt; mcpserverstatus get server status.">
<td><a href="../api/vllm_mlx/mcp/client/#contract-vllm_mlx.mcp.client.MCPClient.get_status"><code>vllm_mlx.mcp.client.MCPClient.get_status</code></a></td>
<td>method</td>
<td><code>vllm_mlx.mcp.client.MCPClient.get_status() -&gt; MCPServerStatus</code></td>
<td>Get server status.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/mcp/client.py#L67-L76">#L67-L76</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.mcp.client.mcpclient.is_connected method vllm_mlx.mcp.client.mcpclient.is_connected() -&gt; bool check if connected to server.">
<td><a href="../api/vllm_mlx/mcp/client/#contract-vllm_mlx.mcp.client.MCPClient.is_connected"><code>vllm_mlx.mcp.client.MCPClient.is_connected</code></a></td>
<td>method</td>
<td><code>vllm_mlx.mcp.client.MCPClient.is_connected() -&gt; bool</code></td>
<td>Check if connected to server.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/mcp/client.py#L58-L60">#L58-L60</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.mcp.client.mcpclient.name method vllm_mlx.mcp.client.mcpclient.name() -&gt; str get server name.">
<td><a href="../api/vllm_mlx/mcp/client/#contract-vllm_mlx.mcp.client.MCPClient.name"><code>vllm_mlx.mcp.client.MCPClient.name</code></a></td>
<td>method</td>
<td><code>vllm_mlx.mcp.client.MCPClient.name() -&gt; str</code></td>
<td>Get server name.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/mcp/client.py#L48-L50">#L48-L50</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.mcp.client.mcpclient.refresh_tools method async vllm_mlx.mcp.client.mcpclient.refresh_tools() -&gt; not annotated refresh the list of available tools.">
<td><a href="../api/vllm_mlx/mcp/client/#contract-vllm_mlx.mcp.client.MCPClient.refresh_tools"><code>vllm_mlx.mcp.client.MCPClient.refresh_tools</code></a></td>
<td>method</td>
<td><code>async vllm_mlx.mcp.client.MCPClient.refresh_tools() -&gt; not annotated</code></td>
<td>Refresh the list of available tools.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/mcp/client.py#L323-L328">#L323-L328</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.mcp.client.mcpclient.state method vllm_mlx.mcp.client.mcpclient.state() -&gt; mcpserverstate get current connection state.">
<td><a href="../api/vllm_mlx/mcp/client/#contract-vllm_mlx.mcp.client.MCPClient.state"><code>vllm_mlx.mcp.client.MCPClient.state</code></a></td>
<td>method</td>
<td><code>vllm_mlx.mcp.client.MCPClient.state() -&gt; MCPServerState</code></td>
<td>Get current connection state.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/mcp/client.py#L53-L55">#L53-L55</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.mcp.client.mcpclient.tools method vllm_mlx.mcp.client.mcpclient.tools() -&gt; list[mcptool] get discovered tools.">
<td><a href="../api/vllm_mlx/mcp/client/#contract-vllm_mlx.mcp.client.MCPClient.tools"><code>vllm_mlx.mcp.client.MCPClient.tools</code></a></td>
<td>method</td>
<td><code>vllm_mlx.mcp.client.MCPClient.tools() -&gt; List[MCPTool]</code></td>
<td>Get discovered tools.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/mcp/client.py#L63-L65">#L63-L65</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.mcp.config._find_config_file function vllm_mlx.mcp.config._find_config_file(explicit_path: optional[union[str, path]] = none) -&gt; optional[path] find the config file to use.">
<td><a href="../api/vllm_mlx/mcp/config/#contract-vllm_mlx.mcp.config._find_config_file"><code>vllm_mlx.mcp.config._find_config_file</code></a></td>
<td>function</td>
<td><code>vllm_mlx.mcp.config._find_config_file(explicit_path: Optional[Union[str, Path]] = None) -&gt; Optional[Path]</code></td>
<td>Find the config file to use.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/mcp/config.py#L73-L98">#L73-L98</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.mcp.config.create_example_config function vllm_mlx.mcp.config.create_example_config() -&gt; str create an example mcp configuration.">
<td><a href="../api/vllm_mlx/mcp/config/#contract-vllm_mlx.mcp.config.create_example_config"><code>vllm_mlx.mcp.config.create_example_config</code></a></td>
<td>function</td>
<td><code>vllm_mlx.mcp.config.create_example_config() -&gt; str</code></td>
<td>Create an example MCP configuration.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/mcp/config.py#L166-L199">#L166-L199</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.mcp.config.load_mcp_config function vllm_mlx.mcp.config.load_mcp_config(path: optional[union[str, path]] = none) -&gt; mcpconfig load mcp configuration from file.">
<td><a href="../api/vllm_mlx/mcp/config/#contract-vllm_mlx.mcp.config.load_mcp_config"><code>vllm_mlx.mcp.config.load_mcp_config</code></a></td>
<td>function</td>
<td><code>vllm_mlx.mcp.config.load_mcp_config(path: Optional[Union[str, Path]] = None) -&gt; MCPConfig</code></td>
<td>Load MCP configuration from file.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/mcp/config.py#L26-L70">#L26-L70</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.mcp.config.validate_config function vllm_mlx.mcp.config.validate_config(data: dict[str, any]) -&gt; mcpconfig validate and parse configuration dictionary.">
<td><a href="../api/vllm_mlx/mcp/config/#contract-vllm_mlx.mcp.config.validate_config"><code>vllm_mlx.mcp.config.validate_config</code></a></td>
<td>function</td>
<td><code>vllm_mlx.mcp.config.validate_config(data: Dict[str, Any]) -&gt; MCPConfig</code></td>
<td>Validate and parse configuration dictionary.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/mcp/config.py#L101-L163">#L101-L163</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.mcp.executor.execute_single_tool function async vllm_mlx.mcp.executor.execute_single_tool(manager: mcpclientmanager, tool_name: str, arguments: dict[str, any], timeout: optional[float] = none) -&gt; mcptoolresult convenience function to execute a single tool.">
<td><a href="../api/vllm_mlx/mcp/executor/#contract-vllm_mlx.mcp.executor.execute_single_tool"><code>vllm_mlx.mcp.executor.execute_single_tool</code></a></td>
<td>function</td>
<td><code>async vllm_mlx.mcp.executor.execute_single_tool(manager: MCPClientManager, tool_name: str, arguments: Dict[str, Any], timeout: Optional[float] = None) -&gt; MCPToolResult</code></td>
<td>Convenience function to execute a single tool.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/mcp/executor.py#L482-L500">#L482-L500</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="class" data-symbol-search="vllm_mlx.mcp.executor.toolargumentvalidationerror class vllm_mlx.mcp.executor.toolargumentvalidationerror() raised when tool arguments fail validation against schema.">
<td><a href="../api/vllm_mlx/mcp/executor/#contract-vllm_mlx.mcp.executor.ToolArgumentValidationError"><code>vllm_mlx.mcp.executor.ToolArgumentValidationError</code></a></td>
<td>class</td>
<td><code>vllm_mlx.mcp.executor.ToolArgumentValidationError()</code></td>
<td>Raised when tool arguments fail validation against schema.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/mcp/executor.py#L22-L25">#L22-L25</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="class" data-symbol-search="vllm_mlx.mcp.executor.toolexecutor class vllm_mlx.mcp.executor.toolexecutor(manager: mcpclientmanager, max_parallel: int = 5, default_timeout: optional[float] = none, validate_arguments: bool = true, sandbox: optional[toolsandbox] = none) handles execution of tool calls from model responses.">
<td><a href="../api/vllm_mlx/mcp/executor/#contract-vllm_mlx.mcp.executor.ToolExecutor"><code>vllm_mlx.mcp.executor.ToolExecutor</code></a></td>
<td>class</td>
<td><code>vllm_mlx.mcp.executor.ToolExecutor(manager: MCPClientManager, max_parallel: int = 5, default_timeout: Optional[float] = None, validate_arguments: bool = True, sandbox: Optional[ToolSandbox] = None)</code></td>
<td>Handles execution of tool calls from model responses.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/mcp/executor.py#L64-L479">#L64-L479</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.mcp.executor.toolexecutor.__init__ method vllm_mlx.mcp.executor.toolexecutor.__init__(manager: mcpclientmanager, max_parallel: int = 5, default_timeout: optional[float] = none, validate_arguments: bool = true, sandbox: optional[toolsandbox] = none) -&gt; not annotated initialize tool executor.">
<td><a href="../api/vllm_mlx/mcp/executor/#contract-vllm_mlx.mcp.executor.ToolExecutor.__init__"><code>vllm_mlx.mcp.executor.ToolExecutor.__init__</code></a></td>
<td>method</td>
<td><code>vllm_mlx.mcp.executor.ToolExecutor.__init__(manager: MCPClientManager, max_parallel: int = 5, default_timeout: Optional[float] = None, validate_arguments: bool = True, sandbox: Optional[ToolSandbox] = None) -&gt; not annotated</code></td>
<td>Initialize tool executor.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/mcp/executor.py#L75-L97">#L75-L97</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.mcp.executor.toolexecutor._execute_parallel method async vllm_mlx.mcp.executor.toolexecutor._execute_parallel(tool_calls: list[dict[str, any]]) -&gt; list[tuple[mcptoolresult, str]] execute tool calls in parallel with concurrency limit.">
<td><a href="../api/vllm_mlx/mcp/executor/#contract-vllm_mlx.mcp.executor.ToolExecutor._execute_parallel"><code>vllm_mlx.mcp.executor.ToolExecutor._execute_parallel</code></a></td>
<td>method</td>
<td><code>async vllm_mlx.mcp.executor.ToolExecutor._execute_parallel(tool_calls: List[Dict[str, Any]]) -&gt; List[Tuple[MCPToolResult, str]]</code></td>
<td>Execute tool calls in parallel with concurrency limit.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/mcp/executor.py#L195-L305">#L195-L305</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="nested function" data-symbol-search="vllm_mlx.mcp.executor.toolexecutor._execute_parallel.execute_with_semaphore nested function async vllm_mlx.mcp.executor.toolexecutor._execute_parallel.execute_with_semaphore(tool_call: dict[str, any]) -&gt; not annotated nested function `toolexecutor._execute_parallel.execute_with_semaphore` calls `tool_call.get`, `func.get`, `isinstance`, `json.loads`; awaits asynchronous work; has 3 explicit return paths.">
<td><a href="../api/vllm_mlx/mcp/executor/#contract-vllm_mlx.mcp.executor.ToolExecutor._execute_parallel.execute_with_semaphore"><code>vllm_mlx.mcp.executor.ToolExecutor._execute_parallel.execute_with_semaphore</code></a></td>
<td>nested function</td>
<td><code>async vllm_mlx.mcp.executor.ToolExecutor._execute_parallel.execute_with_semaphore(tool_call: Dict[str, Any]) -&gt; not annotated</code></td>
<td>Nested Function `ToolExecutor._execute_parallel.execute_with_semaphore` calls `tool_call.get`, `func.get`, `isinstance`, `json.loads`; awaits asynchronous work; has 3 explicit return paths.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/mcp/executor.py#L202-L281">#L202-L281</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.mcp.executor.toolexecutor._execute_sequential method async vllm_mlx.mcp.executor.toolexecutor._execute_sequential(tool_calls: list[dict[str, any]]) -&gt; list[tuple[mcptoolresult, str]] execute tool calls sequentially.">
<td><a href="../api/vllm_mlx/mcp/executor/#contract-vllm_mlx.mcp.executor.ToolExecutor._execute_sequential"><code>vllm_mlx.mcp.executor.ToolExecutor._execute_sequential</code></a></td>
<td>method</td>
<td><code>async vllm_mlx.mcp.executor.ToolExecutor._execute_sequential(tool_calls: List[Dict[str, Any]]) -&gt; List[Tuple[MCPToolResult, str]]</code></td>
<td>Execute tool calls sequentially.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/mcp/executor.py#L307-L415">#L307-L415</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.mcp.executor.toolexecutor._get_server_for_tool method vllm_mlx.mcp.executor.toolexecutor._get_server_for_tool(full_name: str) -&gt; str extract server name from full tool name or find it.">
<td><a href="../api/vllm_mlx/mcp/executor/#contract-vllm_mlx.mcp.executor.ToolExecutor._get_server_for_tool"><code>vllm_mlx.mcp.executor.ToolExecutor._get_server_for_tool</code></a></td>
<td>method</td>
<td><code>vllm_mlx.mcp.executor.ToolExecutor._get_server_for_tool(full_name: str) -&gt; str</code></td>
<td>Extract server name from full tool name or find it.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/mcp/executor.py#L185-L193">#L185-L193</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.mcp.executor.toolexecutor._get_tool_by_name method vllm_mlx.mcp.executor.toolexecutor._get_tool_by_name(full_name: str) -&gt; optional[mcptool] get a tool by its full name (server__tool or just tool).">
<td><a href="../api/vllm_mlx/mcp/executor/#contract-vllm_mlx.mcp.executor.ToolExecutor._get_tool_by_name"><code>vllm_mlx.mcp.executor.ToolExecutor._get_tool_by_name</code></a></td>
<td>method</td>
<td><code>vllm_mlx.mcp.executor.ToolExecutor._get_tool_by_name(full_name: str) -&gt; Optional[MCPTool]</code></td>
<td>Get a tool by its full name (server__tool or just tool).</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/mcp/executor.py#L122-L132">#L122-L132</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.mcp.executor.toolexecutor._tool_exists method vllm_mlx.mcp.executor.toolexecutor._tool_exists(full_name: str) -&gt; bool check if a tool exists in any connected server.">
<td><a href="../api/vllm_mlx/mcp/executor/#contract-vllm_mlx.mcp.executor.ToolExecutor._tool_exists"><code>vllm_mlx.mcp.executor.ToolExecutor._tool_exists</code></a></td>
<td>method</td>
<td><code>vllm_mlx.mcp.executor.ToolExecutor._tool_exists(full_name: str) -&gt; bool</code></td>
<td>Check if a tool exists in any connected server.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/mcp/executor.py#L466-L479">#L466-L479</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.mcp.executor.toolexecutor._validate_sandbox method vllm_mlx.mcp.executor.toolexecutor._validate_sandbox(tool_name: str, server_name: str, arguments: dict[str, any]) -&gt; optional[str] validate tool execution against sandbox policy.">
<td><a href="../api/vllm_mlx/mcp/executor/#contract-vllm_mlx.mcp.executor.ToolExecutor._validate_sandbox"><code>vllm_mlx.mcp.executor.ToolExecutor._validate_sandbox</code></a></td>
<td>method</td>
<td><code>vllm_mlx.mcp.executor.ToolExecutor._validate_sandbox(tool_name: str, server_name: str, arguments: Dict[str, Any]) -&gt; Optional[str]</code></td>
<td>Validate tool execution against sandbox policy.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/mcp/executor.py#L167-L183">#L167-L183</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.mcp.executor.toolexecutor._validate_tool_call method vllm_mlx.mcp.executor.toolexecutor._validate_tool_call(tool_call: dict[str, any]) -&gt; optional[str] validate a tool call&#x27;s arguments against the tool&#x27;s schema.">
<td><a href="../api/vllm_mlx/mcp/executor/#contract-vllm_mlx.mcp.executor.ToolExecutor._validate_tool_call"><code>vllm_mlx.mcp.executor.ToolExecutor._validate_tool_call</code></a></td>
<td>method</td>
<td><code>vllm_mlx.mcp.executor.ToolExecutor._validate_tool_call(tool_call: Dict[str, Any]) -&gt; Optional[str]</code></td>
<td>Validate a tool call&#x27;s arguments against the tool&#x27;s schema.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/mcp/executor.py#L134-L165">#L134-L165</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.mcp.executor.toolexecutor.execute_and_format method async vllm_mlx.mcp.executor.toolexecutor.execute_and_format(tool_calls: list[dict[str, any]], parallel: bool = true) -&gt; list[dict[str, any]] execute tool calls and format results as messages.">
<td><a href="../api/vllm_mlx/mcp/executor/#contract-vllm_mlx.mcp.executor.ToolExecutor.execute_and_format"><code>vllm_mlx.mcp.executor.ToolExecutor.execute_and_format</code></a></td>
<td>method</td>
<td><code>async vllm_mlx.mcp.executor.ToolExecutor.execute_and_format(tool_calls: List[Dict[str, Any]], parallel: bool = True) -&gt; List[Dict[str, Any]]</code></td>
<td>Execute tool calls and format results as messages.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/mcp/executor.py#L417-L433">#L417-L433</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.mcp.executor.toolexecutor.execute_tool_calls method async vllm_mlx.mcp.executor.toolexecutor.execute_tool_calls(tool_calls: list[dict[str, any]], parallel: bool = true) -&gt; list[tuple[mcptoolresult, str]] execute multiple tool calls.">
<td><a href="../api/vllm_mlx/mcp/executor/#contract-vllm_mlx.mcp.executor.ToolExecutor.execute_tool_calls"><code>vllm_mlx.mcp.executor.ToolExecutor.execute_tool_calls</code></a></td>
<td>method</td>
<td><code>async vllm_mlx.mcp.executor.ToolExecutor.execute_tool_calls(tool_calls: List[Dict[str, Any]], parallel: bool = True) -&gt; List[Tuple[MCPToolResult, str]]</code></td>
<td>Execute multiple tool calls.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/mcp/executor.py#L99-L120">#L99-L120</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.mcp.executor.toolexecutor.extract_and_validate method vllm_mlx.mcp.executor.toolexecutor.extract_and_validate(response: dict[str, any]) -&gt; tuple[list[dict[str, any]], bool] extract tool calls from response and validate them.">
<td><a href="../api/vllm_mlx/mcp/executor/#contract-vllm_mlx.mcp.executor.ToolExecutor.extract_and_validate"><code>vllm_mlx.mcp.executor.ToolExecutor.extract_and_validate</code></a></td>
<td>method</td>
<td><code>vllm_mlx.mcp.executor.ToolExecutor.extract_and_validate(response: Dict[str, Any]) -&gt; Tuple[List[Dict[str, Any]], bool]</code></td>
<td>Extract tool calls from response and validate them.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/mcp/executor.py#L435-L464">#L435-L464</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.mcp.executor.validate_tool_arguments function vllm_mlx.mcp.executor.validate_tool_arguments(tool: mcptool, arguments: dict[str, any], strict: bool = true) -&gt; none validate tool arguments against the tool&#x27;s input schema.">
<td><a href="../api/vllm_mlx/mcp/executor/#contract-vllm_mlx.mcp.executor.validate_tool_arguments"><code>vllm_mlx.mcp.executor.validate_tool_arguments</code></a></td>
<td>function</td>
<td><code>vllm_mlx.mcp.executor.validate_tool_arguments(tool: MCPTool, arguments: Dict[str, Any], strict: bool = True) -&gt; None</code></td>
<td>Validate tool arguments against the tool&#x27;s input schema.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/mcp/executor.py#L28-L61">#L28-L61</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="class" data-symbol-search="vllm_mlx.mcp.manager.mcpclientmanager class vllm_mlx.mcp.manager.mcpclientmanager(config: mcpconfig) manages multiple mcp server connections.">
<td><a href="../api/vllm_mlx/mcp/manager/#contract-vllm_mlx.mcp.manager.MCPClientManager"><code>vllm_mlx.mcp.manager.MCPClientManager</code></a></td>
<td>class</td>
<td><code>vllm_mlx.mcp.manager.MCPClientManager(config: MCPConfig)</code></td>
<td>Manages multiple MCP server connections.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/mcp/manager.py#L22-L301">#L22-L301</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.mcp.manager.mcpclientmanager.__init__ method vllm_mlx.mcp.manager.mcpclientmanager.__init__(config: mcpconfig) -&gt; not annotated initialize mcp client manager.">
<td><a href="../api/vllm_mlx/mcp/manager/#contract-vllm_mlx.mcp.manager.MCPClientManager.__init__"><code>vllm_mlx.mcp.manager.MCPClientManager.__init__</code></a></td>
<td>method</td>
<td><code>vllm_mlx.mcp.manager.MCPClientManager.__init__(config: MCPConfig) -&gt; not annotated</code></td>
<td>Initialize MCP Client Manager.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/mcp/manager.py#L33-L47">#L33-L47</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.mcp.manager.mcpclientmanager._find_tool_server method vllm_mlx.mcp.manager.mcpclientmanager._find_tool_server(tool_name: str) -&gt; optional[str] find which server has a tool by name.">
<td><a href="../api/vllm_mlx/mcp/manager/#contract-vllm_mlx.mcp.manager.MCPClientManager._find_tool_server"><code>vllm_mlx.mcp.manager.MCPClientManager._find_tool_server</code></a></td>
<td>method</td>
<td><code>vllm_mlx.mcp.manager.MCPClientManager._find_tool_server(tool_name: str) -&gt; Optional[str]</code></td>
<td>Find which server has a tool by name.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/mcp/manager.py#L258-L273">#L258-L273</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.mcp.manager.mcpclientmanager.execute_tool method async vllm_mlx.mcp.manager.mcpclientmanager.execute_tool(full_name: str, arguments: dict[str, any], timeout: optional[float] = none) -&gt; mcptoolresult execute a tool by its full name (server__tool).">
<td><a href="../api/vllm_mlx/mcp/manager/#contract-vllm_mlx.mcp.manager.MCPClientManager.execute_tool"><code>vllm_mlx.mcp.manager.MCPClientManager.execute_tool</code></a></td>
<td>method</td>
<td><code>async vllm_mlx.mcp.manager.MCPClientManager.execute_tool(full_name: str, arguments: Dict[str, Any], timeout: Optional[float] = None) -&gt; MCPToolResult</code></td>
<td>Execute a tool by its full name (server__tool).</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/mcp/manager.py#L174-L232">#L174-L232</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.mcp.manager.mcpclientmanager.execute_tool_call method async vllm_mlx.mcp.manager.mcpclientmanager.execute_tool_call(tool_call: dict[str, any], timeout: optional[float] = none) -&gt; mcptoolresult execute a tool call from openai format.">
<td><a href="../api/vllm_mlx/mcp/manager/#contract-vllm_mlx.mcp.manager.MCPClientManager.execute_tool_call"><code>vllm_mlx.mcp.manager.MCPClientManager.execute_tool_call</code></a></td>
<td>method</td>
<td><code>async vllm_mlx.mcp.manager.MCPClientManager.execute_tool_call(tool_call: Dict[str, Any], timeout: Optional[float] = None) -&gt; MCPToolResult</code></td>
<td>Execute a tool call from OpenAI format.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/mcp/manager.py#L234-L256">#L234-L256</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.mcp.manager.mcpclientmanager.get_all_tools method vllm_mlx.mcp.manager.mcpclientmanager.get_all_tools() -&gt; list[mcptool] get all tools from all connected servers.">
<td><a href="../api/vllm_mlx/mcp/manager/#contract-vllm_mlx.mcp.manager.MCPClientManager.get_all_tools"><code>vllm_mlx.mcp.manager.MCPClientManager.get_all_tools</code></a></td>
<td>method</td>
<td><code>vllm_mlx.mcp.manager.MCPClientManager.get_all_tools() -&gt; List[MCPTool]</code></td>
<td>Get all tools from all connected servers.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/mcp/manager.py#L114-L125">#L114-L125</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.mcp.manager.mcpclientmanager.get_all_tools_openai method vllm_mlx.mcp.manager.mcpclientmanager.get_all_tools_openai() -&gt; list[dict[str, any]] get all tools in openai function calling format.">
<td><a href="../api/vllm_mlx/mcp/manager/#contract-vllm_mlx.mcp.manager.MCPClientManager.get_all_tools_openai"><code>vllm_mlx.mcp.manager.MCPClientManager.get_all_tools_openai</code></a></td>
<td>method</td>
<td><code>vllm_mlx.mcp.manager.MCPClientManager.get_all_tools_openai() -&gt; List[Dict[str, Any]]</code></td>
<td>Get all tools in OpenAI function calling format.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/mcp/manager.py#L127-L134">#L127-L134</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.mcp.manager.mcpclientmanager.get_client method vllm_mlx.mcp.manager.mcpclientmanager.get_client(server_name: str) -&gt; optional[mcpclient] get client for a specific server.">
<td><a href="../api/vllm_mlx/mcp/manager/#contract-vllm_mlx.mcp.manager.MCPClientManager.get_client"><code>vllm_mlx.mcp.manager.MCPClientManager.get_client</code></a></td>
<td>method</td>
<td><code>vllm_mlx.mcp.manager.MCPClientManager.get_client(server_name: str) -&gt; Optional[MCPClient]</code></td>
<td>Get client for a specific server.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/mcp/manager.py#L162-L172">#L162-L172</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.mcp.manager.mcpclientmanager.get_merged_tools method vllm_mlx.mcp.manager.mcpclientmanager.get_merged_tools(user_tools: optional[list[dict[str, any]]] = none) -&gt; list[dict[str, any]] get mcp tools merged with user-provided tools.">
<td><a href="../api/vllm_mlx/mcp/manager/#contract-vllm_mlx.mcp.manager.MCPClientManager.get_merged_tools"><code>vllm_mlx.mcp.manager.MCPClientManager.get_merged_tools</code></a></td>
<td>method</td>
<td><code>vllm_mlx.mcp.manager.MCPClientManager.get_merged_tools(user_tools: Optional[List[Dict[str, Any]]] = None) -&gt; List[Dict[str, Any]]</code></td>
<td>Get MCP tools merged with user-provided tools.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/mcp/manager.py#L136-L151">#L136-L151</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.mcp.manager.mcpclientmanager.get_server_status method vllm_mlx.mcp.manager.mcpclientmanager.get_server_status() -&gt; list[mcpserverstatus] get status of all servers.">
<td><a href="../api/vllm_mlx/mcp/manager/#contract-vllm_mlx.mcp.manager.MCPClientManager.get_server_status"><code>vllm_mlx.mcp.manager.MCPClientManager.get_server_status</code></a></td>
<td>method</td>
<td><code>vllm_mlx.mcp.manager.MCPClientManager.get_server_status() -&gt; List[MCPServerStatus]</code></td>
<td>Get status of all servers.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/mcp/manager.py#L153-L160">#L153-L160</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.mcp.manager.mcpclientmanager.is_started method vllm_mlx.mcp.manager.mcpclientmanager.is_started() -&gt; bool check if manager has been started.">
<td><a href="../api/vllm_mlx/mcp/manager/#contract-vllm_mlx.mcp.manager.MCPClientManager.is_started"><code>vllm_mlx.mcp.manager.MCPClientManager.is_started</code></a></td>
<td>method</td>
<td><code>vllm_mlx.mcp.manager.MCPClientManager.is_started() -&gt; bool</code></td>
<td>Check if manager has been started.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/mcp/manager.py#L50-L52">#L50-L52</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.mcp.manager.mcpclientmanager.reconnect method async vllm_mlx.mcp.manager.mcpclientmanager.reconnect(server_name: optional[str] = none) -&gt; not annotated reconnect to server(s).">
<td><a href="../api/vllm_mlx/mcp/manager/#contract-vllm_mlx.mcp.manager.MCPClientManager.reconnect"><code>vllm_mlx.mcp.manager.MCPClientManager.reconnect</code></a></td>
<td>method</td>
<td><code>async vllm_mlx.mcp.manager.MCPClientManager.reconnect(server_name: Optional[str] = None) -&gt; not annotated</code></td>
<td>Reconnect to server(s).</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/mcp/manager.py#L285-L301">#L285-L301</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.mcp.manager.mcpclientmanager.refresh_tools method async vllm_mlx.mcp.manager.mcpclientmanager.refresh_tools() -&gt; not annotated refresh tools from all connected servers.">
<td><a href="../api/vllm_mlx/mcp/manager/#contract-vllm_mlx.mcp.manager.MCPClientManager.refresh_tools"><code>vllm_mlx.mcp.manager.MCPClientManager.refresh_tools</code></a></td>
<td>method</td>
<td><code>async vllm_mlx.mcp.manager.MCPClientManager.refresh_tools() -&gt; not annotated</code></td>
<td>Refresh tools from all connected servers.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/mcp/manager.py#L275-L283">#L275-L283</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.mcp.manager.mcpclientmanager.start method async vllm_mlx.mcp.manager.mcpclientmanager.start() -&gt; not annotated start the manager and connect to all enabled servers.">
<td><a href="../api/vllm_mlx/mcp/manager/#contract-vllm_mlx.mcp.manager.MCPClientManager.start"><code>vllm_mlx.mcp.manager.MCPClientManager.start</code></a></td>
<td>method</td>
<td><code>async vllm_mlx.mcp.manager.MCPClientManager.start() -&gt; not annotated</code></td>
<td>Start the manager and connect to all enabled servers.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/mcp/manager.py#L54-L96">#L54-L96</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.mcp.manager.mcpclientmanager.stop method async vllm_mlx.mcp.manager.mcpclientmanager.stop() -&gt; not annotated stop the manager and disconnect from all servers.">
<td><a href="../api/vllm_mlx/mcp/manager/#contract-vllm_mlx.mcp.manager.MCPClientManager.stop"><code>vllm_mlx.mcp.manager.MCPClientManager.stop</code></a></td>
<td>method</td>
<td><code>async vllm_mlx.mcp.manager.MCPClientManager.stop() -&gt; not annotated</code></td>
<td>Stop the manager and disconnect from all servers.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/mcp/manager.py#L98-L112">#L98-L112</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.mcp.security.get_sandbox function vllm_mlx.mcp.security.get_sandbox() -&gt; toolsandbox get the global tool sandbox instance.">
<td><a href="../api/vllm_mlx/mcp/security/#contract-vllm_mlx.mcp.security.get_sandbox"><code>vllm_mlx.mcp.security.get_sandbox</code></a></td>
<td>function</td>
<td><code>vllm_mlx.mcp.security.get_sandbox() -&gt; ToolSandbox</code></td>
<td>Get the global tool sandbox instance.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/mcp/security.py#L841-L846">#L841-L846</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.mcp.security.get_validator function vllm_mlx.mcp.security.get_validator() -&gt; mcpcommandvalidator get the global command validator instance.">
<td><a href="../api/vllm_mlx/mcp/security/#contract-vllm_mlx.mcp.security.get_validator"><code>vllm_mlx.mcp.security.get_validator</code></a></td>
<td>function</td>
<td><code>vllm_mlx.mcp.security.get_validator() -&gt; MCPCommandValidator</code></td>
<td>Get the global command validator instance.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/mcp/security.py#L434-L441">#L434-L441</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="class" data-symbol-search="vllm_mlx.mcp.security.mcpcommandvalidator class vllm_mlx.mcp.security.mcpcommandvalidator(allowed_commands: optional[set[str]] = none, allow_unsafe: bool = false, custom_whitelist: optional[set[str]] = none, check_path_exists: bool = true) validates mcp server commands for security.">
<td><a href="../api/vllm_mlx/mcp/security/#contract-vllm_mlx.mcp.security.MCPCommandValidator"><code>vllm_mlx.mcp.security.MCPCommandValidator</code></a></td>
<td>class</td>
<td><code>vllm_mlx.mcp.security.MCPCommandValidator(allowed_commands: Optional[Set[str]] = None, allow_unsafe: bool = False, custom_whitelist: Optional[Set[str]] = None, check_path_exists: bool = True)</code></td>
<td>Validates MCP server commands for security.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/mcp/security.py#L112-L427">#L112-L427</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.mcp.security.mcpcommandvalidator.__init__ method vllm_mlx.mcp.security.mcpcommandvalidator.__init__(allowed_commands: optional[set[str]] = none, allow_unsafe: bool = false, custom_whitelist: optional[set[str]] = none, check_path_exists: bool = true) -&gt; not annotated initialize the command validator.">
<td><a href="../api/vllm_mlx/mcp/security/#contract-vllm_mlx.mcp.security.MCPCommandValidator.__init__"><code>vllm_mlx.mcp.security.MCPCommandValidator.__init__</code></a></td>
<td>method</td>
<td><code>vllm_mlx.mcp.security.MCPCommandValidator.__init__(allowed_commands: Optional[Set[str]] = None, allow_unsafe: bool = False, custom_whitelist: Optional[Set[str]] = None, check_path_exists: bool = True) -&gt; not annotated</code></td>
<td>Initialize the command validator.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/mcp/security.py#L120-L149">#L120-L149</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.mcp.security.mcpcommandvalidator._check_control_chars method vllm_mlx.mcp.security.mcpcommandvalidator._check_control_chars(value: str, context: str, server_name: str) -&gt; none block command separators carried via literal newlines.">
<td><a href="../api/vllm_mlx/mcp/security/#contract-vllm_mlx.mcp.security.MCPCommandValidator._check_control_chars"><code>vllm_mlx.mcp.security.MCPCommandValidator._check_control_chars</code></a></td>
<td>method</td>
<td><code>vllm_mlx.mcp.security.MCPCommandValidator._check_control_chars(value: str, context: str, server_name: str) -&gt; None</code></td>
<td>Block command separators carried via literal newlines.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/mcp/security.py#L151-L157">#L151-L157</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.mcp.security.mcpcommandvalidator._check_path_traversal method vllm_mlx.mcp.security.mcpcommandvalidator._check_path_traversal(value: str, context: str, server_name: str) -&gt; none block parent-directory traversal, including url-encoded forms.">
<td><a href="../api/vllm_mlx/mcp/security/#contract-vllm_mlx.mcp.security.MCPCommandValidator._check_path_traversal"><code>vllm_mlx.mcp.security.MCPCommandValidator._check_path_traversal</code></a></td>
<td>method</td>
<td><code>vllm_mlx.mcp.security.MCPCommandValidator._check_path_traversal(value: str, context: str, server_name: str) -&gt; None</code></td>
<td>Block parent-directory traversal, including URL-encoded forms.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/mcp/security.py#L159-L194">#L159-L194</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.mcp.security.mcpcommandvalidator.validate_args method vllm_mlx.mcp.security.mcpcommandvalidator.validate_args(args: list[str], server_name: str) -&gt; none validate command arguments for dangerous patterns.">
<td><a href="../api/vllm_mlx/mcp/security/#contract-vllm_mlx.mcp.security.MCPCommandValidator.validate_args"><code>vllm_mlx.mcp.security.MCPCommandValidator.validate_args</code></a></td>
<td>method</td>
<td><code>vllm_mlx.mcp.security.MCPCommandValidator.validate_args(args: List[str], server_name: str) -&gt; None</code></td>
<td>Validate command arguments for dangerous patterns.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/mcp/security.py#L260-L286">#L260-L286</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.mcp.security.mcpcommandvalidator.validate_command method vllm_mlx.mcp.security.mcpcommandvalidator.validate_command(command: str, server_name: str) -&gt; none validate that a command is safe to execute.">
<td><a href="../api/vllm_mlx/mcp/security/#contract-vllm_mlx.mcp.security.MCPCommandValidator.validate_command"><code>vllm_mlx.mcp.security.MCPCommandValidator.validate_command</code></a></td>
<td>method</td>
<td><code>vllm_mlx.mcp.security.MCPCommandValidator.validate_command(command: str, server_name: str) -&gt; None</code></td>
<td>Validate that a command is safe to execute.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/mcp/security.py#L196-L258">#L196-L258</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.mcp.security.mcpcommandvalidator.validate_command_args method vllm_mlx.mcp.security.mcpcommandvalidator.validate_command_args(command: str, args: list[str], server_name: str) -&gt; none validate command-specific argument combinations.">
<td><a href="../api/vllm_mlx/mcp/security/#contract-vllm_mlx.mcp.security.MCPCommandValidator.validate_command_args"><code>vllm_mlx.mcp.security.MCPCommandValidator.validate_command_args</code></a></td>
<td>method</td>
<td><code>vllm_mlx.mcp.security.MCPCommandValidator.validate_command_args(command: str, args: List[str], server_name: str) -&gt; None</code></td>
<td>Validate command-specific argument combinations.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/mcp/security.py#L288-L330">#L288-L330</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.mcp.security.mcpcommandvalidator.validate_env method vllm_mlx.mcp.security.mcpcommandvalidator.validate_env(env: optional[dict[str, str]], server_name: str) -&gt; none validate environment variables for dangerous values.">
<td><a href="../api/vllm_mlx/mcp/security/#contract-vllm_mlx.mcp.security.MCPCommandValidator.validate_env"><code>vllm_mlx.mcp.security.MCPCommandValidator.validate_env</code></a></td>
<td>method</td>
<td><code>vllm_mlx.mcp.security.MCPCommandValidator.validate_env(env: Optional[Dict[str, str]], server_name: str) -&gt; None</code></td>
<td>Validate environment variables for dangerous values.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/mcp/security.py#L332-L383">#L332-L383</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.mcp.security.mcpcommandvalidator.validate_url method vllm_mlx.mcp.security.mcpcommandvalidator.validate_url(url: str, server_name: str) -&gt; none validate sse url for security.">
<td><a href="../api/vllm_mlx/mcp/security/#contract-vllm_mlx.mcp.security.MCPCommandValidator.validate_url"><code>vllm_mlx.mcp.security.MCPCommandValidator.validate_url</code></a></td>
<td>method</td>
<td><code>vllm_mlx.mcp.security.MCPCommandValidator.validate_url(url: str, server_name: str) -&gt; None</code></td>
<td>Validate SSE URL for security.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/mcp/security.py#L385-L427">#L385-L427</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="class" data-symbol-search="vllm_mlx.mcp.security.mcpsecurityerror class vllm_mlx.mcp.security.mcpsecurityerror() raised when mcp security validation fails.">
<td><a href="../api/vllm_mlx/mcp/security/#contract-vllm_mlx.mcp.security.MCPSecurityError"><code>vllm_mlx.mcp.security.MCPSecurityError</code></a></td>
<td>class</td>
<td><code>vllm_mlx.mcp.security.MCPSecurityError()</code></td>
<td>Raised when MCP security validation fails.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/mcp/security.py#L106-L109">#L106-L109</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.mcp.security.set_sandbox function vllm_mlx.mcp.security.set_sandbox(sandbox: toolsandbox) -&gt; none set a custom global sandbox.">
<td><a href="../api/vllm_mlx/mcp/security/#contract-vllm_mlx.mcp.security.set_sandbox"><code>vllm_mlx.mcp.security.set_sandbox</code></a></td>
<td>function</td>
<td><code>vllm_mlx.mcp.security.set_sandbox(sandbox: ToolSandbox) -&gt; None</code></td>
<td>Set a custom global sandbox.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/mcp/security.py#L849-L852">#L849-L852</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.mcp.security.set_validator function vllm_mlx.mcp.security.set_validator(validator: mcpcommandvalidator) -&gt; none set a custom global validator.">
<td><a href="../api/vllm_mlx/mcp/security/#contract-vllm_mlx.mcp.security.set_validator"><code>vllm_mlx.mcp.security.set_validator</code></a></td>
<td>function</td>
<td><code>vllm_mlx.mcp.security.set_validator(validator: MCPCommandValidator) -&gt; None</code></td>
<td>Set a custom global validator.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/mcp/security.py#L444-L447">#L444-L447</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="class" data-symbol-search="vllm_mlx.mcp.security.toolexecutionaudit class vllm_mlx.mcp.security.toolexecutionaudit(timestamp: float, tool_name: str, server_name: str, arguments: dict[str, any], success: bool, error_message: optional[str] = none, execution_time_ms: optional[float] = none) record of a tool execution for audit purposes.">
<td><a href="../api/vllm_mlx/mcp/security/#contract-vllm_mlx.mcp.security.ToolExecutionAudit"><code>vllm_mlx.mcp.security.ToolExecutionAudit</code></a></td>
<td>class</td>
<td><code>vllm_mlx.mcp.security.ToolExecutionAudit(timestamp: float, tool_name: str, server_name: str, arguments: Dict[str, Any], success: bool, error_message: Optional[str] = None, execution_time_ms: Optional[float] = None)</code></td>
<td>Record of a tool execution for audit purposes.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/mcp/security.py#L516-L525">#L516-L525</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="class" data-symbol-search="vllm_mlx.mcp.security.toolsandbox class vllm_mlx.mcp.security.toolsandbox(allowed_tools: optional[set[str]] = none, blocked_tools: optional[set[str]] = none, allowed_high_risk_tools: optional[set[str]] = none, blocked_arg_patterns: optional[list[re.pattern]] = none, max_calls_per_minute: int = 60, audit_callback: optional[callable[[toolexecutionaudit], none]] = none, enabled: bool = true) sandboxing controls for mcp tool execution.">
<td><a href="../api/vllm_mlx/mcp/security/#contract-vllm_mlx.mcp.security.ToolSandbox"><code>vllm_mlx.mcp.security.ToolSandbox</code></a></td>
<td>class</td>
<td><code>vllm_mlx.mcp.security.ToolSandbox(allowed_tools: Optional[Set[str]] = None, blocked_tools: Optional[Set[str]] = None, allowed_high_risk_tools: Optional[Set[str]] = None, blocked_arg_patterns: Optional[List[re.Pattern]] = None, max_calls_per_minute: int = 60, audit_callback: Optional[Callable[[ToolExecutionAudit], None]] = None, enabled: bool = True)</code></td>
<td>Sandboxing controls for MCP tool execution.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/mcp/security.py#L528-L834">#L528-L834</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.mcp.security.toolsandbox.__init__ method vllm_mlx.mcp.security.toolsandbox.__init__(allowed_tools: optional[set[str]] = none, blocked_tools: optional[set[str]] = none, allowed_high_risk_tools: optional[set[str]] = none, blocked_arg_patterns: optional[list[re.pattern]] = none, max_calls_per_minute: int = 60, audit_callback: optional[callable[[toolexecutionaudit], none]] = none, enabled: bool = true) -&gt; not annotated initialize tool sandbox.">
<td><a href="../api/vllm_mlx/mcp/security/#contract-vllm_mlx.mcp.security.ToolSandbox.__init__"><code>vllm_mlx.mcp.security.ToolSandbox.__init__</code></a></td>
<td>method</td>
<td><code>vllm_mlx.mcp.security.ToolSandbox.__init__(allowed_tools: Optional[Set[str]] = None, blocked_tools: Optional[Set[str]] = None, allowed_high_risk_tools: Optional[Set[str]] = None, blocked_arg_patterns: Optional[List[re.Pattern]] = None, max_calls_per_minute: int = 60, audit_callback: Optional[Callable[[ToolExecutionAudit], None]] = None, enabled: bool = True) -&gt; not annotated</code></td>
<td>Initialize tool sandbox.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/mcp/security.py#L539-L586">#L539-L586</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.mcp.security.toolsandbox._check_high_risk_tool method vllm_mlx.mcp.security.toolsandbox._check_high_risk_tool(tool_name: str, full_name: str) -&gt; none check if tool matches high-risk patterns.">
<td><a href="../api/vllm_mlx/mcp/security/#contract-vllm_mlx.mcp.security.ToolSandbox._check_high_risk_tool"><code>vllm_mlx.mcp.security.ToolSandbox._check_high_risk_tool</code></a></td>
<td>method</td>
<td><code>vllm_mlx.mcp.security.ToolSandbox._check_high_risk_tool(tool_name: str, full_name: str) -&gt; None</code></td>
<td>Check if tool matches high-risk patterns.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/mcp/security.py#L644-L663">#L644-L663</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.mcp.security.toolsandbox._check_rate_limit method vllm_mlx.mcp.security.toolsandbox._check_rate_limit(full_name: str) -&gt; none check and enforce rate limit for tool calls.">
<td><a href="../api/vllm_mlx/mcp/security/#contract-vllm_mlx.mcp.security.ToolSandbox._check_rate_limit"><code>vllm_mlx.mcp.security.ToolSandbox._check_rate_limit</code></a></td>
<td>method</td>
<td><code>vllm_mlx.mcp.security.ToolSandbox._check_rate_limit(full_name: str) -&gt; None</code></td>
<td>Check and enforce rate limit for tool calls.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/mcp/security.py#L688-L710">#L688-L710</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.mcp.security.toolsandbox._is_blocked method vllm_mlx.mcp.security.toolsandbox._is_blocked(tool_name: str, full_name: str) -&gt; bool check if tool is in blocklist.">
<td><a href="../api/vllm_mlx/mcp/security/#contract-vllm_mlx.mcp.security.ToolSandbox._is_blocked"><code>vllm_mlx.mcp.security.ToolSandbox._is_blocked</code></a></td>
<td>method</td>
<td><code>vllm_mlx.mcp.security.ToolSandbox._is_blocked(tool_name: str, full_name: str) -&gt; bool</code></td>
<td>Check if tool is in blocklist.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/mcp/security.py#L636-L642">#L636-L642</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.mcp.security.toolsandbox._sanitize_arguments_for_log method vllm_mlx.mcp.security.toolsandbox._sanitize_arguments_for_log(arguments: dict[str, any]) -&gt; dict[str, any] sanitize arguments for logging (redact sensitive data).">
<td><a href="../api/vllm_mlx/mcp/security/#contract-vllm_mlx.mcp.security.ToolSandbox._sanitize_arguments_for_log"><code>vllm_mlx.mcp.security.ToolSandbox._sanitize_arguments_for_log</code></a></td>
<td>method</td>
<td><code>vllm_mlx.mcp.security.ToolSandbox._sanitize_arguments_for_log(arguments: Dict[str, Any]) -&gt; Dict[str, Any]</code></td>
<td>Sanitize arguments for logging (redact sensitive data).</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/mcp/security.py#L774-L794">#L774-L794</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="nested function" data-symbol-search="vllm_mlx.mcp.security.toolsandbox._sanitize_arguments_for_log.sanitize nested function vllm_mlx.mcp.security.toolsandbox._sanitize_arguments_for_log.sanitize(obj: any) -&gt; any nested function `toolsandbox._sanitize_arguments_for_log.sanitize` calls `isinstance`, `any`, `k.lower`, `sanitize`; has 4 explicit return paths.">
<td><a href="../api/vllm_mlx/mcp/security/#contract-vllm_mlx.mcp.security.ToolSandbox._sanitize_arguments_for_log.sanitize"><code>vllm_mlx.mcp.security.ToolSandbox._sanitize_arguments_for_log.sanitize</code></a></td>
<td>nested function</td>
<td><code>vllm_mlx.mcp.security.ToolSandbox._sanitize_arguments_for_log.sanitize(obj: Any) -&gt; Any</code></td>
<td>Nested Function `ToolSandbox._sanitize_arguments_for_log.sanitize` calls `isinstance`, `any`, `k.lower`, `sanitize`; has 4 explicit return paths.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/mcp/security.py#L778-L792">#L778-L792</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.mcp.security.toolsandbox._validate_arguments method vllm_mlx.mcp.security.toolsandbox._validate_arguments(tool_name: str, arguments: dict[str, any]) -&gt; none validate tool arguments for dangerous patterns.">
<td><a href="../api/vllm_mlx/mcp/security/#contract-vllm_mlx.mcp.security.ToolSandbox._validate_arguments"><code>vllm_mlx.mcp.security.ToolSandbox._validate_arguments</code></a></td>
<td>method</td>
<td><code>vllm_mlx.mcp.security.ToolSandbox._validate_arguments(tool_name: str, arguments: Dict[str, Any]) -&gt; None</code></td>
<td>Validate tool arguments for dangerous patterns.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/mcp/security.py#L665-L686">#L665-L686</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="nested function" data-symbol-search="vllm_mlx.mcp.security.toolsandbox._validate_arguments.check_value nested function vllm_mlx.mcp.security.toolsandbox._validate_arguments.check_value(key: str, value: any, path: str = &#x27;&#x27;) -&gt; none nested function `toolsandbox._validate_arguments.check_value` calls `isinstance`, `pattern.search`, `mcpsecurityerror`, `value.items`; can raise `mcpsecurityerror`.">
<td><a href="../api/vllm_mlx/mcp/security/#contract-vllm_mlx.mcp.security.ToolSandbox._validate_arguments.check_value"><code>vllm_mlx.mcp.security.ToolSandbox._validate_arguments.check_value</code></a></td>
<td>nested function</td>
<td><code>vllm_mlx.mcp.security.ToolSandbox._validate_arguments.check_value(key: str, value: Any, path: str = &#x27;&#x27;) -&gt; None</code></td>
<td>Nested Function `ToolSandbox._validate_arguments.check_value` calls `isinstance`, `pattern.search`, `MCPSecurityError`, `value.items`; can raise `MCPSecurityError`.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/mcp/security.py#L668-L683">#L668-L683</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.mcp.security.toolsandbox.clear_audit_log method vllm_mlx.mcp.security.toolsandbox.clear_audit_log() -&gt; int clear audit log and return number of entries cleared.">
<td><a href="../api/vllm_mlx/mcp/security/#contract-vllm_mlx.mcp.security.ToolSandbox.clear_audit_log"><code>vllm_mlx.mcp.security.ToolSandbox.clear_audit_log</code></a></td>
<td>method</td>
<td><code>vllm_mlx.mcp.security.ToolSandbox.clear_audit_log() -&gt; int</code></td>
<td>Clear audit log and return number of entries cleared.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/mcp/security.py#L829-L834">#L829-L834</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.mcp.security.toolsandbox.get_audit_log method vllm_mlx.mcp.security.toolsandbox.get_audit_log(limit: int = 100, tool_filter: optional[str] = none, server_filter: optional[str] = none, errors_only: bool = false) -&gt; list[toolexecutionaudit] get audit log entries.">
<td><a href="../api/vllm_mlx/mcp/security/#contract-vllm_mlx.mcp.security.ToolSandbox.get_audit_log"><code>vllm_mlx.mcp.security.ToolSandbox.get_audit_log</code></a></td>
<td>method</td>
<td><code>vllm_mlx.mcp.security.ToolSandbox.get_audit_log(limit: int = 100, tool_filter: Optional[str] = None, server_filter: Optional[str] = None, errors_only: bool = False) -&gt; List[ToolExecutionAudit]</code></td>
<td>Get audit log entries.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/mcp/security.py#L796-L827">#L796-L827</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.mcp.security.toolsandbox.record_execution method vllm_mlx.mcp.security.toolsandbox.record_execution(tool_name: str, server_name: str, arguments: dict[str, any], success: bool, error_message: optional[str] = none, execution_time_ms: optional[float] = none) -&gt; toolexecutionaudit record a tool execution for audit purposes.">
<td><a href="../api/vllm_mlx/mcp/security/#contract-vllm_mlx.mcp.security.ToolSandbox.record_execution"><code>vllm_mlx.mcp.security.ToolSandbox.record_execution</code></a></td>
<td>method</td>
<td><code>vllm_mlx.mcp.security.ToolSandbox.record_execution(tool_name: str, server_name: str, arguments: Dict[str, Any], success: bool, error_message: Optional[str] = None, execution_time_ms: Optional[float] = None) -&gt; ToolExecutionAudit</code></td>
<td>Record a tool execution for audit purposes.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/mcp/security.py#L712-L772">#L712-L772</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.mcp.security.toolsandbox.validate_tool_execution method vllm_mlx.mcp.security.toolsandbox.validate_tool_execution(tool_name: str, server_name: str, arguments: dict[str, any]) -&gt; none validate that a tool execution is allowed.">
<td><a href="../api/vllm_mlx/mcp/security/#contract-vllm_mlx.mcp.security.ToolSandbox.validate_tool_execution"><code>vllm_mlx.mcp.security.ToolSandbox.validate_tool_execution</code></a></td>
<td>method</td>
<td><code>vllm_mlx.mcp.security.ToolSandbox.validate_tool_execution(tool_name: str, server_name: str, arguments: Dict[str, Any]) -&gt; None</code></td>
<td>Validate that a tool execution is allowed.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/mcp/security.py#L588-L634">#L588-L634</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.mcp.security.validate_mcp_server_config function vllm_mlx.mcp.security.validate_mcp_server_config(server_name: str, command: optional[str] = none, args: optional[list[str]] = none, env: optional[dict[str, str]] = none, url: optional[str] = none) -&gt; none validate mcp server configuration for security.">
<td><a href="../api/vllm_mlx/mcp/security/#contract-vllm_mlx.mcp.security.validate_mcp_server_config"><code>vllm_mlx.mcp.security.validate_mcp_server_config</code></a></td>
<td>function</td>
<td><code>vllm_mlx.mcp.security.validate_mcp_server_config(server_name: str, command: Optional[str] = None, args: Optional[List[str]] = None, env: Optional[Dict[str, str]] = None, url: Optional[str] = None) -&gt; None</code></td>
<td>Validate MCP server configuration for security.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/mcp/security.py#L450-L486">#L450-L486</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.mcp.tools.extract_tool_calls function vllm_mlx.mcp.tools.extract_tool_calls(response: dict[str, any]) -&gt; list[dict[str, any]] extract tool calls from model response.">
<td><a href="../api/vllm_mlx/mcp/tools/#contract-vllm_mlx.mcp.tools.extract_tool_calls"><code>vllm_mlx.mcp.tools.extract_tool_calls</code></a></td>
<td>function</td>
<td><code>vllm_mlx.mcp.tools.extract_tool_calls(response: Dict[str, Any]) -&gt; List[Dict[str, Any]]</code></td>
<td>Extract tool calls from model response.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/mcp/tools.py#L146-L161">#L146-L161</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.mcp.tools.format_tool_result function vllm_mlx.mcp.tools.format_tool_result(result: mcptoolresult, tool_call_id: str) -&gt; dict[str, any] format tool result for inclusion in conversation messages.">
<td><a href="../api/vllm_mlx/mcp/tools/#contract-vllm_mlx.mcp.tools.format_tool_result"><code>vllm_mlx.mcp.tools.format_tool_result</code></a></td>
<td>function</td>
<td><code>vllm_mlx.mcp.tools.format_tool_result(result: MCPToolResult, tool_call_id: str) -&gt; Dict[str, Any]</code></td>
<td>Format tool result for inclusion in conversation messages.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/mcp/tools.py#L87-L98">#L87-L98</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.mcp.tools.format_tool_results function vllm_mlx.mcp.tools.format_tool_results(results: list[tuple[mcptoolresult, str]]) -&gt; list[dict[str, any]] format multiple tool results as messages.">
<td><a href="../api/vllm_mlx/mcp/tools/#contract-vllm_mlx.mcp.tools.format_tool_results"><code>vllm_mlx.mcp.tools.format_tool_results</code></a></td>
<td>function</td>
<td><code>vllm_mlx.mcp.tools.format_tool_results(results: List[Tuple[MCPToolResult, str]]) -&gt; List[Dict[str, Any]]</code></td>
<td>Format multiple tool results as messages.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/mcp/tools.py#L101-L113">#L101-L113</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.mcp.tools.has_tool_calls function vllm_mlx.mcp.tools.has_tool_calls(response: dict[str, any]) -&gt; bool check if response contains tool calls.">
<td><a href="../api/vllm_mlx/mcp/tools/#contract-vllm_mlx.mcp.tools.has_tool_calls"><code>vllm_mlx.mcp.tools.has_tool_calls</code></a></td>
<td>function</td>
<td><code>vllm_mlx.mcp.tools.has_tool_calls(response: Dict[str, Any]) -&gt; bool</code></td>
<td>Check if response contains tool calls.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/mcp/tools.py#L164-L174">#L164-L174</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.mcp.tools.mcp_tool_to_openai function vllm_mlx.mcp.tools.mcp_tool_to_openai(tool: mcptool) -&gt; dict[str, any] convert mcp tool schema to openai function calling format.">
<td><a href="../api/vllm_mlx/mcp/tools/#contract-vllm_mlx.mcp.tools.mcp_tool_to_openai"><code>vllm_mlx.mcp.tools.mcp_tool_to_openai</code></a></td>
<td>function</td>
<td><code>vllm_mlx.mcp.tools.mcp_tool_to_openai(tool: MCPTool) -&gt; Dict[str, Any]</code></td>
<td>Convert MCP tool schema to OpenAI function calling format.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/mcp/tools.py#L12-L33">#L12-L33</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.mcp.tools.mcp_tools_to_openai function vllm_mlx.mcp.tools.mcp_tools_to_openai(tools: list[mcptool]) -&gt; list[dict[str, any]] convert list of mcp tools to openai format.">
<td><a href="../api/vllm_mlx/mcp/tools/#contract-vllm_mlx.mcp.tools.mcp_tools_to_openai"><code>vllm_mlx.mcp.tools.mcp_tools_to_openai</code></a></td>
<td>function</td>
<td><code>vllm_mlx.mcp.tools.mcp_tools_to_openai(tools: List[MCPTool]) -&gt; List[Dict[str, Any]]</code></td>
<td>Convert list of MCP tools to OpenAI format.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/mcp/tools.py#L36-L46">#L36-L46</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.mcp.tools.merge_tools function vllm_mlx.mcp.tools.merge_tools(mcp_tools: list[mcptool], user_tools: optional[list[dict[str, any]]] = none) -&gt; list[dict[str, any]] merge mcp tools with user-provided tools.">
<td><a href="../api/vllm_mlx/mcp/tools/#contract-vllm_mlx.mcp.tools.merge_tools"><code>vllm_mlx.mcp.tools.merge_tools</code></a></td>
<td>function</td>
<td><code>vllm_mlx.mcp.tools.merge_tools(mcp_tools: List[MCPTool], user_tools: Optional[List[Dict[str, Any]]] = None) -&gt; List[Dict[str, Any]]</code></td>
<td>Merge MCP tools with user-provided tools.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/mcp/tools.py#L116-L143">#L116-L143</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.mcp.tools.openai_call_to_mcp function vllm_mlx.mcp.tools.openai_call_to_mcp(tool_call: dict[str, any]) -&gt; tuple[str, str, dict[str, any]] parse openai tool call back to mcp format.">
<td><a href="../api/vllm_mlx/mcp/tools/#contract-vllm_mlx.mcp.tools.openai_call_to_mcp"><code>vllm_mlx.mcp.tools.openai_call_to_mcp</code></a></td>
<td>function</td>
<td><code>vllm_mlx.mcp.tools.openai_call_to_mcp(tool_call: Dict[str, Any]) -&gt; Tuple[str, str, Dict[str, Any]]</code></td>
<td>Parse OpenAI tool call back to MCP format.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/mcp/tools.py#L49-L84">#L49-L84</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="class" data-symbol-search="vllm_mlx.mcp.types.mcpconfig class vllm_mlx.mcp.types.mcpconfig(servers: dict[str, mcpserverconfig] = field(default_factory=dict), max_tool_calls: int = 10, default_timeout: float = 30.0, allowed_high_risk_tools: set[str] = field(default_factory=set)) root configuration for mcp client.">
<td><a href="../api/vllm_mlx/mcp/types/#contract-vllm_mlx.mcp.types.MCPConfig"><code>vllm_mlx.mcp.types.MCPConfig</code></a></td>
<td>class</td>
<td><code>vllm_mlx.mcp.types.MCPConfig(servers: Dict[str, MCPServerConfig] = field(default_factory=dict), max_tool_calls: int = 10, default_timeout: float = 30.0, allowed_high_risk_tools: Set[str] = field(default_factory=set))</code></td>
<td>Root configuration for MCP client.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/mcp/types.py#L82-L103">#L82-L103</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.mcp.types.mcpconfig.from_dict method vllm_mlx.mcp.types.mcpconfig.from_dict(data: dict[str, any]) -&gt; &#x27;mcpconfig&#x27; create config from dictionary.">
<td><a href="../api/vllm_mlx/mcp/types/#contract-vllm_mlx.mcp.types.MCPConfig.from_dict"><code>vllm_mlx.mcp.types.MCPConfig.from_dict</code></a></td>
<td>method</td>
<td><code>vllm_mlx.mcp.types.MCPConfig.from_dict(data: Dict[str, Any]) -&gt; &#x27;MCPConfig&#x27;</code></td>
<td>Create config from dictionary.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/mcp/types.py#L91-L103">#L91-L103</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="class" data-symbol-search="vllm_mlx.mcp.types.mcpserverconfig class vllm_mlx.mcp.types.mcpserverconfig(name: str, transport: mcptransport = mcptransport.stdio, command: optional[str] = none, args: optional[list[str]] = none, env: optional[dict[str, str]] = none, url: optional[str] = none, enabled: bool = true, timeout: float = 30.0) configuration for a single mcp server.">
<td><a href="../api/vllm_mlx/mcp/types/#contract-vllm_mlx.mcp.types.MCPServerConfig"><code>vllm_mlx.mcp.types.MCPServerConfig</code></a></td>
<td>class</td>
<td><code>vllm_mlx.mcp.types.MCPServerConfig(name: str, transport: MCPTransport = MCPTransport.STDIO, command: Optional[str] = None, args: Optional[List[str]] = None, env: Optional[Dict[str, str]] = None, url: Optional[str] = None, enabled: bool = True, timeout: float = 30.0)</code></td>
<td>Configuration for a single MCP server.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/mcp/types.py#L28-L78">#L28-L78</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.mcp.types.mcpserverconfig.__post_init__ method vllm_mlx.mcp.types.mcpserverconfig.__post_init__() -&gt; not annotated validate configuration.">
<td><a href="../api/vllm_mlx/mcp/types/#contract-vllm_mlx.mcp.types.MCPServerConfig.__post_init__"><code>vllm_mlx.mcp.types.MCPServerConfig.__post_init__</code></a></td>
<td>method</td>
<td><code>vllm_mlx.mcp.types.MCPServerConfig.__post_init__() -&gt; not annotated</code></td>
<td>Validate configuration.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/mcp/types.py#L46-L63">#L46-L63</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.mcp.types.mcpserverconfig._validate_security method vllm_mlx.mcp.types.mcpserverconfig._validate_security() -&gt; none validate security of the configuration.">
<td><a href="../api/vllm_mlx/mcp/types/#contract-vllm_mlx.mcp.types.MCPServerConfig._validate_security"><code>vllm_mlx.mcp.types.MCPServerConfig._validate_security</code></a></td>
<td>method</td>
<td><code>vllm_mlx.mcp.types.MCPServerConfig._validate_security() -&gt; None</code></td>
<td>Validate security of the configuration.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/mcp/types.py#L65-L78">#L65-L78</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="class" data-symbol-search="vllm_mlx.mcp.types.mcpserverstate class vllm_mlx.mcp.types.mcpserverstate() mcp server connection states.">
<td><a href="../api/vllm_mlx/mcp/types/#contract-vllm_mlx.mcp.types.MCPServerState"><code>vllm_mlx.mcp.types.MCPServerState</code></a></td>
<td>class</td>
<td><code>vllm_mlx.mcp.types.MCPServerState()</code></td>
<td>MCP server connection states.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/mcp/types.py#L18-L24">#L18-L24</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="class" data-symbol-search="vllm_mlx.mcp.types.mcpserverstatus class vllm_mlx.mcp.types.mcpserverstatus(name: str, state: mcpserverstate, transport: mcptransport, tools_count: int = 0, error: optional[str] = none, last_connected: optional[float] = none) status of an mcp server connection.">
<td><a href="../api/vllm_mlx/mcp/types/#contract-vllm_mlx.mcp.types.MCPServerStatus"><code>vllm_mlx.mcp.types.MCPServerStatus</code></a></td>
<td>class</td>
<td><code>vllm_mlx.mcp.types.MCPServerStatus(name: str, state: MCPServerState, transport: MCPTransport, tools_count: int = 0, error: Optional[str] = None, last_connected: Optional[float] = None)</code></td>
<td>Status of an MCP server connection.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/mcp/types.py#L160-L179">#L160-L179</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.mcp.types.mcpserverstatus.to_dict method vllm_mlx.mcp.types.mcpserverstatus.to_dict() -&gt; dict[str, any] convert to dictionary for api response.">
<td><a href="../api/vllm_mlx/mcp/types/#contract-vllm_mlx.mcp.types.MCPServerStatus.to_dict"><code>vllm_mlx.mcp.types.MCPServerStatus.to_dict</code></a></td>
<td>method</td>
<td><code>vllm_mlx.mcp.types.MCPServerStatus.to_dict() -&gt; Dict[str, Any]</code></td>
<td>Convert to dictionary for API response.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/mcp/types.py#L170-L179">#L170-L179</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="class" data-symbol-search="vllm_mlx.mcp.types.mcptool class vllm_mlx.mcp.types.mcptool(server_name: str, name: str, description: str, input_schema: dict[str, any] = field(default_factory=dict)) normalized tool representation from mcp server.">
<td><a href="../api/vllm_mlx/mcp/types/#contract-vllm_mlx.mcp.types.MCPTool"><code>vllm_mlx.mcp.types.MCPTool</code></a></td>
<td>class</td>
<td><code>vllm_mlx.mcp.types.MCPTool(server_name: str, name: str, description: str, input_schema: Dict[str, Any] = field(default_factory=dict))</code></td>
<td>Normalized tool representation from MCP server.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/mcp/types.py#L107-L129">#L107-L129</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.mcp.types.mcptool.full_name method vllm_mlx.mcp.types.mcptool.full_name() -&gt; str get namespaced tool name (server__tool).">
<td><a href="../api/vllm_mlx/mcp/types/#contract-vllm_mlx.mcp.types.MCPTool.full_name"><code>vllm_mlx.mcp.types.MCPTool.full_name</code></a></td>
<td>method</td>
<td><code>vllm_mlx.mcp.types.MCPTool.full_name() -&gt; str</code></td>
<td>Get namespaced tool name (server__tool).</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/mcp/types.py#L116-L118">#L116-L118</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.mcp.types.mcptool.to_openai_format method vllm_mlx.mcp.types.mcptool.to_openai_format() -&gt; dict[str, any] convert to openai function calling format.">
<td><a href="../api/vllm_mlx/mcp/types/#contract-vllm_mlx.mcp.types.MCPTool.to_openai_format"><code>vllm_mlx.mcp.types.MCPTool.to_openai_format</code></a></td>
<td>method</td>
<td><code>vllm_mlx.mcp.types.MCPTool.to_openai_format() -&gt; Dict[str, Any]</code></td>
<td>Convert to OpenAI function calling format.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/mcp/types.py#L120-L129">#L120-L129</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="class" data-symbol-search="vllm_mlx.mcp.types.mcptoolresult class vllm_mlx.mcp.types.mcptoolresult(tool_name: str, content: any, is_error: bool = false, error_message: optional[str] = none) result from a tool execution.">
<td><a href="../api/vllm_mlx/mcp/types/#contract-vllm_mlx.mcp.types.MCPToolResult"><code>vllm_mlx.mcp.types.MCPToolResult</code></a></td>
<td>class</td>
<td><code>vllm_mlx.mcp.types.MCPToolResult(tool_name: str, content: Any, is_error: bool = False, error_message: Optional[str] = None)</code></td>
<td>Result from a tool execution.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/mcp/types.py#L133-L156">#L133-L156</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.mcp.types.mcptoolresult.to_message method vllm_mlx.mcp.types.mcptoolresult.to_message(tool_call_id: str) -&gt; dict[str, any] convert to openai tool result message format.">
<td><a href="../api/vllm_mlx/mcp/types/#contract-vllm_mlx.mcp.types.MCPToolResult.to_message"><code>vllm_mlx.mcp.types.MCPToolResult.to_message</code></a></td>
<td>method</td>
<td><code>vllm_mlx.mcp.types.MCPToolResult.to_message(tool_call_id: str) -&gt; Dict[str, Any]</code></td>
<td>Convert to OpenAI tool result message format.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/mcp/types.py#L141-L156">#L141-L156</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="class" data-symbol-search="vllm_mlx.mcp.types.mcptransport class vllm_mlx.mcp.types.mcptransport() supported mcp transport types.">
<td><a href="../api/vllm_mlx/mcp/types/#contract-vllm_mlx.mcp.types.MCPTransport"><code>vllm_mlx.mcp.types.MCPTransport</code></a></td>
<td>class</td>
<td><code>vllm_mlx.mcp.types.MCPTransport()</code></td>
<td>Supported MCP transport types.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/mcp/types.py#L11-L15">#L11-L15</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.memory_cache._array_memory function vllm_mlx.memory_cache._array_memory(arr) -&gt; int estimate array memory from shape+dtype without triggering lazy eval.">
<td><a href="../api/vllm_mlx/memory_cache/#contract-vllm_mlx.memory_cache._array_memory"><code>vllm_mlx.memory_cache._array_memory</code></a></td>
<td>function</td>
<td><code>vllm_mlx.memory_cache._array_memory(arr) -&gt; int</code></td>
<td>Estimate array memory from shape+dtype without triggering lazy eval.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/memory_cache.py#L66-L88">#L66-L88</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="class" data-symbol-search="vllm_mlx.memory_cache._cacheentry class vllm_mlx.memory_cache._cacheentry(tokens: tuple[int, ...], cache: list[any], memory_bytes: int) internal cache entry with memory tracking.">
<td><a href="../api/vllm_mlx/memory_cache/#contract-vllm_mlx.memory_cache._CacheEntry"><code>vllm_mlx.memory_cache._CacheEntry</code></a></td>
<td>class</td>
<td><code>vllm_mlx.memory_cache._CacheEntry(tokens: tuple[int, ...], cache: list[Any], memory_bytes: int)</code></td>
<td>Internal cache entry with memory tracking.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/memory_cache.py#L272-L287">#L272-L287</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.memory_cache._cacheentry.create method vllm_mlx.memory_cache._cacheentry.create(tokens: list[int], cache: list[any]) -&gt; _cacheentry create a cache entry with memory estimation.">
<td><a href="../api/vllm_mlx/memory_cache/#contract-vllm_mlx.memory_cache._CacheEntry.create"><code>vllm_mlx.memory_cache._CacheEntry.create</code></a></td>
<td>method</td>
<td><code>vllm_mlx.memory_cache._CacheEntry.create(tokens: list[int], cache: list[Any]) -&gt; _CacheEntry</code></td>
<td>Create a cache entry with memory estimation.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/memory_cache.py#L280-L287">#L280-L287</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.memory_cache._compute_model_fingerprint function vllm_mlx.memory_cache._compute_model_fingerprint(model: any) -&gt; str compute a fingerprint from model architecture for cache compatibility.">
<td><a href="../api/vllm_mlx/memory_cache/#contract-vllm_mlx.memory_cache._compute_model_fingerprint"><code>vllm_mlx.memory_cache._compute_model_fingerprint</code></a></td>
<td>function</td>
<td><code>vllm_mlx.memory_cache._compute_model_fingerprint(model: Any) -&gt; str</code></td>
<td>Compute a fingerprint from model architecture for cache compatibility.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/memory_cache.py#L648-L682">#L648-L682</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.memory_cache._dequantize_cache function vllm_mlx.memory_cache._dequantize_cache(cache: list[any]) -&gt; list[any] dequantize _quantizedcachewrapper layers and copy non-quantized layers.">
<td><a href="../api/vllm_mlx/memory_cache/#contract-vllm_mlx.memory_cache._dequantize_cache"><code>vllm_mlx.memory_cache._dequantize_cache</code></a></td>
<td>function</td>
<td><code>vllm_mlx.memory_cache._dequantize_cache(cache: list[Any]) -&gt; list[Any]</code></td>
<td>Dequantize _QuantizedCacheWrapper layers and copy non-quantized layers.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/memory_cache.py#L593-L645">#L593-L645</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.memory_cache._get_available_memory function vllm_mlx.memory_cache._get_available_memory() -&gt; int get available system memory in bytes.">
<td><a href="../api/vllm_mlx/memory_cache/#contract-vllm_mlx.memory_cache._get_available_memory"><code>vllm_mlx.memory_cache._get_available_memory</code></a></td>
<td>function</td>
<td><code>vllm_mlx.memory_cache._get_available_memory() -&gt; int</code></td>
<td>Get available system memory in bytes.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/memory_cache.py#L47-L63">#L47-L63</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.memory_cache._is_cache_layer_trimmable function vllm_mlx.memory_cache._is_cache_layer_trimmable(layer_cache: any) -&gt; bool return whether a cache layer can safely be rewound for partial reuse.">
<td><a href="../api/vllm_mlx/memory_cache/#contract-vllm_mlx.memory_cache._is_cache_layer_trimmable"><code>vllm_mlx.memory_cache._is_cache_layer_trimmable</code></a></td>
<td>function</td>
<td><code>vllm_mlx.memory_cache._is_cache_layer_trimmable(layer_cache: Any) -&gt; bool</code></td>
<td>Return whether a cache layer can safely be rewound for partial reuse.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/memory_cache.py#L290-L314">#L290-L314</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.memory_cache._needs_kv_trim function vllm_mlx.memory_cache._needs_kv_trim(layer: any) -&gt; bool check if a cache layer has oversized kv arrays (duck-typed, no mlx import).">
<td><a href="../api/vllm_mlx/memory_cache/#contract-vllm_mlx.memory_cache._needs_kv_trim"><code>vllm_mlx.memory_cache._needs_kv_trim</code></a></td>
<td>function</td>
<td><code>vllm_mlx.memory_cache._needs_kv_trim(layer: Any) -&gt; bool</code></td>
<td>Check if a cache layer has oversized KV arrays (duck-typed, no MLX import).</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/memory_cache.py#L484-L495">#L484-L495</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.memory_cache._nested_array_memory function vllm_mlx.memory_cache._nested_array_memory(value: any) -&gt; int sum ``_array_memory`` over an arbitrarily nested state structure.">
<td><a href="../api/vllm_mlx/memory_cache/#contract-vllm_mlx.memory_cache._nested_array_memory"><code>vllm_mlx.memory_cache._nested_array_memory</code></a></td>
<td>function</td>
<td><code>vllm_mlx.memory_cache._nested_array_memory(value: Any) -&gt; int</code></td>
<td>Sum ``_array_memory`` over an arbitrarily nested state structure.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/memory_cache.py#L91-L105">#L91-L105</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.memory_cache._quantize_cache function vllm_mlx.memory_cache._quantize_cache(cache: list[any], bits: int = 8, group_size: int = 64) -&gt; list[any] quantize kv cache layers to reduce memory.">
<td><a href="../api/vllm_mlx/memory_cache/#contract-vllm_mlx.memory_cache._quantize_cache"><code>vllm_mlx.memory_cache._quantize_cache</code></a></td>
<td>function</td>
<td><code>vllm_mlx.memory_cache._quantize_cache(cache: list[Any], bits: int = 8, group_size: int = 64) -&gt; list[Any]</code></td>
<td>Quantize KV cache layers to reduce memory.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/memory_cache.py#L574-L590">#L574-L590</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="class" data-symbol-search="vllm_mlx.memory_cache._quantizedcachewrapper class vllm_mlx.memory_cache._quantizedcachewrapper(layer: any, bits: int, group_size: int) lightweight wrapper storing quantized kv arrays + original cache metadata.">
<td><a href="../api/vllm_mlx/memory_cache/#contract-vllm_mlx.memory_cache._QuantizedCacheWrapper"><code>vllm_mlx.memory_cache._QuantizedCacheWrapper</code></a></td>
<td>class</td>
<td><code>vllm_mlx.memory_cache._QuantizedCacheWrapper(layer: Any, bits: int, group_size: int)</code></td>
<td>Lightweight wrapper storing quantized KV arrays + original cache metadata.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/memory_cache.py#L541-L571">#L541-L571</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.memory_cache._quantizedcachewrapper.__init__ method vllm_mlx.memory_cache._quantizedcachewrapper.__init__(layer: any, bits: int, group_size: int) -&gt; not annotated method `_quantizedcachewrapper.__init__` updates `self.keys`, `self.values`, `self.offset`, `self.bits`; calls `mx.quantize`, `type`, `hasattr`, `getattr`.">
<td><a href="../api/vllm_mlx/memory_cache/#contract-vllm_mlx.memory_cache._QuantizedCacheWrapper.__init__"><code>vllm_mlx.memory_cache._QuantizedCacheWrapper.__init__</code></a></td>
<td>method</td>
<td><code>vllm_mlx.memory_cache._QuantizedCacheWrapper.__init__(layer: Any, bits: int, group_size: int) -&gt; not annotated</code></td>
<td>Method `_QuantizedCacheWrapper.__init__` updates `self.keys`, `self.values`, `self.offset`, `self.bits`; calls `mx.quantize`, `type`, `hasattr`, `getattr`.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/memory_cache.py#L558-L571">#L558-L571</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.memory_cache._trim_cache_offset function vllm_mlx.memory_cache._trim_cache_offset(cache: list[any], trim_by: int) -&gt; list[any] create copies of cache layers with the last ``trim_by`` positions removed.">
<td><a href="../api/vllm_mlx/memory_cache/#contract-vllm_mlx.memory_cache._trim_cache_offset"><code>vllm_mlx.memory_cache._trim_cache_offset</code></a></td>
<td>function</td>
<td><code>vllm_mlx.memory_cache._trim_cache_offset(cache: list[Any], trim_by: int) -&gt; list[Any]</code></td>
<td>Create copies of cache layers with the last ``trim_by`` positions removed.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/memory_cache.py#L317-L481">#L317-L481</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.memory_cache._trim_to_offset function vllm_mlx.memory_cache._trim_to_offset(cache: list[any]) -&gt; list[any] trim kv arrays to their actual used size (offset) before storage.">
<td><a href="../api/vllm_mlx/memory_cache/#contract-vllm_mlx.memory_cache._trim_to_offset"><code>vllm_mlx.memory_cache._trim_to_offset</code></a></td>
<td>function</td>
<td><code>vllm_mlx.memory_cache._trim_to_offset(cache: list[Any]) -&gt; list[Any]</code></td>
<td>Trim KV arrays to their actual used size (offset) before storage.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/memory_cache.py#L498-L538">#L498-L538</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="class" data-symbol-search="vllm_mlx.memory_cache.cachestats class vllm_mlx.memory_cache.cachestats(hits: int = 0, misses: int = 0, evictions: int = 0, tokens_saved: int = 0, current_memory_bytes: int = 0, max_memory_bytes: int = 0, entry_count: int = 0) statistics for cache performance monitoring.">
<td><a href="../api/vllm_mlx/memory_cache/#contract-vllm_mlx.memory_cache.CacheStats"><code>vllm_mlx.memory_cache.CacheStats</code></a></td>
<td>class</td>
<td><code>vllm_mlx.memory_cache.CacheStats(hits: int = 0, misses: int = 0, evictions: int = 0, tokens_saved: int = 0, current_memory_bytes: int = 0, max_memory_bytes: int = 0, entry_count: int = 0)</code></td>
<td>Statistics for cache performance monitoring.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/memory_cache.py#L229-L268">#L229-L268</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.memory_cache.cachestats.hit_rate method vllm_mlx.memory_cache.cachestats.hit_rate() -&gt; float return successful lookups divided by all completed lookups.">
<td><a href="../api/vllm_mlx/memory_cache/#contract-vllm_mlx.memory_cache.CacheStats.hit_rate"><code>vllm_mlx.memory_cache.CacheStats.hit_rate</code></a></td>
<td>method</td>
<td><code>vllm_mlx.memory_cache.CacheStats.hit_rate() -&gt; float</code></td>
<td>Return successful lookups divided by all completed lookups.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/memory_cache.py#L241-L245">#L241-L245</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.memory_cache.cachestats.memory_utilization method vllm_mlx.memory_cache.cachestats.memory_utilization() -&gt; float return the fraction of the configured memory budget in use.">
<td><a href="../api/vllm_mlx/memory_cache/#contract-vllm_mlx.memory_cache.CacheStats.memory_utilization"><code>vllm_mlx.memory_cache.CacheStats.memory_utilization</code></a></td>
<td>method</td>
<td><code>vllm_mlx.memory_cache.CacheStats.memory_utilization() -&gt; float</code></td>
<td>Return the fraction of the configured memory budget in use.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/memory_cache.py#L248-L253">#L248-L253</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.memory_cache.cachestats.to_dict method vllm_mlx.memory_cache.cachestats.to_dict() -&gt; dict[str, any] return rounded cache counters and memory values for apis and logs.">
<td><a href="../api/vllm_mlx/memory_cache/#contract-vllm_mlx.memory_cache.CacheStats.to_dict"><code>vllm_mlx.memory_cache.CacheStats.to_dict</code></a></td>
<td>method</td>
<td><code>vllm_mlx.memory_cache.CacheStats.to_dict() -&gt; dict[str, Any]</code></td>
<td>Return rounded cache counters and memory values for APIs and logs.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/memory_cache.py#L255-L268">#L255-L268</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.memory_cache.estimate_kv_cache_memory function vllm_mlx.memory_cache.estimate_kv_cache_memory(cache: list[any]) -&gt; int estimate memory usage of a kv cache in bytes.">
<td><a href="../api/vllm_mlx/memory_cache/#contract-vllm_mlx.memory_cache.estimate_kv_cache_memory"><code>vllm_mlx.memory_cache.estimate_kv_cache_memory</code></a></td>
<td>function</td>
<td><code>vllm_mlx.memory_cache.estimate_kv_cache_memory(cache: list[Any]) -&gt; int</code></td>
<td>Estimate memory usage of a KV cache in bytes.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/memory_cache.py#L108-L162">#L108-L162</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="class" data-symbol-search="vllm_mlx.memory_cache.memoryawareprefixcache class vllm_mlx.memory_cache.memoryawareprefixcache(model: any, config: memorycacheconfig | none = none) prefix cache with memory-based eviction.">
<td><a href="../api/vllm_mlx/memory_cache/#contract-vllm_mlx.memory_cache.MemoryAwarePrefixCache"><code>vllm_mlx.memory_cache.MemoryAwarePrefixCache</code></a></td>
<td>class</td>
<td><code>vllm_mlx.memory_cache.MemoryAwarePrefixCache(model: Any, config: MemoryCacheConfig | None = None)</code></td>
<td>Prefix cache with memory-based eviction.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/memory_cache.py#L685-L1463">#L685-L1463</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.memory_cache.memoryawareprefixcache.__contains__ method vllm_mlx.memory_cache.memoryawareprefixcache.__contains__(tokens: list[int]) -&gt; bool check if tokens are cached.">
<td><a href="../api/vllm_mlx/memory_cache/#contract-vllm_mlx.memory_cache.MemoryAwarePrefixCache.__contains__"><code>vllm_mlx.memory_cache.MemoryAwarePrefixCache.__contains__</code></a></td>
<td>method</td>
<td><code>vllm_mlx.memory_cache.MemoryAwarePrefixCache.__contains__(tokens: list[int]) -&gt; bool</code></td>
<td>Check if tokens are cached.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/memory_cache.py#L1200-L1202">#L1200-L1202</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.memory_cache.memoryawareprefixcache.__init__ method vllm_mlx.memory_cache.memoryawareprefixcache.__init__(model: any, config: memorycacheconfig | none = none) -&gt; none initialize the memory-aware prefix cache.">
<td><a href="../api/vllm_mlx/memory_cache/#contract-vllm_mlx.memory_cache.MemoryAwarePrefixCache.__init__"><code>vllm_mlx.memory_cache.MemoryAwarePrefixCache.__init__</code></a></td>
<td>method</td>
<td><code>vllm_mlx.memory_cache.MemoryAwarePrefixCache.__init__(model: Any, config: MemoryCacheConfig | None = None) -&gt; None</code></td>
<td>Initialize the memory-aware prefix cache.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/memory_cache.py#L703-L746">#L703-L746</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.memory_cache.memoryawareprefixcache.__len__ method vllm_mlx.memory_cache.memoryawareprefixcache.__len__() -&gt; int return number of cached entries.">
<td><a href="../api/vllm_mlx/memory_cache/#contract-vllm_mlx.memory_cache.MemoryAwarePrefixCache.__len__"><code>vllm_mlx.memory_cache.MemoryAwarePrefixCache.__len__</code></a></td>
<td>method</td>
<td><code>vllm_mlx.memory_cache.MemoryAwarePrefixCache.__len__() -&gt; int</code></td>
<td>Return number of cached entries.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/memory_cache.py#L1196-L1198">#L1196-L1198</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.memory_cache.memoryawareprefixcache._evict_lru method vllm_mlx.memory_cache.memoryawareprefixcache._evict_lru() -&gt; none evict the least recently used entry.">
<td><a href="../api/vllm_mlx/memory_cache/#contract-vllm_mlx.memory_cache.MemoryAwarePrefixCache._evict_lru"><code>vllm_mlx.memory_cache.MemoryAwarePrefixCache._evict_lru</code></a></td>
<td>method</td>
<td><code>vllm_mlx.memory_cache.MemoryAwarePrefixCache._evict_lru() -&gt; None</code></td>
<td>Evict the least recently used entry.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/memory_cache.py#L1100-L1126">#L1100-L1126</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.memory_cache.memoryawareprefixcache._remove_from_sorted method vllm_mlx.memory_cache.memoryawareprefixcache._remove_from_sorted(key: tuple[int, ...]) -&gt; none remove a key from the sorted index using bisect for o(log n).">
<td><a href="../api/vllm_mlx/memory_cache/#contract-vllm_mlx.memory_cache.MemoryAwarePrefixCache._remove_from_sorted"><code>vllm_mlx.memory_cache.MemoryAwarePrefixCache._remove_from_sorted</code></a></td>
<td>method</td>
<td><code>vllm_mlx.memory_cache.MemoryAwarePrefixCache._remove_from_sorted(key: tuple[int, ...]) -&gt; None</code></td>
<td>Remove a key from the sorted index using bisect for O(log N).</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/memory_cache.py#L1094-L1098">#L1094-L1098</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.memory_cache.memoryawareprefixcache.check_ssd method vllm_mlx.memory_cache.memoryawareprefixcache.check_ssd(tokens: list[int]) -&gt; dict | none check if tokens have an ssd cache hit (without reading data).">
<td><a href="../api/vllm_mlx/memory_cache/#contract-vllm_mlx.memory_cache.MemoryAwarePrefixCache.check_ssd"><code>vllm_mlx.memory_cache.MemoryAwarePrefixCache.check_ssd</code></a></td>
<td>method</td>
<td><code>vllm_mlx.memory_cache.MemoryAwarePrefixCache.check_ssd(tokens: list[int]) -&gt; dict | None</code></td>
<td>Check if tokens have an SSD cache hit (without reading data).</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/memory_cache.py#L1216-L1249">#L1216-L1249</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.memory_cache.memoryawareprefixcache.clear method vllm_mlx.memory_cache.memoryawareprefixcache.clear() -&gt; none clear all cached entries.">
<td><a href="../api/vllm_mlx/memory_cache/#contract-vllm_mlx.memory_cache.MemoryAwarePrefixCache.clear"><code>vllm_mlx.memory_cache.MemoryAwarePrefixCache.clear</code></a></td>
<td>method</td>
<td><code>vllm_mlx.memory_cache.MemoryAwarePrefixCache.clear() -&gt; None</code></td>
<td>Clear all cached entries.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/memory_cache.py#L1149-L1156">#L1149-L1156</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.memory_cache.memoryawareprefixcache.fetch method vllm_mlx.memory_cache.memoryawareprefixcache.fetch(tokens: list[int]) -&gt; tuple[list[any] | none, list[int]] find cached kv state for the given tokens.">
<td><a href="../api/vllm_mlx/memory_cache/#contract-vllm_mlx.memory_cache.MemoryAwarePrefixCache.fetch"><code>vllm_mlx.memory_cache.MemoryAwarePrefixCache.fetch</code></a></td>
<td>method</td>
<td><code>vllm_mlx.memory_cache.MemoryAwarePrefixCache.fetch(tokens: list[int]) -&gt; tuple[list[Any] | None, list[int]]</code></td>
<td>Find cached KV state for the given tokens.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/memory_cache.py#L748-L977">#L748-L977</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.memory_cache.memoryawareprefixcache.get_stats method vllm_mlx.memory_cache.memoryawareprefixcache.get_stats() -&gt; dict[str, any] get cache statistics.">
<td><a href="../api/vllm_mlx/memory_cache/#contract-vllm_mlx.memory_cache.MemoryAwarePrefixCache.get_stats"><code>vllm_mlx.memory_cache.MemoryAwarePrefixCache.get_stats</code></a></td>
<td>method</td>
<td><code>vllm_mlx.memory_cache.MemoryAwarePrefixCache.get_stats() -&gt; dict[str, Any]</code></td>
<td>Get cache statistics.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/memory_cache.py#L1158-L1160">#L1158-L1160</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.memory_cache.memoryawareprefixcache.load_from_disk method vllm_mlx.memory_cache.memoryawareprefixcache.load_from_disk(cache_dir: str) -&gt; int load cache entries from disk.">
<td><a href="../api/vllm_mlx/memory_cache/#contract-vllm_mlx.memory_cache.MemoryAwarePrefixCache.load_from_disk"><code>vllm_mlx.memory_cache.MemoryAwarePrefixCache.load_from_disk</code></a></td>
<td>method</td>
<td><code>vllm_mlx.memory_cache.MemoryAwarePrefixCache.load_from_disk(cache_dir: str) -&gt; int</code></td>
<td>Load cache entries from disk.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/memory_cache.py#L1348-L1463">#L1348-L1463</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.memory_cache.memoryawareprefixcache.memory_limit_mb method vllm_mlx.memory_cache.memoryawareprefixcache.memory_limit_mb() -&gt; float memory limit in mb.">
<td><a href="../api/vllm_mlx/memory_cache/#contract-vllm_mlx.memory_cache.MemoryAwarePrefixCache.memory_limit_mb"><code>vllm_mlx.memory_cache.MemoryAwarePrefixCache.memory_limit_mb</code></a></td>
<td>method</td>
<td><code>vllm_mlx.memory_cache.MemoryAwarePrefixCache.memory_limit_mb() -&gt; float</code></td>
<td>Memory limit in MB.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/memory_cache.py#L1177-L1179">#L1177-L1179</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.memory_cache.memoryawareprefixcache.memory_usage_mb method vllm_mlx.memory_cache.memoryawareprefixcache.memory_usage_mb() -&gt; float current memory usage in mb.">
<td><a href="../api/vllm_mlx/memory_cache/#contract-vllm_mlx.memory_cache.MemoryAwarePrefixCache.memory_usage_mb"><code>vllm_mlx.memory_cache.MemoryAwarePrefixCache.memory_usage_mb</code></a></td>
<td>method</td>
<td><code>vllm_mlx.memory_cache.MemoryAwarePrefixCache.memory_usage_mb() -&gt; float</code></td>
<td>Current memory usage in MB.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/memory_cache.py#L1172-L1174">#L1172-L1174</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.memory_cache.memoryawareprefixcache.release_reserved_memory method vllm_mlx.memory_cache.memoryawareprefixcache.release_reserved_memory(nbytes: int) -&gt; none release memory previously reserved by try_reserve_memory().">
<td><a href="../api/vllm_mlx/memory_cache/#contract-vllm_mlx.memory_cache.MemoryAwarePrefixCache.release_reserved_memory"><code>vllm_mlx.memory_cache.MemoryAwarePrefixCache.release_reserved_memory</code></a></td>
<td>method</td>
<td><code>vllm_mlx.memory_cache.MemoryAwarePrefixCache.release_reserved_memory(nbytes: int) -&gt; None</code></td>
<td>Release memory previously reserved by try_reserve_memory().</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/memory_cache.py#L1190-L1194">#L1190-L1194</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.memory_cache.memoryawareprefixcache.remove method vllm_mlx.memory_cache.memoryawareprefixcache.remove(tokens: list[int]) -&gt; bool remove a specific cache entry.">
<td><a href="../api/vllm_mlx/memory_cache/#contract-vllm_mlx.memory_cache.MemoryAwarePrefixCache.remove"><code>vllm_mlx.memory_cache.MemoryAwarePrefixCache.remove</code></a></td>
<td>method</td>
<td><code>vllm_mlx.memory_cache.MemoryAwarePrefixCache.remove(tokens: list[int]) -&gt; bool</code></td>
<td>Remove a specific cache entry.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/memory_cache.py#L1128-L1147">#L1128-L1147</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.memory_cache.memoryawareprefixcache.reset_stats method vllm_mlx.memory_cache.memoryawareprefixcache.reset_stats() -&gt; none reset statistics while preserving cache contents.">
<td><a href="../api/vllm_mlx/memory_cache/#contract-vllm_mlx.memory_cache.MemoryAwarePrefixCache.reset_stats"><code>vllm_mlx.memory_cache.MemoryAwarePrefixCache.reset_stats</code></a></td>
<td>method</td>
<td><code>vllm_mlx.memory_cache.MemoryAwarePrefixCache.reset_stats() -&gt; None</code></td>
<td>Reset statistics while preserving cache contents.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/memory_cache.py#L1162-L1169">#L1162-L1169</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.memory_cache.memoryawareprefixcache.save_to_disk method vllm_mlx.memory_cache.memoryawareprefixcache.save_to_disk(cache_dir: str) -&gt; bool save all cache entries to disk using mlx_lm&#x27;s safetensors format.">
<td><a href="../api/vllm_mlx/memory_cache/#contract-vllm_mlx.memory_cache.MemoryAwarePrefixCache.save_to_disk"><code>vllm_mlx.memory_cache.MemoryAwarePrefixCache.save_to_disk</code></a></td>
<td>method</td>
<td><code>vllm_mlx.memory_cache.MemoryAwarePrefixCache.save_to_disk(cache_dir: str) -&gt; bool</code></td>
<td>Save all cache entries to disk using mlx_lm&#x27;s safetensors format.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/memory_cache.py#L1255-L1346">#L1255-L1346</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.memory_cache.memoryawareprefixcache.set_ssd_tier method vllm_mlx.memory_cache.memoryawareprefixcache.set_ssd_tier(ssd_tier) -&gt; none attach an ssd cache tier for eviction spilling.">
<td><a href="../api/vllm_mlx/memory_cache/#contract-vllm_mlx.memory_cache.MemoryAwarePrefixCache.set_ssd_tier"><code>vllm_mlx.memory_cache.MemoryAwarePrefixCache.set_ssd_tier</code></a></td>
<td>method</td>
<td><code>vllm_mlx.memory_cache.MemoryAwarePrefixCache.set_ssd_tier(ssd_tier) -&gt; None</code></td>
<td>Attach an SSD cache tier for eviction spilling.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/memory_cache.py#L1204-L1214">#L1204-L1214</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.memory_cache.memoryawareprefixcache.store method vllm_mlx.memory_cache.memoryawareprefixcache.store(tokens: list[int], cache: list[any], evict_prefixes: bool = true) -&gt; bool store kv cache for future reuse.">
<td><a href="../api/vllm_mlx/memory_cache/#contract-vllm_mlx.memory_cache.MemoryAwarePrefixCache.store"><code>vllm_mlx.memory_cache.MemoryAwarePrefixCache.store</code></a></td>
<td>method</td>
<td><code>vllm_mlx.memory_cache.MemoryAwarePrefixCache.store(tokens: list[int], cache: list[Any], evict_prefixes: bool = True) -&gt; bool</code></td>
<td>Store KV cache for future reuse.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/memory_cache.py#L979-L1092">#L979-L1092</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.memory_cache.memoryawareprefixcache.try_reserve_memory method vllm_mlx.memory_cache.memoryawareprefixcache.try_reserve_memory(nbytes: int) -&gt; bool tentatively reserve cache memory for an upcoming promotion.">
<td><a href="../api/vllm_mlx/memory_cache/#contract-vllm_mlx.memory_cache.MemoryAwarePrefixCache.try_reserve_memory"><code>vllm_mlx.memory_cache.MemoryAwarePrefixCache.try_reserve_memory</code></a></td>
<td>method</td>
<td><code>vllm_mlx.memory_cache.MemoryAwarePrefixCache.try_reserve_memory(nbytes: int) -&gt; bool</code></td>
<td>Tentatively reserve cache memory for an upcoming promotion.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/memory_cache.py#L1181-L1188">#L1181-L1188</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="class" data-symbol-search="vllm_mlx.memory_cache.memorycacheconfig class vllm_mlx.memory_cache.memorycacheconfig(max_memory_mb: int | none = none, max_memory_percent: float = _default_memory_percent, max_entries: int = 1000, enable_memory_tracking: bool = true, kv_quantize: bool = false, kv_bits: int = 8, kv_group_size: int = 64, kv_min_quantize_tokens: int = 256, min_prefix_tokens: int = 128) configuration for memory-aware prefix cache.">
<td><a href="../api/vllm_mlx/memory_cache/#contract-vllm_mlx.memory_cache.MemoryCacheConfig"><code>vllm_mlx.memory_cache.MemoryCacheConfig</code></a></td>
<td>class</td>
<td><code>vllm_mlx.memory_cache.MemoryCacheConfig(max_memory_mb: int | None = None, max_memory_percent: float = _DEFAULT_MEMORY_PERCENT, max_entries: int = 1000, enable_memory_tracking: bool = True, kv_quantize: bool = False, kv_bits: int = 8, kv_group_size: int = 64, kv_min_quantize_tokens: int = 256, min_prefix_tokens: int = 128)</code></td>
<td>Configuration for memory-aware prefix cache.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/memory_cache.py#L166-L225">#L166-L225</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.memory_cache.memorycacheconfig.__post_init__ method vllm_mlx.memory_cache.memorycacheconfig.__post_init__() -&gt; none method `memorycacheconfig.__post_init__` calls `valueerror`; can raise `valueerror`.">
<td><a href="../api/vllm_mlx/memory_cache/#contract-vllm_mlx.memory_cache.MemoryCacheConfig.__post_init__"><code>vllm_mlx.memory_cache.MemoryCacheConfig.__post_init__</code></a></td>
<td>method</td>
<td><code>vllm_mlx.memory_cache.MemoryCacheConfig.__post_init__() -&gt; None</code></td>
<td>Method `MemoryCacheConfig.__post_init__` calls `ValueError`; can raise `ValueError`.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/memory_cache.py#L192-L206">#L192-L206</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.memory_cache.memorycacheconfig.compute_memory_limit method vllm_mlx.memory_cache.memorycacheconfig.compute_memory_limit() -&gt; int compute the memory limit in bytes.">
<td><a href="../api/vllm_mlx/memory_cache/#contract-vllm_mlx.memory_cache.MemoryCacheConfig.compute_memory_limit"><code>vllm_mlx.memory_cache.MemoryCacheConfig.compute_memory_limit</code></a></td>
<td>method</td>
<td><code>vllm_mlx.memory_cache.MemoryCacheConfig.compute_memory_limit() -&gt; int</code></td>
<td>Compute the memory limit in bytes.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/memory_cache.py#L208-L225">#L208-L225</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.metrics._bool_str function vllm_mlx.metrics._bool_str(value: bool) -&gt; str function `_bool_str` returns `&#x27;true&#x27; if value else &#x27;false&#x27;`.">
<td><a href="../api/vllm_mlx/metrics/#contract-vllm_mlx.metrics._bool_str"><code>vllm_mlx.metrics._bool_str</code></a></td>
<td>function</td>
<td><code>vllm_mlx.metrics._bool_str(value: bool) -&gt; str</code></td>
<td>Function `_bool_str` returns `&#x27;true&#x27; if value else &#x27;false&#x27;`.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/metrics.py#L17-L18">#L17-L18</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.metrics._coerce_float function vllm_mlx.metrics._coerce_float(value: any, default: float = 0.0) -&gt; float function `_coerce_float` calls `float`; has 2 explicit return paths.">
<td><a href="../api/vllm_mlx/metrics/#contract-vllm_mlx.metrics._coerce_float"><code>vllm_mlx.metrics._coerce_float</code></a></td>
<td>function</td>
<td><code>vllm_mlx.metrics._coerce_float(value: Any, default: float = 0.0) -&gt; float</code></td>
<td>Function `_coerce_float` calls `float`; has 2 explicit return paths.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/metrics.py#L21-L27">#L21-L27</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.metrics._coerce_int function vllm_mlx.metrics._coerce_int(value: any, default: int = 0) -&gt; int function `_coerce_int` calls `int`; has 2 explicit return paths.">
<td><a href="../api/vllm_mlx/metrics/#contract-vllm_mlx.metrics._coerce_int"><code>vllm_mlx.metrics._coerce_int</code></a></td>
<td>function</td>
<td><code>vllm_mlx.metrics._coerce_int(value: Any, default: int = 0) -&gt; int</code></td>
<td>Function `_coerce_int` calls `int`; has 2 explicit return paths.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/metrics.py#L30-L36">#L30-L36</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="class" data-symbol-search="vllm_mlx.metrics.inferencetracker class vllm_mlx.metrics.inferencetracker(collector: &#x27;metricscollector | none&#x27;, endpoint: str, stream: bool, start_time: float = field(default_factory=time.perf_counter), _finished: bool = false, _ttft_observed: bool = false) request-scoped inference timing and token accounting.">
<td><a href="../api/vllm_mlx/metrics/#contract-vllm_mlx.metrics.InferenceTracker"><code>vllm_mlx.metrics.InferenceTracker</code></a></td>
<td>class</td>
<td><code>vllm_mlx.metrics.InferenceTracker(collector: &#x27;MetricsCollector | None&#x27;, endpoint: str, stream: bool, start_time: float = field(default_factory=time.perf_counter), _finished: bool = False, _ttft_observed: bool = False)</code></td>
<td>Request-scoped inference timing and token accounting.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/metrics.py#L40-L81">#L40-L81</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.metrics.inferencetracker.finish method vllm_mlx.metrics.inferencetracker.finish(*, result: str, prompt_tokens: int = 0, completion_tokens: int = 0) -&gt; none record terminal latency and token counts once for this request.">
<td><a href="../api/vllm_mlx/metrics/#contract-vllm_mlx.metrics.InferenceTracker.finish"><code>vllm_mlx.metrics.InferenceTracker.finish</code></a></td>
<td>method</td>
<td><code>vllm_mlx.metrics.InferenceTracker.finish(*, result: str, prompt_tokens: int = 0, completion_tokens: int = 0) -&gt; None</code></td>
<td>Record terminal latency and token counts once for this request.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/metrics.py#L62-L81">#L62-L81</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.metrics.inferencetracker.observe_ttft method vllm_mlx.metrics.inferencetracker.observe_ttft() -&gt; none record time to first token once for this inference request.">
<td><a href="../api/vllm_mlx/metrics/#contract-vllm_mlx.metrics.InferenceTracker.observe_ttft"><code>vllm_mlx.metrics.InferenceTracker.observe_ttft</code></a></td>
<td>method</td>
<td><code>vllm_mlx.metrics.InferenceTracker.observe_ttft() -&gt; None</code></td>
<td>Record time to first token once for this inference request.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/metrics.py#L50-L60">#L50-L60</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="class" data-symbol-search="vllm_mlx.metrics.metricscollector class vllm_mlx.metrics.metricscollector() lazy prometheus-backed metrics collector.">
<td><a href="../api/vllm_mlx/metrics/#contract-vllm_mlx.metrics.MetricsCollector"><code>vllm_mlx.metrics.MetricsCollector</code></a></td>
<td>class</td>
<td><code>vllm_mlx.metrics.MetricsCollector()</code></td>
<td>Lazy Prometheus-backed metrics collector.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/metrics.py#L84-L529">#L84-L529</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.metrics.metricscollector.__init__ method vllm_mlx.metrics.metricscollector.__init__() -&gt; none method `metricscollector.__init__` updates `self._enabled`, `self._lock`, `self._prom`; calls `threading.lock`.">
<td><a href="../api/vllm_mlx/metrics/#contract-vllm_mlx.metrics.MetricsCollector.__init__"><code>vllm_mlx.metrics.MetricsCollector.__init__</code></a></td>
<td>method</td>
<td><code>vllm_mlx.metrics.MetricsCollector.__init__() -&gt; None</code></td>
<td>Method `MetricsCollector.__init__` updates `self._enabled`, `self._lock`, `self._prom`; calls `threading.Lock`.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/metrics.py#L87-L90">#L87-L90</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.metrics.metricscollector._init_prometheus method vllm_mlx.metrics.metricscollector._init_prometheus() -&gt; none method `metricscollector._init_prometheus` updates `self._prom`; calls `collectorregistry`, `counter`, `histogram`, `gauge`.">
<td><a href="../api/vllm_mlx/metrics/#contract-vllm_mlx.metrics.MetricsCollector._init_prometheus"><code>vllm_mlx.metrics.MetricsCollector._init_prometheus</code></a></td>
<td>method</td>
<td><code>vllm_mlx.metrics.MetricsCollector._init_prometheus() -&gt; None</code></td>
<td>Method `MetricsCollector._init_prometheus` updates `self._prom`; calls `CollectorRegistry`, `Counter`, `Histogram`, `Gauge`.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/metrics.py#L107-L291">#L107-L291</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.metrics.metricscollector._update_engine_gauges method vllm_mlx.metrics.metricscollector._update_engine_gauges(*, engine: any | none, mcp_manager: any | none) -&gt; none method `metricscollector._update_engine_gauges` calls `engine.get_stats`, `self._prom[&#x27;model_loaded&#x27;].set`, `stats.get`, `self._prom[&#x27;engine_type&#x27;].labels(engine_type=engine_type).set`.">
<td><a href="../api/vllm_mlx/metrics/#contract-vllm_mlx.metrics.MetricsCollector._update_engine_gauges"><code>vllm_mlx.metrics.MetricsCollector._update_engine_gauges</code></a></td>
<td>method</td>
<td><code>vllm_mlx.metrics.MetricsCollector._update_engine_gauges(*, engine: Any | None, mcp_manager: Any | None) -&gt; None</code></td>
<td>Method `MetricsCollector._update_engine_gauges` calls `engine.get_stats`, `self._prom[&#x27;model_loaded&#x27;].set`, `stats.get`, `self._prom[&#x27;engine_type&#x27;].labels(engine_type=engine_type).set`.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/metrics.py#L375-L507">#L375-L507</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.metrics.metricscollector.configure method vllm_mlx.metrics.metricscollector.configure(*, enabled: bool) -&gt; none enable or disable collection and lazily initialize prometheus state.">
<td><a href="../api/vllm_mlx/metrics/#contract-vllm_mlx.metrics.MetricsCollector.configure"><code>vllm_mlx.metrics.MetricsCollector.configure</code></a></td>
<td>method</td>
<td><code>vllm_mlx.metrics.MetricsCollector.configure(*, enabled: bool) -&gt; None</code></td>
<td>Enable or disable collection and lazily initialize Prometheus state.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/metrics.py#L98-L105">#L98-L105</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.metrics.metricscollector.enabled method vllm_mlx.metrics.metricscollector.enabled() -&gt; bool return whether metric collection is enabled.">
<td><a href="../api/vllm_mlx/metrics/#contract-vllm_mlx.metrics.MetricsCollector.enabled"><code>vllm_mlx.metrics.MetricsCollector.enabled</code></a></td>
<td>method</td>
<td><code>vllm_mlx.metrics.MetricsCollector.enabled() -&gt; bool</code></td>
<td>Return whether metric collection is enabled.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/metrics.py#L93-L96">#L93-L96</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.metrics.metricscollector.observe_http_finish method vllm_mlx.metrics.metricscollector.observe_http_finish(*, method: str, path: str, status_code: int, duration: float) -&gt; none record an http result and decrement its in-flight gauge.">
<td><a href="../api/vllm_mlx/metrics/#contract-vllm_mlx.metrics.MetricsCollector.observe_http_finish"><code>vllm_mlx.metrics.MetricsCollector.observe_http_finish</code></a></td>
<td>method</td>
<td><code>vllm_mlx.metrics.MetricsCollector.observe_http_finish(*, method: str, path: str, status_code: int, duration: float) -&gt; None</code></td>
<td>Record an HTTP result and decrement its in-flight gauge.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/metrics.py#L307-L328">#L307-L328</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.metrics.metricscollector.observe_http_start method vllm_mlx.metrics.metricscollector.observe_http_start(*, method: str, path: str) -&gt; none increment the in-flight request gauge for a normalized route.">
<td><a href="../api/vllm_mlx/metrics/#contract-vllm_mlx.metrics.MetricsCollector.observe_http_start"><code>vllm_mlx.metrics.MetricsCollector.observe_http_start</code></a></td>
<td>method</td>
<td><code>vllm_mlx.metrics.MetricsCollector.observe_http_start(*, method: str, path: str) -&gt; None</code></td>
<td>Increment the in-flight request gauge for a normalized route.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/metrics.py#L300-L305">#L300-L305</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.metrics.metricscollector.observe_inference method vllm_mlx.metrics.metricscollector.observe_inference(*, endpoint: str, stream: bool, result: str, duration: float, prompt_tokens: int, completion_tokens: int) -&gt; none record one terminal inference outcome, latency, and token totals.">
<td><a href="../api/vllm_mlx/metrics/#contract-vllm_mlx.metrics.MetricsCollector.observe_inference"><code>vllm_mlx.metrics.MetricsCollector.observe_inference</code></a></td>
<td>method</td>
<td><code>vllm_mlx.metrics.MetricsCollector.observe_inference(*, endpoint: str, stream: bool, result: str, duration: float, prompt_tokens: int, completion_tokens: int) -&gt; None</code></td>
<td>Record one terminal inference outcome, latency, and token totals.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/metrics.py#L330-L363">#L330-L363</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.metrics.metricscollector.observe_ttft method vllm_mlx.metrics.metricscollector.observe_ttft(*, endpoint: str, stream: bool, value: float) -&gt; none observe time to first token for a streaming or buffered request.">
<td><a href="../api/vllm_mlx/metrics/#contract-vllm_mlx.metrics.MetricsCollector.observe_ttft"><code>vllm_mlx.metrics.MetricsCollector.observe_ttft</code></a></td>
<td>method</td>
<td><code>vllm_mlx.metrics.MetricsCollector.observe_ttft(*, endpoint: str, stream: bool, value: float) -&gt; None</code></td>
<td>Observe time to first token for a streaming or buffered request.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/metrics.py#L365-L373">#L365-L373</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.metrics.metricscollector.render_metrics method vllm_mlx.metrics.metricscollector.render_metrics(*, engine: any | none, mcp_manager: any | none) -&gt; tuple[bytes, str] refresh runtime gauges and render prometheus exposition bytes.">
<td><a href="../api/vllm_mlx/metrics/#contract-vllm_mlx.metrics.MetricsCollector.render_metrics"><code>vllm_mlx.metrics.MetricsCollector.render_metrics</code></a></td>
<td>method</td>
<td><code>vllm_mlx.metrics.MetricsCollector.render_metrics(*, engine: Any | None, mcp_manager: Any | None) -&gt; tuple[bytes, str]</code></td>
<td>Refresh runtime gauges and render Prometheus exposition bytes.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/metrics.py#L509-L529">#L509-L529</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.metrics.metricscollector.track_inference method vllm_mlx.metrics.metricscollector.track_inference(endpoint: str, *, stream: bool) -&gt; inferencetracker create request-scoped inference timing state for an endpoint.">
<td><a href="../api/vllm_mlx/metrics/#contract-vllm_mlx.metrics.MetricsCollector.track_inference"><code>vllm_mlx.metrics.MetricsCollector.track_inference</code></a></td>
<td>method</td>
<td><code>vllm_mlx.metrics.MetricsCollector.track_inference(endpoint: str, *, stream: bool) -&gt; InferenceTracker</code></td>
<td>Create request-scoped inference timing state for an endpoint.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/metrics.py#L293-L298">#L293-L298</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.mllm_batch_generator._accept_sampled_draft function vllm_mlx.mllm_batch_generator._accept_sampled_draft(target_logprob: float, draft_logprob: float, uniform_draw: float) -&gt; bool apply the exact min(1, p/q) stochastic speculative acceptance rule.">
<td><a href="../api/vllm_mlx/mllm_batch_generator/#contract-vllm_mlx.mllm_batch_generator._accept_sampled_draft"><code>vllm_mlx.mllm_batch_generator._accept_sampled_draft</code></a></td>
<td>function</td>
<td><code>vllm_mlx.mllm_batch_generator._accept_sampled_draft(target_logprob: float, draft_logprob: float, uniform_draw: float) -&gt; bool</code></td>
<td>Apply the exact min(1, p/q) stochastic speculative acceptance rule.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/mllm_batch_generator.py#L142-L149">#L142-L149</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.mllm_batch_generator._cache_eval_tensors function vllm_mlx.mllm_batch_generator._cache_eval_tensors(cache: list[any]) -&gt; list[any] return realized tensors that break lazy cache graphs between chunks.">
<td><a href="../api/vllm_mlx/mllm_batch_generator/#contract-vllm_mlx.mllm_batch_generator._cache_eval_tensors"><code>vllm_mlx.mllm_batch_generator._cache_eval_tensors</code></a></td>
<td>function</td>
<td><code>vllm_mlx.mllm_batch_generator._cache_eval_tensors(cache: List[Any]) -&gt; List[Any]</code></td>
<td>Return realized tensors that break lazy cache graphs between chunks.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/mllm_batch_generator.py#L160-L183">#L160-L183</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.mllm_batch_generator._drop_retired_processors function vllm_mlx.mllm_batch_generator._drop_retired_processors(processors: optional[list[callable]]) -&gt; tuple[optional[list[callable]], int] drop retire-capable processors that have completed their work.">
<td><a href="../api/vllm_mlx/mllm_batch_generator/#contract-vllm_mlx.mllm_batch_generator._drop_retired_processors"><code>vllm_mlx.mllm_batch_generator._drop_retired_processors</code></a></td>
<td>function</td>
<td><code>vllm_mlx.mllm_batch_generator._drop_retired_processors(processors: Optional[List[Callable]]) -&gt; tuple[Optional[List[Callable]], int]</code></td>
<td>Drop retire-capable processors that have completed their work.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/mllm_batch_generator.py#L60-L74">#L60-L74</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.mllm_batch_generator._eval_prompt_cache function vllm_mlx.mllm_batch_generator._eval_prompt_cache(cache: list[any]) -&gt; none evaluate all cache tensors used by hybrid chunked prefill.">
<td><a href="../api/vllm_mlx/mllm_batch_generator/#contract-vllm_mlx.mllm_batch_generator._eval_prompt_cache"><code>vllm_mlx.mllm_batch_generator._eval_prompt_cache</code></a></td>
<td>function</td>
<td><code>vllm_mlx.mllm_batch_generator._eval_prompt_cache(cache: List[Any]) -&gt; None</code></td>
<td>Evaluate all cache tensors used by hybrid chunked prefill.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/mllm_batch_generator.py#L186-L190">#L186-L190</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.mllm_batch_generator._left_pad_prompts function vllm_mlx.mllm_batch_generator._left_pad_prompts(prompts: list[list[int]], max_length: optional[int] = none) -&gt; mx.array left-pad prompts to uniform length.">
<td><a href="../api/vllm_mlx/mllm_batch_generator/#contract-vllm_mlx.mllm_batch_generator._left_pad_prompts"><code>vllm_mlx.mllm_batch_generator._left_pad_prompts</code></a></td>
<td>function</td>
<td><code>vllm_mlx.mllm_batch_generator._left_pad_prompts(prompts: List[List[int]], max_length: Optional[int] = None) -&gt; mx.array</code></td>
<td>Left-pad prompts to uniform length.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/mllm_batch_generator.py#L439-L454">#L439-L454</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.mllm_batch_generator._mark_mtp_attempts_on_primary_responses function vllm_mlx.mllm_batch_generator._mark_mtp_attempts_on_primary_responses(responses: list[&#x27;mllmbatchresponse&#x27;], attempted_drafts_by_uid: dict[int, int]) -&gt; none mark only responses from steps that actually attempted mtp drafts.">
<td><a href="../api/vllm_mlx/mllm_batch_generator/#contract-vllm_mlx.mllm_batch_generator._mark_mtp_attempts_on_primary_responses"><code>vllm_mlx.mllm_batch_generator._mark_mtp_attempts_on_primary_responses</code></a></td>
<td>function</td>
<td><code>vllm_mlx.mllm_batch_generator._mark_mtp_attempts_on_primary_responses(responses: List[&#x27;MLLMBatchResponse&#x27;], attempted_drafts_by_uid: Dict[int, int]) -&gt; None</code></td>
<td>Mark only responses from steps that actually attempted MTP drafts.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/mllm_batch_generator.py#L46-L57">#L46-L57</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.mllm_batch_generator._processors_can_retire function vllm_mlx.mllm_batch_generator._processors_can_retire(processors: optional[list[callable]]) -&gt; bool true when any processor advertises a retire-to-content transition.">
<td><a href="../api/vllm_mlx/mllm_batch_generator/#contract-vllm_mlx.mllm_batch_generator._processors_can_retire"><code>vllm_mlx.mllm_batch_generator._processors_can_retire</code></a></td>
<td>function</td>
<td><code>vllm_mlx.mllm_batch_generator._processors_can_retire(processors: Optional[List[Callable]]) -&gt; bool</code></td>
<td>True when any processor advertises a retire-to-content transition.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/mllm_batch_generator.py#L37-L43">#L37-L43</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.mllm_batch_generator._request_uses_stochastic_sampling function vllm_mlx.mllm_batch_generator._request_uses_stochastic_sampling(request: any) -&gt; bool return whether a request needs sampler-aware speculative verification.">
<td><a href="../api/vllm_mlx/mllm_batch_generator/#contract-vllm_mlx.mllm_batch_generator._request_uses_stochastic_sampling"><code>vllm_mlx.mllm_batch_generator._request_uses_stochastic_sampling</code></a></td>
<td>function</td>
<td><code>vllm_mlx.mllm_batch_generator._request_uses_stochastic_sampling(request: Any) -&gt; bool</code></td>
<td>Return whether a request needs sampler-aware speculative verification.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/mllm_batch_generator.py#L77-L92">#L77-L92</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.mllm_batch_generator._residual_logprobs function vllm_mlx.mllm_batch_generator._residual_logprobs(target_logprobs: mx.array, draft_logprobs: mx.array) -&gt; mx.array return the normalized residual max(target - draft, 0) distribution.">
<td><a href="../api/vllm_mlx/mllm_batch_generator/#contract-vllm_mlx.mllm_batch_generator._residual_logprobs"><code>vllm_mlx.mllm_batch_generator._residual_logprobs</code></a></td>
<td>function</td>
<td><code>vllm_mlx.mllm_batch_generator._residual_logprobs(target_logprobs: mx.array, draft_logprobs: mx.array) -&gt; mx.array</code></td>
<td>Return the normalized residual max(target - draft, 0) distribution.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/mllm_batch_generator.py#L126-L139">#L126-L139</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.mllm_batch_generator._sampling_logprobs function vllm_mlx.mllm_batch_generator._sampling_logprobs(logits: mx.array, request: any) -&gt; mx.array match mlx-lm&#x27;s request sampler in log-probability space.">
<td><a href="../api/vllm_mlx/mllm_batch_generator/#contract-vllm_mlx.mllm_batch_generator._sampling_logprobs"><code>vllm_mlx.mllm_batch_generator._sampling_logprobs</code></a></td>
<td>function</td>
<td><code>vllm_mlx.mllm_batch_generator._sampling_logprobs(logits: mx.array, request: Any) -&gt; mx.array</code></td>
<td>Match mlx-lm&#x27;s request sampler in log-probability space.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/mllm_batch_generator.py#L95-L123">#L95-L123</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.mllm_batch_generator.install_chunked_prefill_mllm function vllm_mlx.mllm_batch_generator.install_chunked_prefill_mllm(batch_gen: &#x27;mllmbatchgenerator&#x27;, budget: int = 1024) -&gt; none install interleaved prefill/decode on an mllmbatchgenerator.">
<td><a href="../api/vllm_mlx/mllm_batch_generator/#contract-vllm_mlx.mllm_batch_generator.install_chunked_prefill_mllm"><code>vllm_mlx.mllm_batch_generator.install_chunked_prefill_mllm</code></a></td>
<td>function</td>
<td><code>vllm_mlx.mllm_batch_generator.install_chunked_prefill_mllm(batch_gen: &#x27;MLLMBatchGenerator&#x27;, budget: int = 1024) -&gt; None</code></td>
<td>Install interleaved prefill/decode on an MLLMBatchGenerator.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/mllm_batch_generator.py#L2593-L3073">#L2593-L3073</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="nested function" data-symbol-search="vllm_mlx.mllm_batch_generator.install_chunked_prefill_mllm._chunked_next nested function vllm_mlx.mllm_batch_generator.install_chunked_prefill_mllm._chunked_next() -&gt; list[mllmbatchresponse] interleaved prefill/decode: one prefill chunk + one gen step.">
<td><a href="../api/vllm_mlx/mllm_batch_generator/#contract-vllm_mlx.mllm_batch_generator.install_chunked_prefill_mllm._chunked_next"><code>vllm_mlx.mllm_batch_generator.install_chunked_prefill_mllm._chunked_next</code></a></td>
<td>nested function</td>
<td><code>vllm_mlx.mllm_batch_generator.install_chunked_prefill_mllm._chunked_next() -&gt; List[MLLMBatchResponse]</code></td>
<td>Interleaved prefill/decode: one prefill chunk + one gen step.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/mllm_batch_generator.py#L2715-L3058">#L2715-L3058</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="nested function" data-symbol-search="vllm_mlx.mllm_batch_generator.install_chunked_prefill_mllm._generation_step nested function vllm_mlx.mllm_batch_generator.install_chunked_prefill_mllm._generation_step() -&gt; list[mllmbatchresponse] run one generation step for the active batch.">
<td><a href="../api/vllm_mlx/mllm_batch_generator/#contract-vllm_mlx.mllm_batch_generator.install_chunked_prefill_mllm._generation_step"><code>vllm_mlx.mllm_batch_generator.install_chunked_prefill_mllm._generation_step</code></a></td>
<td>nested function</td>
<td><code>vllm_mlx.mllm_batch_generator.install_chunked_prefill_mllm._generation_step() -&gt; List[MLLMBatchResponse]</code></td>
<td>Run one generation step for the active batch.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/mllm_batch_generator.py#L2623-L2713">#L2623-L2713</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="nested function" data-symbol-search="vllm_mlx.mllm_batch_generator.install_chunked_prefill_mllm._patched_remove nested function vllm_mlx.mllm_batch_generator.install_chunked_prefill_mllm._patched_remove(uids: list[int]) -&gt; none nested function `install_chunked_prefill_mllm._patched_remove` calls `set`, `mx.clear_cache`, `_orig_remove`.">
<td><a href="../api/vllm_mlx/mllm_batch_generator/#contract-vllm_mlx.mllm_batch_generator.install_chunked_prefill_mllm._patched_remove"><code>vllm_mlx.mllm_batch_generator.install_chunked_prefill_mllm._patched_remove</code></a></td>
<td>nested function</td>
<td><code>vllm_mlx.mllm_batch_generator.install_chunked_prefill_mllm._patched_remove(uids: List[int]) -&gt; None</code></td>
<td>Nested Function `install_chunked_prefill_mllm._patched_remove` calls `set`, `mx.clear_cache`, `_orig_remove`.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/mllm_batch_generator.py#L3063-L3068">#L3063-L3068</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.mllm_batch_generator.install_mtp_mllm function vllm_mlx.mllm_batch_generator.install_mtp_mllm(batch_gen: &#x27;mllmbatchgenerator&#x27;, language_model: any, num_draft_tokens: int = 1) -&gt; none install mtp (multi-token prediction) on an mllmbatchgenerator.">
<td><a href="../api/vllm_mlx/mllm_batch_generator/#contract-vllm_mlx.mllm_batch_generator.install_mtp_mllm"><code>vllm_mlx.mllm_batch_generator.install_mtp_mllm</code></a></td>
<td>function</td>
<td><code>vllm_mlx.mllm_batch_generator.install_mtp_mllm(batch_gen: &#x27;MLLMBatchGenerator&#x27;, language_model: Any, num_draft_tokens: int = 1) -&gt; None</code></td>
<td>Install MTP (Multi-Token Prediction) on an MLLMBatchGenerator.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/mllm_batch_generator.py#L2045-L2590">#L2045-L2590</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="nested function" data-symbol-search="vllm_mlx.mllm_batch_generator.install_mtp_mllm._get_mtp_stats nested function vllm_mlx.mllm_batch_generator.install_mtp_mllm._get_mtp_stats() -&gt; dict[str, any] nested function `install_mtp_mllm._get_mtp_stats` calls `dict`; returns `{&#x27;enabled&#x27;: true, &#x27;requested_draft_tokens&#x27;: num_draft_tokens, &#x27;effective_draft_tokens&#x27;: 1, &#x27;mode&#x27;: &#x27;request_local_sampl…`.">
<td><a href="../api/vllm_mlx/mllm_batch_generator/#contract-vllm_mlx.mllm_batch_generator.install_mtp_mllm._get_mtp_stats"><code>vllm_mlx.mllm_batch_generator.install_mtp_mllm._get_mtp_stats</code></a></td>
<td>nested function</td>
<td><code>vllm_mlx.mllm_batch_generator.install_mtp_mllm._get_mtp_stats() -&gt; Dict[str, Any]</code></td>
<td>Nested Function `install_mtp_mllm._get_mtp_stats` calls `dict`; returns `{&#x27;enabled&#x27;: True, &#x27;requested_draft_tokens&#x27;: num_draft_tokens, &#x27;effective_draft_tokens&#x27;: 1, &#x27;mode&#x27;: &#x27;request_local_sampl…`.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/mllm_batch_generator.py#L2089-L2110">#L2089-L2110</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="nested function" data-symbol-search="vllm_mlx.mllm_batch_generator.install_mtp_mllm._mtp_next nested function vllm_mlx.mllm_batch_generator.install_mtp_mllm._mtp_next() -&gt; list[mllmbatchresponse] wrapper around _next that emits deferred mtp draft tokens.">
<td><a href="../api/vllm_mlx/mllm_batch_generator/#contract-vllm_mlx.mllm_batch_generator.install_mtp_mllm._mtp_next"><code>vllm_mlx.mllm_batch_generator.install_mtp_mllm._mtp_next</code></a></td>
<td>nested function</td>
<td><code>vllm_mlx.mllm_batch_generator.install_mtp_mllm._mtp_next() -&gt; List[MLLMBatchResponse]</code></td>
<td>Wrapper around _next that emits deferred MTP draft tokens.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/mllm_batch_generator.py#L2460-L2576">#L2460-L2576</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="nested function" data-symbol-search="vllm_mlx.mllm_batch_generator.install_mtp_mllm._mtp_step nested function vllm_mlx.mllm_batch_generator.install_mtp_mllm._mtp_step(input_tokens: mx.array, cache: list[any], logits_processors: optional[list[optional[list[callable]]]] = none, output_tokens: optional[list[list[int]]] = none, samplers: optional[list[optional[callable]]] = none) -&gt; tuple[mx.array, list[mx.array]] extended _step with mtp always-advance strategy.">
<td><a href="../api/vllm_mlx/mllm_batch_generator/#contract-vllm_mlx.mllm_batch_generator.install_mtp_mllm._mtp_step"><code>vllm_mlx.mllm_batch_generator.install_mtp_mllm._mtp_step</code></a></td>
<td>nested function</td>
<td><code>vllm_mlx.mllm_batch_generator.install_mtp_mllm._mtp_step(input_tokens: mx.array, cache: List[Any], logits_processors: Optional[List[Optional[List[Callable]]]] = None, output_tokens: Optional[List[List[int]]] = None, samplers: Optional[List[Optional[Callable]]] = None) -&gt; Tuple[mx.array, List[mx.array]]</code></td>
<td>Extended _step with MTP always-advance strategy.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/mllm_batch_generator.py#L2114-L2455">#L2114-L2455</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="class" data-symbol-search="vllm_mlx.mllm_batch_generator.mllmbatch class vllm_mlx.mllm_batch_generator.mllmbatch(uids: list[int], request_ids: list[str], y: mx.array, logprobs: list[mx.array], max_tokens: list[int], num_tokens: list[int], cache: list[any], requests: list[mllmbatchrequest], logits_processors: optional[list[optional[list[callable]]]] = none, samplers: optional[list[optional[callable]]] = none) represents an active batch of mllm requests.">
<td><a href="../api/vllm_mlx/mllm_batch_generator/#contract-vllm_mlx.mllm_batch_generator.MLLMBatch"><code>vllm_mlx.mllm_batch_generator.MLLMBatch</code></a></td>
<td>class</td>
<td><code>vllm_mlx.mllm_batch_generator.MLLMBatch(uids: List[int], request_ids: List[str], y: mx.array, logprobs: List[mx.array], max_tokens: List[int], num_tokens: List[int], cache: List[Any], requests: List[MLLMBatchRequest], logits_processors: Optional[List[Optional[List[Callable]]]] = None, samplers: Optional[List[Optional[Callable]]] = None)</code></td>
<td>Represents an active batch of MLLM requests.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/mllm_batch_generator.py#L260-L392">#L260-L392</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.mllm_batch_generator.mllmbatch.__len__ method vllm_mlx.mllm_batch_generator.mllmbatch.__len__() -&gt; int method `mllmbatch.__len__` calls `len`; returns `len(self.uids)`.">
<td><a href="../api/vllm_mlx/mllm_batch_generator/#contract-vllm_mlx.mllm_batch_generator.MLLMBatch.__len__"><code>vllm_mlx.mllm_batch_generator.MLLMBatch.__len__</code></a></td>
<td>method</td>
<td><code>vllm_mlx.mllm_batch_generator.MLLMBatch.__len__() -&gt; int</code></td>
<td>Method `MLLMBatch.__len__` calls `len`; returns `len(self.uids)`.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/mllm_batch_generator.py#L279-L280">#L279-L280</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.mllm_batch_generator.mllmbatch.extend method vllm_mlx.mllm_batch_generator.mllmbatch.extend(other: &#x27;mllmbatch&#x27;) -&gt; none extend this batch with another batch.">
<td><a href="../api/vllm_mlx/mllm_batch_generator/#contract-vllm_mlx.mllm_batch_generator.MLLMBatch.extend"><code>vllm_mlx.mllm_batch_generator.MLLMBatch.extend</code></a></td>
<td>method</td>
<td><code>vllm_mlx.mllm_batch_generator.MLLMBatch.extend(other: &#x27;MLLMBatch&#x27;) -&gt; None</code></td>
<td>Extend this batch with another batch.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/mllm_batch_generator.py#L308-L351">#L308-L351</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.mllm_batch_generator.mllmbatch.extract_cache method vllm_mlx.mllm_batch_generator.mllmbatch.extract_cache(idx: int) -&gt; list[any] extract cache for a single request (for prefix caching).">
<td><a href="../api/vllm_mlx/mllm_batch_generator/#contract-vllm_mlx.mllm_batch_generator.MLLMBatch.extract_cache"><code>vllm_mlx.mllm_batch_generator.MLLMBatch.extract_cache</code></a></td>
<td>method</td>
<td><code>vllm_mlx.mllm_batch_generator.MLLMBatch.extract_cache(idx: int) -&gt; List[Any]</code></td>
<td>Extract cache for a single request (for prefix caching).</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/mllm_batch_generator.py#L353-L392">#L353-L392</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.mllm_batch_generator.mllmbatch.filter method vllm_mlx.mllm_batch_generator.mllmbatch.filter(keep_idx: list[int]) -&gt; none filter batch to keep only requests at specified indices.">
<td><a href="../api/vllm_mlx/mllm_batch_generator/#contract-vllm_mlx.mllm_batch_generator.MLLMBatch.filter"><code>vllm_mlx.mllm_batch_generator.MLLMBatch.filter</code></a></td>
<td>method</td>
<td><code>vllm_mlx.mllm_batch_generator.MLLMBatch.filter(keep_idx: List[int]) -&gt; None</code></td>
<td>Filter batch to keep only requests at specified indices.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/mllm_batch_generator.py#L282-L306">#L282-L306</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="class" data-symbol-search="vllm_mlx.mllm_batch_generator.mllmbatchgenerator class vllm_mlx.mllm_batch_generator.mllmbatchgenerator(model: nn.module, processor: any, mm_processor: optional[multimodalprocessor] = none, max_tokens: int = 256, stop_tokens: optional[set] = none, sampler: optional[callable[[mx.array], mx.array]] = none, prefill_batch_size: int = 4, completion_batch_size: int = 16, prefill_step_size: int = 1024, enable_vision_cache: bool = true, vision_cache_size: int = 100, prefix_cache_config: optional[memorycacheconfig] = none, max_kv_size: int = 0) batch generator for vision language models.">
<td><a href="../api/vllm_mlx/mllm_batch_generator/#contract-vllm_mlx.mllm_batch_generator.MLLMBatchGenerator"><code>vllm_mlx.mllm_batch_generator.MLLMBatchGenerator</code></a></td>
<td>class</td>
<td><code>vllm_mlx.mllm_batch_generator.MLLMBatchGenerator(model: nn.Module, processor: Any, mm_processor: Optional[MultimodalProcessor] = None, max_tokens: int = 256, stop_tokens: Optional[set] = None, sampler: Optional[Callable[[mx.array], mx.array]] = None, prefill_batch_size: int = 4, completion_batch_size: int = 16, prefill_step_size: int = 1024, enable_vision_cache: bool = True, vision_cache_size: int = 100, prefix_cache_config: Optional[MemoryCacheConfig] = None, max_kv_size: int = 0)</code></td>
<td>Batch generator for Vision Language Models.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/mllm_batch_generator.py#L457-L2042">#L457-L2042</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.mllm_batch_generator.mllmbatchgenerator.__del__ method vllm_mlx.mllm_batch_generator.mllmbatchgenerator.__del__() -&gt; not annotated method `mllmbatchgenerator.__del__` calls `self.close`.">
<td><a href="../api/vllm_mlx/mllm_batch_generator/#contract-vllm_mlx.mllm_batch_generator.MLLMBatchGenerator.__del__"><code>vllm_mlx.mllm_batch_generator.MLLMBatchGenerator.__del__</code></a></td>
<td>method</td>
<td><code>vllm_mlx.mllm_batch_generator.MLLMBatchGenerator.__del__() -&gt; not annotated</code></td>
<td>Method `MLLMBatchGenerator.__del__` calls `self.close`.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/mllm_batch_generator.py#L810-L814">#L810-L814</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.mllm_batch_generator.mllmbatchgenerator.__init__ method vllm_mlx.mllm_batch_generator.mllmbatchgenerator.__init__(model: nn.module, processor: any, mm_processor: optional[multimodalprocessor] = none, max_tokens: int = 256, stop_tokens: optional[set] = none, sampler: optional[callable[[mx.array], mx.array]] = none, prefill_batch_size: int = 4, completion_batch_size: int = 16, prefill_step_size: int = 1024, enable_vision_cache: bool = true, vision_cache_size: int = 100, prefix_cache_config: optional[memorycacheconfig] = none, max_kv_size: int = 0) -&gt; not annotated initialize mllm batch generator.">
<td><a href="../api/vllm_mlx/mllm_batch_generator/#contract-vllm_mlx.mllm_batch_generator.MLLMBatchGenerator.__init__"><code>vllm_mlx.mllm_batch_generator.MLLMBatchGenerator.__init__</code></a></td>
<td>method</td>
<td><code>vllm_mlx.mllm_batch_generator.MLLMBatchGenerator.__init__(model: nn.Module, processor: Any, mm_processor: Optional[MultimodalProcessor] = None, max_tokens: int = 256, stop_tokens: Optional[set] = None, sampler: Optional[Callable[[mx.array], mx.array]] = None, prefill_batch_size: int = 4, completion_batch_size: int = 16, prefill_step_size: int = 1024, enable_vision_cache: bool = True, vision_cache_size: int = 100, prefix_cache_config: Optional[MemoryCacheConfig] = None, max_kv_size: int = 0) -&gt; not annotated</code></td>
<td>Initialize MLLM batch generator.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/mllm_batch_generator.py#L484-L632">#L484-L632</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.mllm_batch_generator.mllmbatchgenerator._compute_think_suffix_len method vllm_mlx.mllm_batch_generator.mllmbatchgenerator._compute_think_suffix_len() -&gt; int compute how many extra tokens enable_thinking=true adds at the end.">
<td><a href="../api/vllm_mlx/mllm_batch_generator/#contract-vllm_mlx.mllm_batch_generator.MLLMBatchGenerator._compute_think_suffix_len"><code>vllm_mlx.mllm_batch_generator.MLLMBatchGenerator._compute_think_suffix_len</code></a></td>
<td>method</td>
<td><code>vllm_mlx.mllm_batch_generator.MLLMBatchGenerator._compute_think_suffix_len() -&gt; int</code></td>
<td>Compute how many extra tokens enable_thinking=True adds at the END.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/mllm_batch_generator.py#L699-L758">#L699-L758</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.mllm_batch_generator.mllmbatchgenerator._copy_prefix_cache method vllm_mlx.mllm_batch_generator.mllmbatchgenerator._copy_prefix_cache(cache_list) -&gt; not annotated create shallow copies of cache objects to prevent mutation of stored prefix cache.">
<td><a href="../api/vllm_mlx/mllm_batch_generator/#contract-vllm_mlx.mllm_batch_generator.MLLMBatchGenerator._copy_prefix_cache"><code>vllm_mlx.mllm_batch_generator.MLLMBatchGenerator._copy_prefix_cache</code></a></td>
<td>method</td>
<td><code>vllm_mlx.mllm_batch_generator.MLLMBatchGenerator._copy_prefix_cache(cache_list) -&gt; not annotated</code></td>
<td>Create shallow copies of cache objects to prevent mutation of stored prefix cache.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/mllm_batch_generator.py#L1026-L1054">#L1026-L1054</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.mllm_batch_generator.mllmbatchgenerator._has_empty_rotating_cache method vllm_mlx.mllm_batch_generator.mllmbatchgenerator._has_empty_rotating_cache(cache_list) -&gt; not annotated check if any rotatingkvcache layer has no data (keys=none).">
<td><a href="../api/vllm_mlx/mllm_batch_generator/#contract-vllm_mlx.mllm_batch_generator.MLLMBatchGenerator._has_empty_rotating_cache"><code>vllm_mlx.mllm_batch_generator.MLLMBatchGenerator._has_empty_rotating_cache</code></a></td>
<td>method</td>
<td><code>vllm_mlx.mllm_batch_generator.MLLMBatchGenerator._has_empty_rotating_cache(cache_list) -&gt; not annotated</code></td>
<td>Check if any RotatingKVCache layer has no data (keys=None).</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/mllm_batch_generator.py#L1057-L1069">#L1057-L1069</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.mllm_batch_generator.mllmbatchgenerator._maybe_store_prefix_cache method vllm_mlx.mllm_batch_generator.mllmbatchgenerator._maybe_store_prefix_cache(batch: mllmbatch, end_indices: list[int]) -&gt; none store kv caches for finished text-only requests into prefix cache.">
<td><a href="../api/vllm_mlx/mllm_batch_generator/#contract-vllm_mlx.mllm_batch_generator.MLLMBatchGenerator._maybe_store_prefix_cache"><code>vllm_mlx.mllm_batch_generator.MLLMBatchGenerator._maybe_store_prefix_cache</code></a></td>
<td>method</td>
<td><code>vllm_mlx.mllm_batch_generator.MLLMBatchGenerator._maybe_store_prefix_cache(batch: MLLMBatch, end_indices: List[int]) -&gt; None</code></td>
<td>Store KV caches for finished text-only requests into prefix cache.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/mllm_batch_generator.py#L1986-L2014">#L1986-L2014</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.mllm_batch_generator.mllmbatchgenerator._next method vllm_mlx.mllm_batch_generator.mllmbatchgenerator._next() -&gt; list[mllmbatchresponse] internal next() implementation.">
<td><a href="../api/vllm_mlx/mllm_batch_generator/#contract-vllm_mlx.mllm_batch_generator.MLLMBatchGenerator._next"><code>vllm_mlx.mllm_batch_generator.MLLMBatchGenerator._next</code></a></td>
<td>method</td>
<td><code>vllm_mlx.mllm_batch_generator.MLLMBatchGenerator._next() -&gt; List[MLLMBatchResponse]</code></td>
<td>Internal next() implementation.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/mllm_batch_generator.py#L1748-L1964">#L1748-L1964</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.mllm_batch_generator.mllmbatchgenerator._normalize_chat_template_for_prefix_cache method vllm_mlx.mllm_batch_generator.mllmbatchgenerator._normalize_chat_template_for_prefix_cache() -&gt; none patch chat template so historical assistant turns are prefix-stable.">
<td><a href="../api/vllm_mlx/mllm_batch_generator/#contract-vllm_mlx.mllm_batch_generator.MLLMBatchGenerator._normalize_chat_template_for_prefix_cache"><code>vllm_mlx.mllm_batch_generator.MLLMBatchGenerator._normalize_chat_template_for_prefix_cache</code></a></td>
<td>method</td>
<td><code>vllm_mlx.mllm_batch_generator.MLLMBatchGenerator._normalize_chat_template_for_prefix_cache() -&gt; None</code></td>
<td>Patch chat template so historical assistant turns are prefix-stable.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/mllm_batch_generator.py#L634-L697">#L634-L697</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.mllm_batch_generator.mllmbatchgenerator._preprocess_request method vllm_mlx.mllm_batch_generator.mllmbatchgenerator._preprocess_request(request: mllmbatchrequest) -&gt; none preprocess a single mllm request (vision encoding).">
<td><a href="../api/vllm_mlx/mllm_batch_generator/#contract-vllm_mlx.mllm_batch_generator.MLLMBatchGenerator._preprocess_request"><code>vllm_mlx.mllm_batch_generator.MLLMBatchGenerator._preprocess_request</code></a></td>
<td>method</td>
<td><code>vllm_mlx.mllm_batch_generator.MLLMBatchGenerator._preprocess_request(request: MLLMBatchRequest) -&gt; None</code></td>
<td>Preprocess a single MLLM request (vision encoding).</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/mllm_batch_generator.py#L872-L1023">#L872-L1023</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.mllm_batch_generator.mllmbatchgenerator._process_prompts method vllm_mlx.mllm_batch_generator.mllmbatchgenerator._process_prompts(requests: list[mllmbatchrequest]) -&gt; mllmbatch process a batch of requests through vision encoding and initial prefill.">
<td><a href="../api/vllm_mlx/mllm_batch_generator/#contract-vllm_mlx.mllm_batch_generator.MLLMBatchGenerator._process_prompts"><code>vllm_mlx.mllm_batch_generator.MLLMBatchGenerator._process_prompts</code></a></td>
<td>method</td>
<td><code>vllm_mlx.mllm_batch_generator.MLLMBatchGenerator._process_prompts(requests: List[MLLMBatchRequest]) -&gt; MLLMBatch</code></td>
<td>Process a batch of requests through vision encoding and initial prefill.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/mllm_batch_generator.py#L1260-L1682">#L1260-L1682</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="nested function" data-symbol-search="vllm_mlx.mllm_batch_generator.mllmbatchgenerator._process_prompts._sample_first_token nested function vllm_mlx.mllm_batch_generator.mllmbatchgenerator._process_prompts._sample_first_token(req: mllmbatchrequest, logits: mx.array) -&gt; not annotated nested function `mllmbatchgenerator._process_prompts._sample_first_token` calls `logits_processors_by_request.get`, `mx.array`, `processor`, `mx.logsumexp`; returns `(sampled, logprobs)`.">
<td><a href="../api/vllm_mlx/mllm_batch_generator/#contract-vllm_mlx.mllm_batch_generator.MLLMBatchGenerator._process_prompts._sample_first_token"><code>vllm_mlx.mllm_batch_generator.MLLMBatchGenerator._process_prompts._sample_first_token</code></a></td>
<td>nested function</td>
<td><code>vllm_mlx.mllm_batch_generator.MLLMBatchGenerator._process_prompts._sample_first_token(req: MLLMBatchRequest, logits: mx.array) -&gt; not annotated</code></td>
<td>Nested Function `MLLMBatchGenerator._process_prompts._sample_first_token` calls `logits_processors_by_request.get`, `mx.array`, `processor`, `mx.logsumexp`; returns `(sampled, logprobs)`.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/mllm_batch_generator.py#L1348-L1362">#L1348-L1362</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.mllm_batch_generator.mllmbatchgenerator._run_chunked_text_prefill method vllm_mlx.mllm_batch_generator.mllmbatchgenerator._run_chunked_text_prefill(request: mllmbatchrequest, cache: list[any]) -&gt; mx.array run prefill in chunks for text-only requests, reporting real progress.">
<td><a href="../api/vllm_mlx/mllm_batch_generator/#contract-vllm_mlx.mllm_batch_generator.MLLMBatchGenerator._run_chunked_text_prefill"><code>vllm_mlx.mllm_batch_generator.MLLMBatchGenerator._run_chunked_text_prefill</code></a></td>
<td>method</td>
<td><code>vllm_mlx.mllm_batch_generator.MLLMBatchGenerator._run_chunked_text_prefill(request: MLLMBatchRequest, cache: List[Any]) -&gt; mx.array</code></td>
<td>Run prefill in chunks for text-only requests, reporting real progress.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/mllm_batch_generator.py#L1108-L1206">#L1108-L1206</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.mllm_batch_generator.mllmbatchgenerator._run_vision_encoding method vllm_mlx.mllm_batch_generator.mllmbatchgenerator._run_vision_encoding(request: mllmbatchrequest, cache: optional[list[any]] = none) -&gt; mx.array run the initial vlm forward pass to encode vision and get first logits.">
<td><a href="../api/vllm_mlx/mllm_batch_generator/#contract-vllm_mlx.mllm_batch_generator.MLLMBatchGenerator._run_vision_encoding"><code>vllm_mlx.mllm_batch_generator.MLLMBatchGenerator._run_vision_encoding</code></a></td>
<td>method</td>
<td><code>vllm_mlx.mllm_batch_generator.MLLMBatchGenerator._run_vision_encoding(request: MLLMBatchRequest, cache: Optional[List[Any]] = None) -&gt; mx.array</code></td>
<td>Run the initial VLM forward pass to encode vision and get first logits.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/mllm_batch_generator.py#L1208-L1258">#L1208-L1258</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.mllm_batch_generator.mllmbatchgenerator._step method vllm_mlx.mllm_batch_generator.mllmbatchgenerator._step(input_tokens: mx.array, cache: list[any], logits_processors: optional[list[optional[list[callable]]]] = none, output_tokens: optional[list[list[int]]] = none, samplers: optional[list[optional[callable]]] = none) -&gt; tuple[mx.array, list[mx.array]] run one generation step through the language model.">
<td><a href="../api/vllm_mlx/mllm_batch_generator/#contract-vllm_mlx.mllm_batch_generator.MLLMBatchGenerator._step"><code>vllm_mlx.mllm_batch_generator.MLLMBatchGenerator._step</code></a></td>
<td>method</td>
<td><code>vllm_mlx.mllm_batch_generator.MLLMBatchGenerator._step(input_tokens: mx.array, cache: List[Any], logits_processors: Optional[List[Optional[List[Callable]]]] = None, output_tokens: Optional[List[List[int]]] = None, samplers: Optional[List[Optional[Callable]]] = None) -&gt; Tuple[mx.array, List[mx.array]]</code></td>
<td>Run one generation step through the language model.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/mllm_batch_generator.py#L1684-L1746">#L1684-L1746</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.mllm_batch_generator.mllmbatchgenerator._trim_rotating_caches method vllm_mlx.mllm_batch_generator.mllmbatchgenerator._trim_rotating_caches(cache_list) -&gt; not annotated trim rotatingkvcache buffers restored from prefix cache.">
<td><a href="../api/vllm_mlx/mllm_batch_generator/#contract-vllm_mlx.mllm_batch_generator.MLLMBatchGenerator._trim_rotating_caches"><code>vllm_mlx.mllm_batch_generator.MLLMBatchGenerator._trim_rotating_caches</code></a></td>
<td>method</td>
<td><code>vllm_mlx.mllm_batch_generator.MLLMBatchGenerator._trim_rotating_caches(cache_list) -&gt; not annotated</code></td>
<td>Trim RotatingKVCache buffers restored from prefix cache.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/mllm_batch_generator.py#L1072-L1106">#L1072-L1106</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.mllm_batch_generator.mllmbatchgenerator.abort_prefill method vllm_mlx.mllm_batch_generator.mllmbatchgenerator.abort_prefill(request_id: str) -&gt; none signal that a request&#x27;s prefill should be aborted.">
<td><a href="../api/vllm_mlx/mllm_batch_generator/#contract-vllm_mlx.mllm_batch_generator.MLLMBatchGenerator.abort_prefill"><code>vllm_mlx.mllm_batch_generator.MLLMBatchGenerator.abort_prefill</code></a></td>
<td>method</td>
<td><code>vllm_mlx.mllm_batch_generator.MLLMBatchGenerator.abort_prefill(request_id: str) -&gt; None</code></td>
<td>Signal that a request&#x27;s prefill should be aborted.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/mllm_batch_generator.py#L767-L775">#L767-L775</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.mllm_batch_generator.mllmbatchgenerator.close method vllm_mlx.mllm_batch_generator.mllmbatchgenerator.close() -&gt; none release resources and reset wired limit.">
<td><a href="../api/vllm_mlx/mllm_batch_generator/#contract-vllm_mlx.mllm_batch_generator.MLLMBatchGenerator.close"><code>vllm_mlx.mllm_batch_generator.MLLMBatchGenerator.close</code></a></td>
<td>method</td>
<td><code>vllm_mlx.mllm_batch_generator.MLLMBatchGenerator.close() -&gt; None</code></td>
<td>Release resources and reset wired limit.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/mllm_batch_generator.py#L760-L765">#L760-L765</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.mllm_batch_generator.mllmbatchgenerator.get_prefill_progress method vllm_mlx.mllm_batch_generator.mllmbatchgenerator.get_prefill_progress(request_id: str) -&gt; optional[tuple[int, int]] return (processed_tokens, total_tokens) or none.">
<td><a href="../api/vllm_mlx/mllm_batch_generator/#contract-vllm_mlx.mllm_batch_generator.MLLMBatchGenerator.get_prefill_progress"><code>vllm_mlx.mllm_batch_generator.MLLMBatchGenerator.get_prefill_progress</code></a></td>
<td>method</td>
<td><code>vllm_mlx.mllm_batch_generator.MLLMBatchGenerator.get_prefill_progress(request_id: str) -&gt; Optional[Tuple[int, int]]</code></td>
<td>Return (processed_tokens, total_tokens) or None.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/mllm_batch_generator.py#L2016-L2018">#L2016-L2018</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.mllm_batch_generator.mllmbatchgenerator.get_prefix_cache_stats method vllm_mlx.mllm_batch_generator.mllmbatchgenerator.get_prefix_cache_stats() -&gt; dict[str, any] get kv prefix cache statistics.">
<td><a href="../api/vllm_mlx/mllm_batch_generator/#contract-vllm_mlx.mllm_batch_generator.MLLMBatchGenerator.get_prefix_cache_stats"><code>vllm_mlx.mllm_batch_generator.MLLMBatchGenerator.get_prefix_cache_stats</code></a></td>
<td>method</td>
<td><code>vllm_mlx.mllm_batch_generator.MLLMBatchGenerator.get_prefix_cache_stats() -&gt; Dict[str, Any]</code></td>
<td>Get KV prefix cache statistics.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/mllm_batch_generator.py#L2024-L2038">#L2024-L2038</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.mllm_batch_generator.mllmbatchgenerator.get_vision_cache_stats method vllm_mlx.mllm_batch_generator.mllmbatchgenerator.get_vision_cache_stats() -&gt; dict[str, any] get vision cache statistics.">
<td><a href="../api/vllm_mlx/mllm_batch_generator/#contract-vllm_mlx.mllm_batch_generator.MLLMBatchGenerator.get_vision_cache_stats"><code>vllm_mlx.mllm_batch_generator.MLLMBatchGenerator.get_vision_cache_stats</code></a></td>
<td>method</td>
<td><code>vllm_mlx.mllm_batch_generator.MLLMBatchGenerator.get_vision_cache_stats() -&gt; Dict[str, Any]</code></td>
<td>Get vision cache statistics.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/mllm_batch_generator.py#L2020-L2022">#L2020-L2022</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.mllm_batch_generator.mllmbatchgenerator.has_pending method vllm_mlx.mllm_batch_generator.mllmbatchgenerator.has_pending() -&gt; bool check if there are pending or active requests.">
<td><a href="../api/vllm_mlx/mllm_batch_generator/#contract-vllm_mlx.mllm_batch_generator.MLLMBatchGenerator.has_pending"><code>vllm_mlx.mllm_batch_generator.MLLMBatchGenerator.has_pending</code></a></td>
<td>method</td>
<td><code>vllm_mlx.mllm_batch_generator.MLLMBatchGenerator.has_pending() -&gt; bool</code></td>
<td>Check if there are pending or active requests.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/mllm_batch_generator.py#L2040-L2042">#L2040-L2042</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.mllm_batch_generator.mllmbatchgenerator.insert method vllm_mlx.mllm_batch_generator.mllmbatchgenerator.insert(requests: list[mllmbatchrequest]) -&gt; list[int] insert requests for batch processing.">
<td><a href="../api/vllm_mlx/mllm_batch_generator/#contract-vllm_mlx.mllm_batch_generator.MLLMBatchGenerator.insert"><code>vllm_mlx.mllm_batch_generator.MLLMBatchGenerator.insert</code></a></td>
<td>method</td>
<td><code>vllm_mlx.mllm_batch_generator.MLLMBatchGenerator.insert(requests: List[MLLMBatchRequest]) -&gt; List[int]</code></td>
<td>Insert requests for batch processing.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/mllm_batch_generator.py#L816-L846">#L816-L846</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.mllm_batch_generator.mllmbatchgenerator.next method vllm_mlx.mllm_batch_generator.mllmbatchgenerator.next() -&gt; list[mllmbatchresponse] generate next token for all requests in the batch.">
<td><a href="../api/vllm_mlx/mllm_batch_generator/#contract-vllm_mlx.mllm_batch_generator.MLLMBatchGenerator.next"><code>vllm_mlx.mllm_batch_generator.MLLMBatchGenerator.next</code></a></td>
<td>method</td>
<td><code>vllm_mlx.mllm_batch_generator.MLLMBatchGenerator.next() -&gt; List[MLLMBatchResponse]</code></td>
<td>Generate next token for all requests in the batch.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/mllm_batch_generator.py#L1966-L1974">#L1966-L1974</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.mllm_batch_generator.mllmbatchgenerator.process_pending_removals method vllm_mlx.mllm_batch_generator.mllmbatchgenerator.process_pending_removals() -&gt; none remove any uids enqueued via :meth:`schedule_removal`.">
<td><a href="../api/vllm_mlx/mllm_batch_generator/#contract-vllm_mlx.mllm_batch_generator.MLLMBatchGenerator.process_pending_removals"><code>vllm_mlx.mllm_batch_generator.MLLMBatchGenerator.process_pending_removals</code></a></td>
<td>method</td>
<td><code>vllm_mlx.mllm_batch_generator.MLLMBatchGenerator.process_pending_removals() -&gt; None</code></td>
<td>Remove any UIDs enqueued via :meth:`schedule_removal`.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/mllm_batch_generator.py#L791-L808">#L791-L808</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.mllm_batch_generator.mllmbatchgenerator.remove method vllm_mlx.mllm_batch_generator.mllmbatchgenerator.remove(uids: list[int]) -&gt; none remove requests from processing.">
<td><a href="../api/vllm_mlx/mllm_batch_generator/#contract-vllm_mlx.mllm_batch_generator.MLLMBatchGenerator.remove"><code>vllm_mlx.mllm_batch_generator.MLLMBatchGenerator.remove</code></a></td>
<td>method</td>
<td><code>vllm_mlx.mllm_batch_generator.MLLMBatchGenerator.remove(uids: List[int]) -&gt; None</code></td>
<td>Remove requests from processing.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/mllm_batch_generator.py#L848-L870">#L848-L870</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.mllm_batch_generator.mllmbatchgenerator.schedule_removal method vllm_mlx.mllm_batch_generator.mllmbatchgenerator.schedule_removal(uids: list[int]) -&gt; none thread-safe deferred removal of uids from the batch.">
<td><a href="../api/vllm_mlx/mllm_batch_generator/#contract-vllm_mlx.mllm_batch_generator.MLLMBatchGenerator.schedule_removal"><code>vllm_mlx.mllm_batch_generator.MLLMBatchGenerator.schedule_removal</code></a></td>
<td>method</td>
<td><code>vllm_mlx.mllm_batch_generator.MLLMBatchGenerator.schedule_removal(uids: List[int]) -&gt; None</code></td>
<td>Thread-safe deferred removal of UIDs from the batch.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/mllm_batch_generator.py#L777-L789">#L777-L789</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.mllm_batch_generator.mllmbatchgenerator.stats method vllm_mlx.mllm_batch_generator.mllmbatchgenerator.stats() -&gt; mllmbatchstats get generation statistics.">
<td><a href="../api/vllm_mlx/mllm_batch_generator/#contract-vllm_mlx.mllm_batch_generator.MLLMBatchGenerator.stats"><code>vllm_mlx.mllm_batch_generator.MLLMBatchGenerator.stats</code></a></td>
<td>method</td>
<td><code>vllm_mlx.mllm_batch_generator.MLLMBatchGenerator.stats() -&gt; MLLMBatchStats</code></td>
<td>Get generation statistics.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/mllm_batch_generator.py#L1976-L1984">#L1976-L1984</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="class" data-symbol-search="vllm_mlx.mllm_batch_generator.mllmbatchrequest class vllm_mlx.mllm_batch_generator.mllmbatchrequest(uid: int, request_id: str, prompt: str, images: optional[list[str]] = none, videos: optional[list[str]] = none, audio: optional[list[str]] = none, max_tokens: int = 256, temperature: float = 0.7, top_p: float = 0.9, top_k: int = 0, min_p: float = 0.0, presence_penalty: float = 0.0, repetition_penalty: float = 1.0, logits_processors: optional[list[callable]] = none, input_ids: optional[mx.array] = none, pixel_values: optional[mx.array] = none, attention_mask: optional[mx.array] = none, image_grid_thw: optional[mx.array] = none, extra_kwargs: dict[str, any] = field(default_factory=dict), is_text_only: bool = false, num_tokens: int = 0, output_tokens: list[int] = field(default_factory=list), vision_encoded: bool = false, cross_attention_states: optional[any] = none, encoder_outputs: optional[any] = none) request data for mllm batch processing.">
<td><a href="../api/vllm_mlx/mllm_batch_generator/#contract-vllm_mlx.mllm_batch_generator.MLLMBatchRequest"><code>vllm_mlx.mllm_batch_generator.MLLMBatchRequest</code></a></td>
<td>class</td>
<td><code>vllm_mlx.mllm_batch_generator.MLLMBatchRequest(uid: int, request_id: str, prompt: str, images: Optional[List[str]] = None, videos: Optional[List[str]] = None, audio: Optional[List[str]] = None, max_tokens: int = 256, temperature: float = 0.7, top_p: float = 0.9, top_k: int = 0, min_p: float = 0.0, presence_penalty: float = 0.0, repetition_penalty: float = 1.0, logits_processors: Optional[List[Callable]] = None, input_ids: Optional[mx.array] = None, pixel_values: Optional[mx.array] = None, attention_mask: Optional[mx.array] = None, image_grid_thw: Optional[mx.array] = None, extra_kwargs: Dict[str, Any] = field(default_factory=dict), is_text_only: bool = False, num_tokens: int = 0, output_tokens: List[int] = field(default_factory=list), vision_encoded: bool = False, cross_attention_states: Optional[Any] = None, encoder_outputs: Optional[Any] = None)</code></td>
<td>Request data for MLLM batch processing.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/mllm_batch_generator.py#L194-L237">#L194-L237</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="class" data-symbol-search="vllm_mlx.mllm_batch_generator.mllmbatchresponse class vllm_mlx.mllm_batch_generator.mllmbatchresponse(uid: int, request_id: str, token: int, logprobs: mx.array, finish_reason: optional[str] = none, prompt_cache: optional[callable[[], list[any]]] = none, from_draft: bool = false, mtp_attempted: bool = false, mtp_attempted_count: int = 0) response from a batch generation step.">
<td><a href="../api/vllm_mlx/mllm_batch_generator/#contract-vllm_mlx.mllm_batch_generator.MLLMBatchResponse"><code>vllm_mlx.mllm_batch_generator.MLLMBatchResponse</code></a></td>
<td>class</td>
<td><code>vllm_mlx.mllm_batch_generator.MLLMBatchResponse(uid: int, request_id: str, token: int, logprobs: mx.array, finish_reason: Optional[str] = None, prompt_cache: Optional[Callable[[], List[Any]]] = None, from_draft: bool = False, mtp_attempted: bool = False, mtp_attempted_count: int = 0)</code></td>
<td>Response from a batch generation step.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/mllm_batch_generator.py#L241-L256">#L241-L256</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="class" data-symbol-search="vllm_mlx.mllm_batch_generator.mllmbatchstats class vllm_mlx.mllm_batch_generator.mllmbatchstats() statistics for mllm batch generation.">
<td><a href="../api/vllm_mlx/mllm_batch_generator/#contract-vllm_mlx.mllm_batch_generator.MLLMBatchStats"><code>vllm_mlx.mllm_batch_generator.MLLMBatchStats</code></a></td>
<td>class</td>
<td><code>vllm_mlx.mllm_batch_generator.MLLMBatchStats()</code></td>
<td>Statistics for MLLM batch generation.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/mllm_batch_generator.py#L395-L436">#L395-L436</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.mllm_batch_generator.mllmbatchstats.__init__ method vllm_mlx.mllm_batch_generator.mllmbatchstats.__init__() -&gt; not annotated method `mllmbatchstats.__init__` updates `self.prompt_tokens`, `self.prompt_time`, `self.generation_tokens`, `self.generation_time`.">
<td><a href="../api/vllm_mlx/mllm_batch_generator/#contract-vllm_mlx.mllm_batch_generator.MLLMBatchStats.__init__"><code>vllm_mlx.mllm_batch_generator.MLLMBatchStats.__init__</code></a></td>
<td>method</td>
<td><code>vllm_mlx.mllm_batch_generator.MLLMBatchStats.__init__() -&gt; not annotated</code></td>
<td>Method `MLLMBatchStats.__init__` updates `self.prompt_tokens`, `self.prompt_time`, `self.generation_tokens`, `self.generation_time`.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/mllm_batch_generator.py#L398-L405">#L398-L405</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.mllm_batch_generator.mllmbatchstats.generation_tps method vllm_mlx.mllm_batch_generator.mllmbatchstats.generation_tps() -&gt; float return measured decode throughput in tokens per second.">
<td><a href="../api/vllm_mlx/mllm_batch_generator/#contract-vllm_mlx.mllm_batch_generator.MLLMBatchStats.generation_tps"><code>vllm_mlx.mllm_batch_generator.MLLMBatchStats.generation_tps</code></a></td>
<td>method</td>
<td><code>vllm_mlx.mllm_batch_generator.MLLMBatchStats.generation_tps() -&gt; float</code></td>
<td>Return measured decode throughput in tokens per second.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/mllm_batch_generator.py#L416-L421">#L416-L421</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.mllm_batch_generator.mllmbatchstats.prompt_tps method vllm_mlx.mllm_batch_generator.mllmbatchstats.prompt_tps() -&gt; float return measured multimodal prompt throughput in tokens per second.">
<td><a href="../api/vllm_mlx/mllm_batch_generator/#contract-vllm_mlx.mllm_batch_generator.MLLMBatchStats.prompt_tps"><code>vllm_mlx.mllm_batch_generator.MLLMBatchStats.prompt_tps</code></a></td>
<td>method</td>
<td><code>vllm_mlx.mllm_batch_generator.MLLMBatchStats.prompt_tps() -&gt; float</code></td>
<td>Return measured multimodal prompt throughput in tokens per second.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/mllm_batch_generator.py#L408-L413">#L408-L413</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.mllm_batch_generator.mllmbatchstats.to_dict method vllm_mlx.mllm_batch_generator.mllmbatchstats.to_dict() -&gt; dict[str, any] return token, timing, vision, and peak-memory statistics.">
<td><a href="../api/vllm_mlx/mllm_batch_generator/#contract-vllm_mlx.mllm_batch_generator.MLLMBatchStats.to_dict"><code>vllm_mlx.mllm_batch_generator.MLLMBatchStats.to_dict</code></a></td>
<td>method</td>
<td><code>vllm_mlx.mllm_batch_generator.MLLMBatchStats.to_dict() -&gt; Dict[str, Any]</code></td>
<td>Return token, timing, vision, and peak-memory statistics.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/mllm_batch_generator.py#L423-L436">#L423-L436</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="class" data-symbol-search="vllm_mlx.mllm_batch_generator.prefillabortederror class vllm_mlx.mllm_batch_generator.prefillabortederror(request_id: str) raised when a prefill is aborted due to client disconnect.">
<td><a href="../api/vllm_mlx/mllm_batch_generator/#contract-vllm_mlx.mllm_batch_generator.PrefillAbortedError"><code>vllm_mlx.mllm_batch_generator.PrefillAbortedError</code></a></td>
<td>class</td>
<td><code>vllm_mlx.mllm_batch_generator.PrefillAbortedError(request_id: str)</code></td>
<td>Raised when a prefill is aborted due to client disconnect.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/mllm_batch_generator.py#L152-L157">#L152-L157</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.mllm_batch_generator.prefillabortederror.__init__ method vllm_mlx.mllm_batch_generator.prefillabortederror.__init__(request_id: str) -&gt; not annotated method `prefillabortederror.__init__` updates `self.request_id`; calls `super().__init__`, `super`.">
<td><a href="../api/vllm_mlx/mllm_batch_generator/#contract-vllm_mlx.mllm_batch_generator.PrefillAbortedError.__init__"><code>vllm_mlx.mllm_batch_generator.PrefillAbortedError.__init__</code></a></td>
<td>method</td>
<td><code>vllm_mlx.mllm_batch_generator.PrefillAbortedError.__init__(request_id: str) -&gt; not annotated</code></td>
<td>Method `PrefillAbortedError.__init__` updates `self.request_id`; calls `super().__init__`, `super`.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/mllm_batch_generator.py#L155-L157">#L155-L157</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.mllm_cache.compute_image_hash function vllm_mlx.mllm_cache.compute_image_hash(image_path: str) -&gt; str compute hash of image content for cache key.">
<td><a href="../api/vllm_mlx/mllm_cache/#contract-vllm_mlx.mllm_cache.compute_image_hash"><code>vllm_mlx.mllm_cache.compute_image_hash</code></a></td>
<td>function</td>
<td><code>vllm_mlx.mllm_cache.compute_image_hash(image_path: str) -&gt; str</code></td>
<td>Compute hash of image content for cache key.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/mllm_cache.py#L136-L161">#L136-L161</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.mllm_cache.compute_images_hash function vllm_mlx.mllm_cache.compute_images_hash(images: list[str]) -&gt; str compute combined hash for multiple images.">
<td><a href="../api/vllm_mlx/mllm_cache/#contract-vllm_mlx.mllm_cache.compute_images_hash"><code>vllm_mlx.mllm_cache.compute_images_hash</code></a></td>
<td>function</td>
<td><code>vllm_mlx.mllm_cache.compute_images_hash(images: list[str]) -&gt; str</code></td>
<td>Compute combined hash for multiple images.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/mllm_cache.py#L164-L179">#L164-L179</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="class" data-symbol-search="vllm_mlx.mllm_cache.mllmcachestats class vllm_mlx.mllm_cache.mllmcachestats(hits: int = 0, misses: int = 0, partial_hits: int = 0, tokens_saved: int = 0, image_cache_hits: int = 0, vision_encoder_skips: int = 0, total_queries: int = 0, evictions: int = 0) statistics for mllm cache performance.">
<td><a href="../api/vllm_mlx/mllm_cache/#contract-vllm_mlx.mllm_cache.MLLMCacheStats"><code>vllm_mlx.mllm_cache.MLLMCacheStats</code></a></td>
<td>class</td>
<td><code>vllm_mlx.mllm_cache.MLLMCacheStats(hits: int = 0, misses: int = 0, partial_hits: int = 0, tokens_saved: int = 0, image_cache_hits: int = 0, vision_encoder_skips: int = 0, total_queries: int = 0, evictions: int = 0)</code></td>
<td>Statistics for MLLM cache performance.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/mllm_cache.py#L34-L65">#L34-L65</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.mllm_cache.mllmcachestats.hit_rate method vllm_mlx.mllm_cache.mllmcachestats.hit_rate() -&gt; float calculate cache hit rate.">
<td><a href="../api/vllm_mlx/mllm_cache/#contract-vllm_mlx.mllm_cache.MLLMCacheStats.hit_rate"><code>vllm_mlx.mllm_cache.MLLMCacheStats.hit_rate</code></a></td>
<td>method</td>
<td><code>vllm_mlx.mllm_cache.MLLMCacheStats.hit_rate() -&gt; float</code></td>
<td>Calculate cache hit rate.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/mllm_cache.py#L47-L51">#L47-L51</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.mllm_cache.mllmcachestats.to_dict method vllm_mlx.mllm_cache.mllmcachestats.to_dict() -&gt; dict convert stats to dictionary.">
<td><a href="../api/vllm_mlx/mllm_cache/#contract-vllm_mlx.mllm_cache.MLLMCacheStats.to_dict"><code>vllm_mlx.mllm_cache.MLLMCacheStats.to_dict</code></a></td>
<td>method</td>
<td><code>vllm_mlx.mllm_cache.MLLMCacheStats.to_dict() -&gt; dict</code></td>
<td>Convert stats to dictionary.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/mllm_cache.py#L53-L65">#L53-L65</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="class" data-symbol-search="vllm_mlx.mllm_cache.mllmprefixcacheentry class vllm_mlx.mllm_cache.mllmprefixcacheentry(image_hash: str, prompt_hash: str, vision_embeddings: any = none, kv_cache: list[any] = field(default_factory=list), token_ids: list[int] = field(default_factory=list), num_image_tokens: int = 0, num_text_tokens: int = 0, prompt_tokens: int = 0, created_at: float = field(default_factory=time.time), hit_count: int = 0, model_name: str = &#x27;&#x27;) enhanced cache entry storing vision embeddings, kv cache, and token ids.">
<td><a href="../api/vllm_mlx/mllm_cache/#contract-vllm_mlx.mllm_cache.MLLMPrefixCacheEntry"><code>vllm_mlx.mllm_cache.MLLMPrefixCacheEntry</code></a></td>
<td>class</td>
<td><code>vllm_mlx.mllm_cache.MLLMPrefixCacheEntry(image_hash: str, prompt_hash: str, vision_embeddings: Any = None, kv_cache: list[Any] = field(default_factory=list), token_ids: list[int] = field(default_factory=list), num_image_tokens: int = 0, num_text_tokens: int = 0, prompt_tokens: int = 0, created_at: float = field(default_factory=time.time), hit_count: int = 0, model_name: str = &#x27;&#x27;)</code></td>
<td>Enhanced cache entry storing vision embeddings, KV cache, and token IDs.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/mllm_cache.py#L69-L133">#L69-L133</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.mllm_cache.mllmprefixcacheentry.get_prefix_match_length method vllm_mlx.mllm_cache.mllmprefixcacheentry.get_prefix_match_length(new_token_ids: list[int]) -&gt; int find how many tokens match between cached prefix and new input.">
<td><a href="../api/vllm_mlx/mllm_cache/#contract-vllm_mlx.mllm_cache.MLLMPrefixCacheEntry.get_prefix_match_length"><code>vllm_mlx.mllm_cache.MLLMPrefixCacheEntry.get_prefix_match_length</code></a></td>
<td>method</td>
<td><code>vllm_mlx.mllm_cache.MLLMPrefixCacheEntry.get_prefix_match_length(new_token_ids: list[int]) -&gt; int</code></td>
<td>Find how many tokens match between cached prefix and new input.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/mllm_cache.py#L121-L133">#L121-L133</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.mllm_cache.mllmprefixcacheentry.memory_size method vllm_mlx.mllm_cache.mllmprefixcacheentry.memory_size() -&gt; int estimate memory usage in bytes.">
<td><a href="../api/vllm_mlx/mllm_cache/#contract-vllm_mlx.mllm_cache.MLLMPrefixCacheEntry.memory_size"><code>vllm_mlx.mllm_cache.MLLMPrefixCacheEntry.memory_size</code></a></td>
<td>method</td>
<td><code>vllm_mlx.mllm_cache.MLLMPrefixCacheEntry.memory_size() -&gt; int</code></td>
<td>Estimate memory usage in bytes.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/mllm_cache.py#L105-L119">#L105-L119</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.mllm_cache.mllmprefixcacheentry.total_tokens method vllm_mlx.mllm_cache.mllmprefixcacheentry.total_tokens() -&gt; int return the number of token ids represented by this cache entry.">
<td><a href="../api/vllm_mlx/mllm_cache/#contract-vllm_mlx.mllm_cache.MLLMPrefixCacheEntry.total_tokens"><code>vllm_mlx.mllm_cache.MLLMPrefixCacheEntry.total_tokens</code></a></td>
<td>method</td>
<td><code>vllm_mlx.mllm_cache.MLLMPrefixCacheEntry.total_tokens() -&gt; int</code></td>
<td>Return the number of token IDs represented by this cache entry.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/mllm_cache.py#L99-L102">#L99-L102</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="class" data-symbol-search="vllm_mlx.mllm_cache.mllmprefixcachemanager class vllm_mlx.mllm_cache.mllmprefixcachemanager(max_entries: int = 50, max_memory_mb: int = 2048) lru cache manager for mllm prefix states with vision embedding caching.">
<td><a href="../api/vllm_mlx/mllm_cache/#contract-vllm_mlx.mllm_cache.MLLMPrefixCacheManager"><code>vllm_mlx.mllm_cache.MLLMPrefixCacheManager</code></a></td>
<td>class</td>
<td><code>vllm_mlx.mllm_cache.MLLMPrefixCacheManager(max_entries: int = 50, max_memory_mb: int = 2048)</code></td>
<td>LRU Cache manager for MLLM prefix states with vision embedding caching.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/mllm_cache.py#L182-L448">#L182-L448</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.mllm_cache.mllmprefixcachemanager.__init__ method vllm_mlx.mllm_cache.mllmprefixcachemanager.__init__(max_entries: int = 50, max_memory_mb: int = 2048) -&gt; not annotated initialize mllm prefix cache manager.">
<td><a href="../api/vllm_mlx/mllm_cache/#contract-vllm_mlx.mllm_cache.MLLMPrefixCacheManager.__init__"><code>vllm_mlx.mllm_cache.MLLMPrefixCacheManager.__init__</code></a></td>
<td>method</td>
<td><code>vllm_mlx.mllm_cache.MLLMPrefixCacheManager.__init__(max_entries: int = 50, max_memory_mb: int = 2048) -&gt; not annotated</code></td>
<td>Initialize MLLM prefix cache manager.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/mllm_cache.py#L211-L227">#L211-L227</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.mllm_cache.mllmprefixcachemanager.__len__ method vllm_mlx.mllm_cache.mllmprefixcachemanager.__len__() -&gt; int return number of cached entries.">
<td><a href="../api/vllm_mlx/mllm_cache/#contract-vllm_mlx.mllm_cache.MLLMPrefixCacheManager.__len__"><code>vllm_mlx.mllm_cache.MLLMPrefixCacheManager.__len__</code></a></td>
<td>method</td>
<td><code>vllm_mlx.mllm_cache.MLLMPrefixCacheManager.__len__() -&gt; int</code></td>
<td>Return number of cached entries.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/mllm_cache.py#L442-L444">#L442-L444</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.mllm_cache.mllmprefixcachemanager.__repr__ method vllm_mlx.mllm_cache.mllmprefixcachemanager.__repr__() -&gt; str method `mllmprefixcachemanager.__repr__` calls `len`; returns `f&#x27;&lt;mllmprefixcachemanager entries={len(self)} memory={mem_mb:.1f}mb&gt;&#x27;`.">
<td><a href="../api/vllm_mlx/mllm_cache/#contract-vllm_mlx.mllm_cache.MLLMPrefixCacheManager.__repr__"><code>vllm_mlx.mllm_cache.MLLMPrefixCacheManager.__repr__</code></a></td>
<td>method</td>
<td><code>vllm_mlx.mllm_cache.MLLMPrefixCacheManager.__repr__() -&gt; str</code></td>
<td>Method `MLLMPrefixCacheManager.__repr__` calls `len`; returns `f&#x27;&lt;MLLMPrefixCacheManager entries={len(self)} memory={mem_mb:.1f}MB&gt;&#x27;`.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/mllm_cache.py#L446-L448">#L446-L448</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.mllm_cache.mllmprefixcachemanager._evict_by_count method vllm_mlx.mllm_cache.mllmprefixcachemanager._evict_by_count() -&gt; none evict entries until we&#x27;re under max_size.">
<td><a href="../api/vllm_mlx/mllm_cache/#contract-vllm_mlx.mllm_cache.MLLMPrefixCacheManager._evict_by_count"><code>vllm_mlx.mllm_cache.MLLMPrefixCacheManager._evict_by_count</code></a></td>
<td>method</td>
<td><code>vllm_mlx.mllm_cache.MLLMPrefixCacheManager._evict_by_count() -&gt; None</code></td>
<td>Evict entries until we&#x27;re under max_size.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/mllm_cache.py#L248-L255">#L248-L255</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.mllm_cache.mllmprefixcachemanager._evict_by_memory method vllm_mlx.mllm_cache.mllmprefixcachemanager._evict_by_memory(required_size: int) -&gt; none evict entries until we have enough memory.">
<td><a href="../api/vllm_mlx/mllm_cache/#contract-vllm_mlx.mllm_cache.MLLMPrefixCacheManager._evict_by_memory"><code>vllm_mlx.mllm_cache.MLLMPrefixCacheManager._evict_by_memory</code></a></td>
<td>method</td>
<td><code>vllm_mlx.mllm_cache.MLLMPrefixCacheManager._evict_by_memory(required_size: int) -&gt; None</code></td>
<td>Evict entries until we have enough memory.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/mllm_cache.py#L239-L246">#L239-L246</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.mllm_cache.mllmprefixcachemanager._make_cache_key method vllm_mlx.mllm_cache.mllmprefixcachemanager._make_cache_key(images: list[str], prompt: str) -&gt; str create cache key from images and prompt.">
<td><a href="../api/vllm_mlx/mllm_cache/#contract-vllm_mlx.mllm_cache.MLLMPrefixCacheManager._make_cache_key"><code>vllm_mlx.mllm_cache.MLLMPrefixCacheManager._make_cache_key</code></a></td>
<td>method</td>
<td><code>vllm_mlx.mllm_cache.MLLMPrefixCacheManager._make_cache_key(images: list[str], prompt: str) -&gt; str</code></td>
<td>Create cache key from images and prompt.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/mllm_cache.py#L229-L233">#L229-L233</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.mllm_cache.mllmprefixcachemanager._make_image_only_key method vllm_mlx.mllm_cache.mllmprefixcachemanager._make_image_only_key(images: list[str]) -&gt; str create cache key for image-only lookup (vision embedding reuse).">
<td><a href="../api/vllm_mlx/mllm_cache/#contract-vllm_mlx.mllm_cache.MLLMPrefixCacheManager._make_image_only_key"><code>vllm_mlx.mllm_cache.MLLMPrefixCacheManager._make_image_only_key</code></a></td>
<td>method</td>
<td><code>vllm_mlx.mllm_cache.MLLMPrefixCacheManager._make_image_only_key(images: list[str]) -&gt; str</code></td>
<td>Create cache key for image-only lookup (vision embedding reuse).</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/mllm_cache.py#L235-L237">#L235-L237</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.mllm_cache.mllmprefixcachemanager.clear method vllm_mlx.mllm_cache.mllmprefixcachemanager.clear() -&gt; none clear all cached entries and reset stats.">
<td><a href="../api/vllm_mlx/mllm_cache/#contract-vllm_mlx.mllm_cache.MLLMPrefixCacheManager.clear"><code>vllm_mlx.mllm_cache.MLLMPrefixCacheManager.clear</code></a></td>
<td>method</td>
<td><code>vllm_mlx.mllm_cache.MLLMPrefixCacheManager.clear() -&gt; None</code></td>
<td>Clear all cached entries and reset stats.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/mllm_cache.py#L436-L440">#L436-L440</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.mllm_cache.mllmprefixcachemanager.fetch method vllm_mlx.mllm_cache.mllmprefixcachemanager.fetch(images: list[str], prompt: str, token_ids: list[int] | none = none) -&gt; tuple[mllmprefixcacheentry | none, int] fetch cached prefix state with prefix matching.">
<td><a href="../api/vllm_mlx/mllm_cache/#contract-vllm_mlx.mllm_cache.MLLMPrefixCacheManager.fetch"><code>vllm_mlx.mllm_cache.MLLMPrefixCacheManager.fetch</code></a></td>
<td>method</td>
<td><code>vllm_mlx.mllm_cache.MLLMPrefixCacheManager.fetch(images: list[str], prompt: str, token_ids: list[int] | None = None) -&gt; tuple[MLLMPrefixCacheEntry | None, int]</code></td>
<td>Fetch cached prefix state with prefix matching.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/mllm_cache.py#L257-L329">#L257-L329</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.mllm_cache.mllmprefixcachemanager.fetch_cache method vllm_mlx.mllm_cache.mllmprefixcachemanager.fetch_cache(images: list[str], prompt: str) -&gt; tuple[list[any] | none, bool] legacy api: fetch cached kv state for image+prompt combination.">
<td><a href="../api/vllm_mlx/mllm_cache/#contract-vllm_mlx.mllm_cache.MLLMPrefixCacheManager.fetch_cache"><code>vllm_mlx.mllm_cache.MLLMPrefixCacheManager.fetch_cache</code></a></td>
<td>method</td>
<td><code>vllm_mlx.mllm_cache.MLLMPrefixCacheManager.fetch_cache(images: list[str], prompt: str) -&gt; tuple[list[Any] | None, bool]</code></td>
<td>Legacy API: Fetch cached KV state for image+prompt combination.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/mllm_cache.py#L331-L345">#L331-L345</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.mllm_cache.mllmprefixcachemanager.get_stats method vllm_mlx.mllm_cache.mllmprefixcachemanager.get_stats() -&gt; dict[str, any] get cache statistics.">
<td><a href="../api/vllm_mlx/mllm_cache/#contract-vllm_mlx.mllm_cache.MLLMPrefixCacheManager.get_stats"><code>vllm_mlx.mllm_cache.MLLMPrefixCacheManager.get_stats</code></a></td>
<td>method</td>
<td><code>vllm_mlx.mllm_cache.MLLMPrefixCacheManager.get_stats() -&gt; dict[str, Any]</code></td>
<td>Get cache statistics.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/mllm_cache.py#L423-L430">#L423-L430</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.mllm_cache.mllmprefixcachemanager.reset_stats method vllm_mlx.mllm_cache.mllmprefixcachemanager.reset_stats() -&gt; none reset statistics counters.">
<td><a href="../api/vllm_mlx/mllm_cache/#contract-vllm_mlx.mllm_cache.MLLMPrefixCacheManager.reset_stats"><code>vllm_mlx.mllm_cache.MLLMPrefixCacheManager.reset_stats</code></a></td>
<td>method</td>
<td><code>vllm_mlx.mllm_cache.MLLMPrefixCacheManager.reset_stats() -&gt; None</code></td>
<td>Reset statistics counters.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/mllm_cache.py#L432-L434">#L432-L434</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.mllm_cache.mllmprefixcachemanager.store method vllm_mlx.mllm_cache.mllmprefixcachemanager.store(images: list[str], prompt: str, vision_embeddings: any, kv_cache: list[any], token_ids: list[int], num_image_tokens: int = 0, model_name: str = &#x27;&#x27;) -&gt; none store prefix state in cache.">
<td><a href="../api/vllm_mlx/mllm_cache/#contract-vllm_mlx.mllm_cache.MLLMPrefixCacheManager.store"><code>vllm_mlx.mllm_cache.MLLMPrefixCacheManager.store</code></a></td>
<td>method</td>
<td><code>vllm_mlx.mllm_cache.MLLMPrefixCacheManager.store(images: list[str], prompt: str, vision_embeddings: Any, kv_cache: list[Any], token_ids: list[int], num_image_tokens: int = 0, model_name: str = &#x27;&#x27;) -&gt; None</code></td>
<td>Store prefix state in cache.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/mllm_cache.py#L347-L396">#L347-L396</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.mllm_cache.mllmprefixcachemanager.store_cache method vllm_mlx.mllm_cache.mllmprefixcachemanager.store_cache(images: list[str], prompt: str, cache: list[any] | none, num_tokens: int = 0) -&gt; none legacy api: store kv cache for future reuse.">
<td><a href="../api/vllm_mlx/mllm_cache/#contract-vllm_mlx.mllm_cache.MLLMPrefixCacheManager.store_cache"><code>vllm_mlx.mllm_cache.MLLMPrefixCacheManager.store_cache</code></a></td>
<td>method</td>
<td><code>vllm_mlx.mllm_cache.MLLMPrefixCacheManager.store_cache(images: list[str], prompt: str, cache: list[Any] | None, num_tokens: int = 0) -&gt; None</code></td>
<td>Legacy API: Store KV cache for future reuse.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/mllm_cache.py#L398-L421">#L398-L421</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="class" data-symbol-search="vllm_mlx.mllm_scheduler.mllmrequest class vllm_mlx.mllm_scheduler.mllmrequest(request_id: str, prompt: str, images: optional[list[str]] = none, videos: optional[list[str]] = none, audio: optional[list[str]] = none, sampling_params: samplingparams = field(default_factory=samplingparams), arrival_time: float = field(default_factory=time.time), batch_uid: optional[int] = none, status: requeststatus = requeststatus.waiting, output_text: str = &#x27;&#x27;, output_tokens: list[int] = field(default_factory=list), finish_reason: optional[str] = none, num_prompt_tokens: int = 0, num_output_tokens: int = 0, mtp_drafts: int = 0, mtp_accepted: int = 0, first_token_time: optional[float] = none) extended request for mllm processing.">
<td><a href="../api/vllm_mlx/mllm_scheduler/#contract-vllm_mlx.mllm_scheduler.MLLMRequest"><code>vllm_mlx.mllm_scheduler.MLLMRequest</code></a></td>
<td>class</td>
<td><code>vllm_mlx.mllm_scheduler.MLLMRequest(request_id: str, prompt: str, images: Optional[List[str]] = None, videos: Optional[List[str]] = None, audio: Optional[List[str]] = None, sampling_params: SamplingParams = field(default_factory=SamplingParams), arrival_time: float = field(default_factory=time.time), batch_uid: Optional[int] = None, status: RequestStatus = RequestStatus.WAITING, output_text: str = &#x27;&#x27;, output_tokens: List[int] = field(default_factory=list), finish_reason: Optional[str] = None, num_prompt_tokens: int = 0, num_output_tokens: int = 0, mtp_drafts: int = 0, mtp_accepted: int = 0, first_token_time: Optional[float] = None)</code></td>
<td>Extended request for MLLM processing.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/mllm_scheduler.py#L96-L127">#L96-L127</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="class" data-symbol-search="vllm_mlx.mllm_scheduler.mllmscheduler class vllm_mlx.mllm_scheduler.mllmscheduler(model: any, processor: any, config: optional[mllmschedulerconfig] = none) scheduler for vision language model requests with continuous batching.">
<td><a href="../api/vllm_mlx/mllm_scheduler/#contract-vllm_mlx.mllm_scheduler.MLLMScheduler"><code>vllm_mlx.mllm_scheduler.MLLMScheduler</code></a></td>
<td>class</td>
<td><code>vllm_mlx.mllm_scheduler.MLLMScheduler(model: Any, processor: Any, config: Optional[MLLMSchedulerConfig] = None)</code></td>
<td>Scheduler for Vision Language Model requests with continuous batching.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/mllm_scheduler.py#L150-L1242">#L150-L1242</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.mllm_scheduler.mllmscheduler.__init__ method vllm_mlx.mllm_scheduler.mllmscheduler.__init__(model: any, processor: any, config: optional[mllmschedulerconfig] = none) -&gt; not annotated initialize mllm scheduler.">
<td><a href="../api/vllm_mlx/mllm_scheduler/#contract-vllm_mlx.mllm_scheduler.MLLMScheduler.__init__"><code>vllm_mlx.mllm_scheduler.MLLMScheduler.__init__</code></a></td>
<td>method</td>
<td><code>vllm_mlx.mllm_scheduler.MLLMScheduler.__init__(model: Any, processor: Any, config: Optional[MLLMSchedulerConfig] = None) -&gt; not annotated</code></td>
<td>Initialize MLLM scheduler.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/mllm_scheduler.py#L183-L248">#L183-L248</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.mllm_scheduler.mllmscheduler._cleanup_finished method vllm_mlx.mllm_scheduler.mllmscheduler._cleanup_finished(finished_ids: set[str]) -&gt; none clean up finished requests.">
<td><a href="../api/vllm_mlx/mllm_scheduler/#contract-vllm_mlx.mllm_scheduler.MLLMScheduler._cleanup_finished"><code>vllm_mlx.mllm_scheduler.MLLMScheduler._cleanup_finished</code></a></td>
<td>method</td>
<td><code>vllm_mlx.mllm_scheduler.MLLMScheduler._cleanup_finished(finished_ids: Set[str]) -&gt; None</code></td>
<td>Clean up finished requests.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/mllm_scheduler.py#L718-L744">#L718-L744</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.mllm_scheduler.mllmscheduler._ensure_batch_generator method vllm_mlx.mllm_scheduler.mllmscheduler._ensure_batch_generator() -&gt; none ensure batch generator exists.">
<td><a href="../api/vllm_mlx/mllm_scheduler/#contract-vllm_mlx.mllm_scheduler.MLLMScheduler._ensure_batch_generator"><code>vllm_mlx.mllm_scheduler.MLLMScheduler._ensure_batch_generator</code></a></td>
<td>method</td>
<td><code>vllm_mlx.mllm_scheduler.MLLMScheduler._ensure_batch_generator() -&gt; None</code></td>
<td>Ensure batch generator exists.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/mllm_scheduler.py#L292-L374">#L292-L374</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.mllm_scheduler.mllmscheduler._get_stop_tokens method vllm_mlx.mllm_scheduler.mllmscheduler._get_stop_tokens() -&gt; set[int] get stop token ids from tokenizer and generation_config.json.">
<td><a href="../api/vllm_mlx/mllm_scheduler/#contract-vllm_mlx.mllm_scheduler.MLLMScheduler._get_stop_tokens"><code>vllm_mlx.mllm_scheduler.MLLMScheduler._get_stop_tokens</code></a></td>
<td>method</td>
<td><code>vllm_mlx.mllm_scheduler.MLLMScheduler._get_stop_tokens() -&gt; Set[int]</code></td>
<td>Get stop token IDs from tokenizer and generation_config.json.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/mllm_scheduler.py#L250-L290">#L250-L290</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.mllm_scheduler.mllmscheduler._process_batch_responses method vllm_mlx.mllm_scheduler.mllmscheduler._process_batch_responses(responses: list[mllmbatchresponse]) -&gt; tuple[list[requestoutput], set[str]] process responses from batch generator.">
<td><a href="../api/vllm_mlx/mllm_scheduler/#contract-vllm_mlx.mllm_scheduler.MLLMScheduler._process_batch_responses"><code>vllm_mlx.mllm_scheduler.MLLMScheduler._process_batch_responses</code></a></td>
<td>method</td>
<td><code>vllm_mlx.mllm_scheduler.MLLMScheduler._process_batch_responses(responses: List[MLLMBatchResponse]) -&gt; Tuple[List[RequestOutput], Set[str]]</code></td>
<td>Process responses from batch generator.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/mllm_scheduler.py#L599-L716">#L599-L716</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.mllm_scheduler.mllmscheduler._process_loop method async vllm_mlx.mllm_scheduler.mllmscheduler._process_loop() -&gt; none main async processing loop.">
<td><a href="../api/vllm_mlx/mllm_scheduler/#contract-vllm_mlx.mllm_scheduler.MLLMScheduler._process_loop"><code>vllm_mlx.mllm_scheduler.MLLMScheduler._process_loop</code></a></td>
<td>method</td>
<td><code>async vllm_mlx.mllm_scheduler.MLLMScheduler._process_loop() -&gt; None</code></td>
<td>Main async processing loop.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/mllm_scheduler.py#L852-L947">#L852-L947</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="nested function" data-symbol-search="vllm_mlx.mllm_scheduler.mllmscheduler._process_loop._ensure_streams_bound nested function vllm_mlx.mllm_scheduler.mllmscheduler._process_loop._ensure_streams_bound() -&gt; none nested function `mllmscheduler._process_loop._ensure_streams_bound` calls `bind_generation_streams`.">
<td><a href="../api/vllm_mlx/mllm_scheduler/#contract-vllm_mlx.mllm_scheduler.MLLMScheduler._process_loop._ensure_streams_bound"><code>vllm_mlx.mllm_scheduler.MLLMScheduler._process_loop._ensure_streams_bound</code></a></td>
<td>nested function</td>
<td><code>vllm_mlx.mllm_scheduler.MLLMScheduler._process_loop._ensure_streams_bound() -&gt; None</code></td>
<td>Nested Function `MLLMScheduler._process_loop._ensure_streams_bound` calls `bind_generation_streams`.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/mllm_scheduler.py#L867-L871">#L867-L871</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.mllm_scheduler.mllmscheduler._schedule_waiting method vllm_mlx.mllm_scheduler.mllmscheduler._schedule_waiting() -&gt; list[mllmrequest] move requests from waiting queue to running.">
<td><a href="../api/vllm_mlx/mllm_scheduler/#contract-vllm_mlx.mllm_scheduler.MLLMScheduler._schedule_waiting"><code>vllm_mlx.mllm_scheduler.MLLMScheduler._schedule_waiting</code></a></td>
<td>method</td>
<td><code>vllm_mlx.mllm_scheduler.MLLMScheduler._schedule_waiting() -&gt; List[MLLMRequest]</code></td>
<td>Move requests from waiting queue to running.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/mllm_scheduler.py#L546-L597">#L546-L597</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.mllm_scheduler.mllmscheduler.abort_request method vllm_mlx.mllm_scheduler.mllmscheduler.abort_request(request_id: str) -&gt; bool abort a request.">
<td><a href="../api/vllm_mlx/mllm_scheduler/#contract-vllm_mlx.mllm_scheduler.MLLMScheduler.abort_request"><code>vllm_mlx.mllm_scheduler.MLLMScheduler.abort_request</code></a></td>
<td>method</td>
<td><code>vllm_mlx.mllm_scheduler.MLLMScheduler.abort_request(request_id: str) -&gt; bool</code></td>
<td>Abort a request.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/mllm_scheduler.py#L455-L532">#L455-L532</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.mllm_scheduler.mllmscheduler.add_request method vllm_mlx.mllm_scheduler.mllmscheduler.add_request(prompt: str, images: optional[list[str]] = none, videos: optional[list[str]] = none, audio: optional[list[str]] = none, max_tokens: int = 256, temperature: float = 0.7, top_p: float = 0.9, request_id: optional[str] = none, **kwargs) -&gt; str add a multimodal request to the scheduler (sync version).">
<td><a href="../api/vllm_mlx/mllm_scheduler/#contract-vllm_mlx.mllm_scheduler.MLLMScheduler.add_request"><code>vllm_mlx.mllm_scheduler.MLLMScheduler.add_request</code></a></td>
<td>method</td>
<td><code>vllm_mlx.mllm_scheduler.MLLMScheduler.add_request(prompt: str, images: Optional[List[str]] = None, videos: Optional[List[str]] = None, audio: Optional[List[str]] = None, max_tokens: int = 256, temperature: float = 0.7, top_p: float = 0.9, request_id: Optional[str] = None, **kwargs) -&gt; str</code></td>
<td>Add a multimodal request to the scheduler (sync version).</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/mllm_scheduler.py#L378-L453">#L378-L453</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.mllm_scheduler.mllmscheduler.add_request_async method async vllm_mlx.mllm_scheduler.mllmscheduler.add_request_async(prompt: str, images: optional[list[str]] = none, videos: optional[list[str]] = none, audio: optional[list[str]] = none, max_tokens: int = 256, temperature: float = 0.7, top_p: float = 0.9, **kwargs) -&gt; str add a multimodal request (async version with output queue).">
<td><a href="../api/vllm_mlx/mllm_scheduler/#contract-vllm_mlx.mllm_scheduler.MLLMScheduler.add_request_async"><code>vllm_mlx.mllm_scheduler.MLLMScheduler.add_request_async</code></a></td>
<td>method</td>
<td><code>async vllm_mlx.mllm_scheduler.MLLMScheduler.add_request_async(prompt: str, images: Optional[List[str]] = None, videos: Optional[List[str]] = None, audio: Optional[List[str]] = None, max_tokens: int = 256, temperature: float = 0.7, top_p: float = 0.9, **kwargs) -&gt; str</code></td>
<td>Add a multimodal request (async version with output queue).</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/mllm_scheduler.py#L949-L990">#L949-L990</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.mllm_scheduler.mllmscheduler.clear_runtime_caches method vllm_mlx.mllm_scheduler.mllmscheduler.clear_runtime_caches() -&gt; dict[str, bool] clear runtime caches without resetting scheduler/request state.">
<td><a href="../api/vllm_mlx/mllm_scheduler/#contract-vllm_mlx.mllm_scheduler.MLLMScheduler.clear_runtime_caches"><code>vllm_mlx.mllm_scheduler.MLLMScheduler.clear_runtime_caches</code></a></td>
<td>method</td>
<td><code>vllm_mlx.mllm_scheduler.MLLMScheduler.clear_runtime_caches() -&gt; Dict[str, bool]</code></td>
<td>Clear runtime caches without resetting scheduler/request state.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/mllm_scheduler.py#L1206-L1221">#L1206-L1221</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.mllm_scheduler.mllmscheduler.generate method async vllm_mlx.mllm_scheduler.mllmscheduler.generate(prompt: str, images: optional[list[str]] = none, videos: optional[list[str]] = none, audio: optional[list[str]] = none, **kwargs) -&gt; requestoutput generate complete output for a request (non-streaming).">
<td><a href="../api/vllm_mlx/mllm_scheduler/#contract-vllm_mlx.mllm_scheduler.MLLMScheduler.generate"><code>vllm_mlx.mllm_scheduler.MLLMScheduler.generate</code></a></td>
<td>method</td>
<td><code>async vllm_mlx.mllm_scheduler.MLLMScheduler.generate(prompt: str, images: Optional[List[str]] = None, videos: Optional[List[str]] = None, audio: Optional[List[str]] = None, **kwargs) -&gt; RequestOutput</code></td>
<td>Generate complete output for a request (non-streaming).</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/mllm_scheduler.py#L1029-L1078">#L1029-L1078</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.mllm_scheduler.mllmscheduler.get_num_running method vllm_mlx.mllm_scheduler.mllmscheduler.get_num_running() -&gt; int get number of running requests.">
<td><a href="../api/vllm_mlx/mllm_scheduler/#contract-vllm_mlx.mllm_scheduler.MLLMScheduler.get_num_running"><code>vllm_mlx.mllm_scheduler.MLLMScheduler.get_num_running</code></a></td>
<td>method</td>
<td><code>vllm_mlx.mllm_scheduler.MLLMScheduler.get_num_running() -&gt; int</code></td>
<td>Get number of running requests.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/mllm_scheduler.py#L542-L544">#L542-L544</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.mllm_scheduler.mllmscheduler.get_num_waiting method vllm_mlx.mllm_scheduler.mllmscheduler.get_num_waiting() -&gt; int get number of waiting requests.">
<td><a href="../api/vllm_mlx/mllm_scheduler/#contract-vllm_mlx.mllm_scheduler.MLLMScheduler.get_num_waiting"><code>vllm_mlx.mllm_scheduler.MLLMScheduler.get_num_waiting</code></a></td>
<td>method</td>
<td><code>vllm_mlx.mllm_scheduler.MLLMScheduler.get_num_waiting() -&gt; int</code></td>
<td>Get number of waiting requests.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/mllm_scheduler.py#L538-L540">#L538-L540</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.mllm_scheduler.mllmscheduler.get_request method vllm_mlx.mllm_scheduler.mllmscheduler.get_request(request_id: str) -&gt; optional[mllmrequest] get a request by id.">
<td><a href="../api/vllm_mlx/mllm_scheduler/#contract-vllm_mlx.mllm_scheduler.MLLMScheduler.get_request"><code>vllm_mlx.mllm_scheduler.MLLMScheduler.get_request</code></a></td>
<td>method</td>
<td><code>vllm_mlx.mllm_scheduler.MLLMScheduler.get_request(request_id: str) -&gt; Optional[MLLMRequest]</code></td>
<td>Get a request by ID.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/mllm_scheduler.py#L815-L817">#L815-L817</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.mllm_scheduler.mllmscheduler.get_running_requests_info method vllm_mlx.mllm_scheduler.mllmscheduler.get_running_requests_info() -&gt; list[dict[str, any]] per-request details for status endpoint.">
<td><a href="../api/vllm_mlx/mllm_scheduler/#contract-vllm_mlx.mllm_scheduler.MLLMScheduler.get_running_requests_info"><code>vllm_mlx.mllm_scheduler.MLLMScheduler.get_running_requests_info</code></a></td>
<td>method</td>
<td><code>vllm_mlx.mllm_scheduler.MLLMScheduler.get_running_requests_info() -&gt; List[Dict[str, Any]]</code></td>
<td>Per-request details for status endpoint.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/mllm_scheduler.py#L1082-L1151">#L1082-L1151</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.mllm_scheduler.mllmscheduler.get_stats method vllm_mlx.mllm_scheduler.mllmscheduler.get_stats() -&gt; dict[str, any] get scheduler statistics.">
<td><a href="../api/vllm_mlx/mllm_scheduler/#contract-vllm_mlx.mllm_scheduler.MLLMScheduler.get_stats"><code>vllm_mlx.mllm_scheduler.MLLMScheduler.get_stats</code></a></td>
<td>method</td>
<td><code>vllm_mlx.mllm_scheduler.MLLMScheduler.get_stats() -&gt; Dict[str, Any]</code></td>
<td>Get scheduler statistics.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/mllm_scheduler.py#L1153-L1204">#L1153-L1204</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.mllm_scheduler.mllmscheduler.has_requests method vllm_mlx.mllm_scheduler.mllmscheduler.has_requests() -&gt; bool check if there are any pending or running requests.">
<td><a href="../api/vllm_mlx/mllm_scheduler/#contract-vllm_mlx.mllm_scheduler.MLLMScheduler.has_requests"><code>vllm_mlx.mllm_scheduler.MLLMScheduler.has_requests</code></a></td>
<td>method</td>
<td><code>vllm_mlx.mllm_scheduler.MLLMScheduler.has_requests() -&gt; bool</code></td>
<td>Check if there are any pending or running requests.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/mllm_scheduler.py#L534-L536">#L534-L536</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.mllm_scheduler.mllmscheduler.remove_finished_request method vllm_mlx.mllm_scheduler.mllmscheduler.remove_finished_request(request_id: str) -&gt; optional[mllmrequest] remove a finished request from tracking.">
<td><a href="../api/vllm_mlx/mllm_scheduler/#contract-vllm_mlx.mllm_scheduler.MLLMScheduler.remove_finished_request"><code>vllm_mlx.mllm_scheduler.MLLMScheduler.remove_finished_request</code></a></td>
<td>method</td>
<td><code>vllm_mlx.mllm_scheduler.MLLMScheduler.remove_finished_request(request_id: str) -&gt; Optional[MLLMRequest]</code></td>
<td>Remove a finished request from tracking.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/mllm_scheduler.py#L819-L821">#L819-L821</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.mllm_scheduler.mllmscheduler.reset method vllm_mlx.mllm_scheduler.mllmscheduler.reset() -&gt; none reset the scheduler state.">
<td><a href="../api/vllm_mlx/mllm_scheduler/#contract-vllm_mlx.mllm_scheduler.MLLMScheduler.reset"><code>vllm_mlx.mllm_scheduler.MLLMScheduler.reset</code></a></td>
<td>method</td>
<td><code>vllm_mlx.mllm_scheduler.MLLMScheduler.reset() -&gt; None</code></td>
<td>Reset the scheduler state.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/mllm_scheduler.py#L1223-L1242">#L1223-L1242</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.mllm_scheduler.mllmscheduler.start method async vllm_mlx.mllm_scheduler.mllmscheduler.start() -&gt; none start the async scheduler processing loop.">
<td><a href="../api/vllm_mlx/mllm_scheduler/#contract-vllm_mlx.mllm_scheduler.MLLMScheduler.start"><code>vllm_mlx.mllm_scheduler.MLLMScheduler.start</code></a></td>
<td>method</td>
<td><code>async vllm_mlx.mllm_scheduler.MLLMScheduler.start() -&gt; None</code></td>
<td>Start the async scheduler processing loop.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/mllm_scheduler.py#L825-L834">#L825-L834</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.mllm_scheduler.mllmscheduler.step method vllm_mlx.mllm_scheduler.mllmscheduler.step() -&gt; mllmscheduleroutput execute one scheduling step.">
<td><a href="../api/vllm_mlx/mllm_scheduler/#contract-vllm_mlx.mllm_scheduler.MLLMScheduler.step"><code>vllm_mlx.mllm_scheduler.MLLMScheduler.step</code></a></td>
<td>method</td>
<td><code>vllm_mlx.mllm_scheduler.MLLMScheduler.step() -&gt; MLLMSchedulerOutput</code></td>
<td>Execute one scheduling step.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/mllm_scheduler.py#L746-L813">#L746-L813</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.mllm_scheduler.mllmscheduler.stop method async vllm_mlx.mllm_scheduler.mllmscheduler.stop() -&gt; none stop the scheduler.">
<td><a href="../api/vllm_mlx/mllm_scheduler/#contract-vllm_mlx.mllm_scheduler.MLLMScheduler.stop"><code>vllm_mlx.mllm_scheduler.MLLMScheduler.stop</code></a></td>
<td>method</td>
<td><code>async vllm_mlx.mllm_scheduler.MLLMScheduler.stop() -&gt; None</code></td>
<td>Stop the scheduler.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/mllm_scheduler.py#L836-L850">#L836-L850</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.mllm_scheduler.mllmscheduler.stream_outputs method async vllm_mlx.mllm_scheduler.mllmscheduler.stream_outputs(request_id: str) -&gt; asynciterator[requestoutput] stream outputs for a request.">
<td><a href="../api/vllm_mlx/mllm_scheduler/#contract-vllm_mlx.mllm_scheduler.MLLMScheduler.stream_outputs"><code>vllm_mlx.mllm_scheduler.MLLMScheduler.stream_outputs</code></a></td>
<td>method</td>
<td><code>async vllm_mlx.mllm_scheduler.MLLMScheduler.stream_outputs(request_id: str) -&gt; AsyncIterator[RequestOutput]</code></td>
<td>Stream outputs for a request.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/mllm_scheduler.py#L992-L1027">#L992-L1027</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="class" data-symbol-search="vllm_mlx.mllm_scheduler.mllmschedulerconfig class vllm_mlx.mllm_scheduler.mllmschedulerconfig(max_num_seqs: int = 16, prefill_batch_size: int = 16, completion_batch_size: int = 16, prefill_step_size: int = 1024, enable_vision_cache: bool = true, vision_cache_size: int = 100, default_max_tokens: int = 256, default_video_fps: float = 2.0, cache_memory_mb: optional[int] = none, max_video_frames: int = 128, enable_mtp: bool = false, mtp_num_draft_tokens: int = 1, enable_prefix_cache: bool = true, use_memory_aware_cache: bool = true, prefix_cache_memory_mb: optional[int] = none, kv_cache_quantization: bool = false, kv_cache_quantization_bits: int = 8, kv_cache_quantization_group_size: int = 64, chunked_prefill_tokens: int = 0, max_kv_size: int = 0, ssd_cache_dir: optional[str] = none, ssd_cache_max_gb: float = 10.0) configuration for mllm scheduler.">
<td><a href="../api/vllm_mlx/mllm_scheduler/#contract-vllm_mlx.mllm_scheduler.MLLMSchedulerConfig"><code>vllm_mlx.mllm_scheduler.MLLMSchedulerConfig</code></a></td>
<td>class</td>
<td><code>vllm_mlx.mllm_scheduler.MLLMSchedulerConfig(max_num_seqs: int = 16, prefill_batch_size: int = 16, completion_batch_size: int = 16, prefill_step_size: int = 1024, enable_vision_cache: bool = True, vision_cache_size: int = 100, default_max_tokens: int = 256, default_video_fps: float = 2.0, cache_memory_mb: Optional[int] = None, max_video_frames: int = 128, enable_mtp: bool = False, mtp_num_draft_tokens: int = 1, enable_prefix_cache: bool = True, use_memory_aware_cache: bool = True, prefix_cache_memory_mb: Optional[int] = None, kv_cache_quantization: bool = False, kv_cache_quantization_bits: int = 8, kv_cache_quantization_group_size: int = 64, chunked_prefill_tokens: int = 0, max_kv_size: int = 0, ssd_cache_dir: Optional[str] = None, ssd_cache_max_gb: float = 10.0)</code></td>
<td>Configuration for MLLM scheduler.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/mllm_scheduler.py#L46-L92">#L46-L92</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="class" data-symbol-search="vllm_mlx.mllm_scheduler.mllmscheduleroutput class vllm_mlx.mllm_scheduler.mllmscheduleroutput(scheduled_request_ids: list[str] = field(default_factory=list), num_scheduled_tokens: int = 0, finished_request_ids: set[str] = field(default_factory=set), outputs: list[requestoutput] = field(default_factory=list), has_work: bool = false) output from a scheduling step.">
<td><a href="../api/vllm_mlx/mllm_scheduler/#contract-vllm_mlx.mllm_scheduler.MLLMSchedulerOutput"><code>vllm_mlx.mllm_scheduler.MLLMSchedulerOutput</code></a></td>
<td>class</td>
<td><code>vllm_mlx.mllm_scheduler.MLLMSchedulerOutput(scheduled_request_ids: List[str] = field(default_factory=list), num_scheduled_tokens: int = 0, finished_request_ids: Set[str] = field(default_factory=set), outputs: List[RequestOutput] = field(default_factory=list), has_work: bool = False)</code></td>
<td>Output from a scheduling step.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/mllm_scheduler.py#L131-L147">#L131-L147</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.mlx_streams.bind_generation_streams function vllm_mlx.mlx_streams.bind_generation_streams(module_names: iterable[str] = (&#x27;mlx_lm.generate&#x27;, &#x27;mlx_vlm.generate&#x27;)) -&gt; object bind mlx-lm/mlx-vlm generation streams to the current thread.">
<td><a href="../api/vllm_mlx/mlx_streams/#contract-vllm_mlx.mlx_streams.bind_generation_streams"><code>vllm_mlx.mlx_streams.bind_generation_streams</code></a></td>
<td>function</td>
<td><code>vllm_mlx.mlx_streams.bind_generation_streams(module_names: Iterable[str] = (&#x27;mlx_lm.generate&#x27;, &#x27;mlx_vlm.generate&#x27;)) -&gt; object</code></td>
<td>Bind mlx-lm/mlx-vlm generation streams to the current thread.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/mlx_streams.py#L15-L39">#L15-L39</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.model_registry._clone_scheduler_config function vllm_mlx.model_registry._clone_scheduler_config(config: schedulerconfig | none) -&gt; schedulerconfig | none clone a schedulerconfig so per-model overrides do not mutate globals.">
<td><a href="../api/vllm_mlx/model_registry/#contract-vllm_mlx.model_registry._clone_scheduler_config"><code>vllm_mlx.model_registry._clone_scheduler_config</code></a></td>
<td>function</td>
<td><code>vllm_mlx.model_registry._clone_scheduler_config(config: SchedulerConfig | None) -&gt; SchedulerConfig | None</code></td>
<td>Clone a SchedulerConfig so per-model overrides do not mutate globals.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/model_registry.py#L234-L238">#L234-L238</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.model_registry._device_working_set_bytes function vllm_mlx.model_registry._device_working_set_bytes() -&gt; int | none best-effort metal recommended working-set size, or none when unavailable.">
<td><a href="../api/vllm_mlx/model_registry/#contract-vllm_mlx.model_registry._device_working_set_bytes"><code>vllm_mlx.model_registry._device_working_set_bytes</code></a></td>
<td>function</td>
<td><code>vllm_mlx.model_registry._device_working_set_bytes() -&gt; int | None</code></td>
<td>Best-effort Metal recommended working-set size, or None when unavailable.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/model_registry.py#L266-L282">#L266-L282</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.model_registry._estimate_model_bytes_from_source function vllm_mlx.model_registry._estimate_model_bytes_from_source(source: str) -&gt; int estimate model footprint from local artifact size when possible.">
<td><a href="../api/vllm_mlx/model_registry/#contract-vllm_mlx.model_registry._estimate_model_bytes_from_source"><code>vllm_mlx.model_registry._estimate_model_bytes_from_source</code></a></td>
<td>function</td>
<td><code>vllm_mlx.model_registry._estimate_model_bytes_from_source(source: str) -&gt; int</code></td>
<td>Estimate model footprint from local artifact size when possible.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/model_registry.py#L505-L521">#L505-L521</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="class" data-symbol-search="vllm_mlx.model_registry._modelownershipregistry class vllm_mlx.model_registry._modelownershipregistry() process-local model ownership guard used by enginecore.">
<td><a href="../api/vllm_mlx/model_registry/#contract-vllm_mlx.model_registry._ModelOwnershipRegistry"><code>vllm_mlx.model_registry._ModelOwnershipRegistry</code></a></td>
<td>class</td>
<td><code>vllm_mlx.model_registry._ModelOwnershipRegistry()</code></td>
<td>Process-local model ownership guard used by EngineCore.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/model_registry.py#L42-L82">#L42-L82</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.model_registry._modelownershipregistry.__init__ method vllm_mlx.model_registry._modelownershipregistry.__init__() -&gt; none method `_modelownershipregistry.__init__` updates `self._owners`.">
<td><a href="../api/vllm_mlx/model_registry/#contract-vllm_mlx.model_registry._ModelOwnershipRegistry.__init__"><code>vllm_mlx.model_registry._ModelOwnershipRegistry.__init__</code></a></td>
<td>method</td>
<td><code>vllm_mlx.model_registry._ModelOwnershipRegistry.__init__() -&gt; None</code></td>
<td>Method `_ModelOwnershipRegistry.__init__` updates `self._owners`.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/model_registry.py#L45-L46">#L45-L46</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.model_registry._modelownershipregistry.acquire method vllm_mlx.model_registry._modelownershipregistry.acquire(*, model: any, engine: any, engine_id: str, force: bool = true) -&gt; none method `_modelownershipregistry.acquire` calls `id`, `self._owners.get`, `modelownershiperror`; can raise `modelownershiperror`.">
<td><a href="../api/vllm_mlx/model_registry/#contract-vllm_mlx.model_registry._ModelOwnershipRegistry.acquire"><code>vllm_mlx.model_registry._ModelOwnershipRegistry.acquire</code></a></td>
<td>method</td>
<td><code>vllm_mlx.model_registry._ModelOwnershipRegistry.acquire(*, model: Any, engine: Any, engine_id: str, force: bool = True) -&gt; None</code></td>
<td>Method `_ModelOwnershipRegistry.acquire` calls `id`, `self._owners.get`, `ModelOwnershipError`; can raise `ModelOwnershipError`.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/model_registry.py#L48-L63">#L48-L63</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.model_registry._modelownershipregistry.get_stats method vllm_mlx.model_registry._modelownershipregistry.get_stats() -&gt; dict[str, any] method `_modelownershipregistry.get_stats` calls `len`; returns `{&#x27;total_entries&#x27;: len(self._owners), &#x27;active_owners&#x27;: len(self._owners)}`.">
<td><a href="../api/vllm_mlx/model_registry/#contract-vllm_mlx.model_registry._ModelOwnershipRegistry.get_stats"><code>vllm_mlx.model_registry._ModelOwnershipRegistry.get_stats</code></a></td>
<td>method</td>
<td><code>vllm_mlx.model_registry._ModelOwnershipRegistry.get_stats() -&gt; dict[str, Any]</code></td>
<td>Method `_ModelOwnershipRegistry.get_stats` calls `len`; returns `{&#x27;total_entries&#x27;: len(self._owners), &#x27;active_owners&#x27;: len(self._owners)}`.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/model_registry.py#L78-L82">#L78-L82</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.model_registry._modelownershipregistry.is_owned method vllm_mlx.model_registry._modelownershipregistry.is_owned(model: any) -&gt; tuple[bool, str | none] method `_modelownershipregistry.is_owned` calls `id`, `self._owners.get`; has 2 explicit return paths.">
<td><a href="../api/vllm_mlx/model_registry/#contract-vllm_mlx.model_registry._ModelOwnershipRegistry.is_owned"><code>vllm_mlx.model_registry._ModelOwnershipRegistry.is_owned</code></a></td>
<td>method</td>
<td><code>vllm_mlx.model_registry._ModelOwnershipRegistry.is_owned(model: Any) -&gt; tuple[bool, str | None]</code></td>
<td>Method `_ModelOwnershipRegistry.is_owned` calls `id`, `self._owners.get`; has 2 explicit return paths.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/model_registry.py#L71-L76">#L71-L76</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.model_registry._modelownershipregistry.release method vllm_mlx.model_registry._modelownershipregistry.release(model: any, engine_id: str) -&gt; none method `_modelownershipregistry.release` calls `id`, `self._owners.get`, `self._owners.pop`.">
<td><a href="../api/vllm_mlx/model_registry/#contract-vllm_mlx.model_registry._ModelOwnershipRegistry.release"><code>vllm_mlx.model_registry._ModelOwnershipRegistry.release</code></a></td>
<td>method</td>
<td><code>vllm_mlx.model_registry._ModelOwnershipRegistry.release(model: Any, engine_id: str) -&gt; None</code></td>
<td>Method `_ModelOwnershipRegistry.release` calls `id`, `self._owners.get`, `self._owners.pop`.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/model_registry.py#L65-L69">#L65-L69</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.model_registry._parse_memory_budget_bytes function vllm_mlx.model_registry._parse_memory_budget_bytes(value: any) -&gt; int parse a memory budget from bytes, mb, or gb.">
<td><a href="../api/vllm_mlx/model_registry/#contract-vllm_mlx.model_registry._parse_memory_budget_bytes"><code>vllm_mlx.model_registry._parse_memory_budget_bytes</code></a></td>
<td>function</td>
<td><code>vllm_mlx.model_registry._parse_memory_budget_bytes(value: Any) -&gt; int</code></td>
<td>Parse a memory budget from bytes, MB, or GB.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/model_registry.py#L241-L256">#L241-L256</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.model_registry._safe_available_memory_bytes function vllm_mlx.model_registry._safe_available_memory_bytes() -&gt; int best-effort available system memory.">
<td><a href="../api/vllm_mlx/model_registry/#contract-vllm_mlx.model_registry._safe_available_memory_bytes"><code>vllm_mlx.model_registry._safe_available_memory_bytes</code></a></td>
<td>function</td>
<td><code>vllm_mlx.model_registry._safe_available_memory_bytes() -&gt; int</code></td>
<td>Best-effort available system memory.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/model_registry.py#L259-L263">#L259-L263</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.model_registry.build_memory_budget_report function vllm_mlx.model_registry.build_memory_budget_report(manager_config: registrymanagerconfig, registry: dict[str, registeredmodel], defaults: registryservedefaults, *, device_working_set_bytes: int | none = none) -&gt; memorybudgetreport reconcile the manager weight budget against the metal allocation ceiling.">
<td><a href="../api/vllm_mlx/model_registry/#contract-vllm_mlx.model_registry.build_memory_budget_report"><code>vllm_mlx.model_registry.build_memory_budget_report</code></a></td>
<td>function</td>
<td><code>vllm_mlx.model_registry.build_memory_budget_report(manager_config: RegistryManagerConfig, registry: dict[str, RegisteredModel], defaults: RegistryServeDefaults, *, device_working_set_bytes: int | None = None) -&gt; MemoryBudgetReport</code></td>
<td>Reconcile the manager weight budget against the Metal allocation ceiling.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/model_registry.py#L342-L421">#L342-L421</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="class" data-symbol-search="vllm_mlx.model_registry.contentionpolicy class vllm_mlx.model_registry.contentionpolicy(strategy: contentionstrategy = &#x27;wait_then_fail&#x27;, wait_timeout_s: float | none = 30.0, preempt_after_s: float | none = none) policy used when a new model cannot fit inside the memory budget.">
<td><a href="../api/vllm_mlx/model_registry/#contract-vllm_mlx.model_registry.ContentionPolicy"><code>vllm_mlx.model_registry.ContentionPolicy</code></a></td>
<td>class</td>
<td><code>vllm_mlx.model_registry.ContentionPolicy(strategy: ContentionStrategy = &#x27;wait_then_fail&#x27;, wait_timeout_s: float | None = 30.0, preempt_after_s: float | None = None)</code></td>
<td>Policy used when a new model cannot fit inside the memory budget.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/model_registry.py#L129-L134">#L129-L134</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.model_registry.get_registry function vllm_mlx.model_registry.get_registry() -&gt; _modelownershipregistry return the global model ownership registry used by enginecore.">
<td><a href="../api/vllm_mlx/model_registry/#contract-vllm_mlx.model_registry.get_registry"><code>vllm_mlx.model_registry.get_registry</code></a></td>
<td>function</td>
<td><code>vllm_mlx.model_registry.get_registry() -&gt; _ModelOwnershipRegistry</code></td>
<td>Return the global model ownership registry used by EngineCore.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/model_registry.py#L88-L90">#L88-L90</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.model_registry.load_registry_config function vllm_mlx.model_registry.load_registry_config(config_path: str | os.pathlike[str], defaults: registryservedefaults) -&gt; tuple[registrymanagerconfig, dict[str, registeredmodel]] load and validate the models registry yaml file.">
<td><a href="../api/vllm_mlx/model_registry/#contract-vllm_mlx.model_registry.load_registry_config"><code>vllm_mlx.model_registry.load_registry_config</code></a></td>
<td>function</td>
<td><code>vllm_mlx.model_registry.load_registry_config(config_path: str | os.PathLike[str], defaults: RegistryServeDefaults) -&gt; tuple[RegistryManagerConfig, dict[str, RegisteredModel]]</code></td>
<td>Load and validate the models registry YAML file.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/model_registry.py#L524-L621">#L524-L621</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="class" data-symbol-search="vllm_mlx.model_registry.loadedmodel class vllm_mlx.model_registry.loadedmodel(config: resolvedmodelconfig, engine: baseengine, loaded_at: float = field(default_factory=time.time), last_used_at: float = field(default_factory=time.time), active_requests: int = 0, active_tasks: set[asyncio.task[any]] = field(default_factory=set), preempting: bool = false) runtime state for a loaded engine.">
<td><a href="../api/vllm_mlx/model_registry/#contract-vllm_mlx.model_registry.LoadedModel"><code>vllm_mlx.model_registry.LoadedModel</code></a></td>
<td>class</td>
<td><code>vllm_mlx.model_registry.LoadedModel(config: ResolvedModelConfig, engine: BaseEngine, loaded_at: float = field(default_factory=time.time), last_used_at: float = field(default_factory=time.time), active_requests: int = 0, active_tasks: set[asyncio.Task[Any]] = field(default_factory=set), preempting: bool = False)</code></td>
<td>Runtime state for a loaded engine.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/model_registry.py#L188-L197">#L188-L197</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.model_registry.log_memory_budget_report function vllm_mlx.model_registry.log_memory_budget_report(report: memorybudgetreport) -&gt; none log the budget/ceiling reconciliation, warning when they conflict.">
<td><a href="../api/vllm_mlx/model_registry/#contract-vllm_mlx.model_registry.log_memory_budget_report"><code>vllm_mlx.model_registry.log_memory_budget_report</code></a></td>
<td>function</td>
<td><code>vllm_mlx.model_registry.log_memory_budget_report(report: MemoryBudgetReport) -&gt; None</code></td>
<td>Log the budget/ceiling reconciliation, warning when they conflict.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/model_registry.py#L424-L502">#L424-L502</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="class" data-symbol-search="vllm_mlx.model_registry.memorybudgetreport class vllm_mlx.model_registry.memorybudgetreport(budget_bytes: int, device_working_set_bytes: int | none, gpu_memory_utilization: float | none, gpu_memory_utilization_source: str | none, per_engine_cache_limit_bytes: int | none, per_engine_cache_percent: float | none, continuous_batching_entries: int, total_entries: int) reconciliation of the manager weight budget with the metal ceiling.">
<td><a href="../api/vllm_mlx/model_registry/#contract-vllm_mlx.model_registry.MemoryBudgetReport"><code>vllm_mlx.model_registry.MemoryBudgetReport</code></a></td>
<td>class</td>
<td><code>vllm_mlx.model_registry.MemoryBudgetReport(budget_bytes: int, device_working_set_bytes: int | None, gpu_memory_utilization: float | None, gpu_memory_utilization_source: str | None, per_engine_cache_limit_bytes: int | None, per_engine_cache_percent: float | None, continuous_batching_entries: int, total_entries: int)</code></td>
<td>Reconciliation of the manager weight budget with the Metal ceiling.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/model_registry.py#L286-L339">#L286-L339</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.model_registry.memorybudgetreport.allocation_ceiling_bytes method vllm_mlx.model_registry.memorybudgetreport.allocation_ceiling_bytes() -&gt; int | none metal soft allocation limit that will be installed at engine start.">
<td><a href="../api/vllm_mlx/model_registry/#contract-vllm_mlx.model_registry.MemoryBudgetReport.allocation_ceiling_bytes"><code>vllm_mlx.model_registry.MemoryBudgetReport.allocation_ceiling_bytes</code></a></td>
<td>method</td>
<td><code>vllm_mlx.model_registry.MemoryBudgetReport.allocation_ceiling_bytes() -&gt; int | None</code></td>
<td>Metal soft allocation limit that will be installed at engine start.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/model_registry.py#L313-L322">#L313-L322</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.model_registry.memorybudgetreport.cache_limit_exceeds_ceiling method vllm_mlx.model_registry.memorybudgetreport.cache_limit_exceeds_ceiling() -&gt; bool true when one engine&#x27;s prefix cache could alone fill the ceiling.">
<td><a href="../api/vllm_mlx/model_registry/#contract-vllm_mlx.model_registry.MemoryBudgetReport.cache_limit_exceeds_ceiling"><code>vllm_mlx.model_registry.MemoryBudgetReport.cache_limit_exceeds_ceiling</code></a></td>
<td>method</td>
<td><code>vllm_mlx.model_registry.MemoryBudgetReport.cache_limit_exceeds_ceiling() -&gt; bool</code></td>
<td>True when one engine&#x27;s prefix cache could alone fill the ceiling.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/model_registry.py#L334-L339">#L334-L339</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.model_registry.memorybudgetreport.exceeds_ceiling method vllm_mlx.model_registry.memorybudgetreport.exceeds_ceiling() -&gt; bool true when the weights budget alone cannot fit under the ceiling.">
<td><a href="../api/vllm_mlx/model_registry/#contract-vllm_mlx.model_registry.MemoryBudgetReport.exceeds_ceiling"><code>vllm_mlx.model_registry.MemoryBudgetReport.exceeds_ceiling</code></a></td>
<td>method</td>
<td><code>vllm_mlx.model_registry.MemoryBudgetReport.exceeds_ceiling() -&gt; bool</code></td>
<td>True when the weights budget alone cannot fit under the ceiling.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/model_registry.py#L325-L331">#L325-L331</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="class" data-symbol-search="vllm_mlx.model_registry.modellease class vllm_mlx.model_registry.modellease(manager: &#x27;modelmanager | none&#x27;, model_name: str, engine: baseengine, release_cb: callable[[], awaitable[none]]) active lease for a loaded model.">
<td><a href="../api/vllm_mlx/model_registry/#contract-vllm_mlx.model_registry.ModelLease"><code>vllm_mlx.model_registry.ModelLease</code></a></td>
<td>class</td>
<td><code>vllm_mlx.model_registry.ModelLease(manager: &#x27;ModelManager | None&#x27;, model_name: str, engine: BaseEngine, release_cb: Callable[[], Awaitable[None]])</code></td>
<td>Active lease for a loaded model.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/model_registry.py#L210-L231">#L210-L231</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.model_registry.modellease.__aenter__ method async vllm_mlx.model_registry.modellease.__aenter__() -&gt; &#x27;modellease&#x27; method `modellease.__aenter__` returns `self`.">
<td><a href="../api/vllm_mlx/model_registry/#contract-vllm_mlx.model_registry.ModelLease.__aenter__"><code>vllm_mlx.model_registry.ModelLease.__aenter__</code></a></td>
<td>method</td>
<td><code>async vllm_mlx.model_registry.ModelLease.__aenter__() -&gt; &#x27;ModelLease&#x27;</code></td>
<td>Method `ModelLease.__aenter__` returns `self`.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/model_registry.py#L227-L228">#L227-L228</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.model_registry.modellease.__aexit__ method async vllm_mlx.model_registry.modellease.__aexit__(exc_type, exc, tb) -&gt; none method `modellease.__aexit__` calls `self.release`; awaits asynchronous work.">
<td><a href="../api/vllm_mlx/model_registry/#contract-vllm_mlx.model_registry.ModelLease.__aexit__"><code>vllm_mlx.model_registry.ModelLease.__aexit__</code></a></td>
<td>method</td>
<td><code>async vllm_mlx.model_registry.ModelLease.__aexit__(exc_type, exc, tb) -&gt; None</code></td>
<td>Method `ModelLease.__aexit__` calls `self.release`; awaits asynchronous work.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/model_registry.py#L230-L231">#L230-L231</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.model_registry.modellease.release method async vllm_mlx.model_registry.modellease.release() -&gt; none release this lease once and allow the model to become evictable.">
<td><a href="../api/vllm_mlx/model_registry/#contract-vllm_mlx.model_registry.ModelLease.release"><code>vllm_mlx.model_registry.ModelLease.release</code></a></td>
<td>method</td>
<td><code>async vllm_mlx.model_registry.ModelLease.release() -&gt; None</code></td>
<td>Release this lease once and allow the model to become evictable.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/model_registry.py#L218-L225">#L218-L225</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="class" data-symbol-search="vllm_mlx.model_registry.modelmanager class vllm_mlx.model_registry.modelmanager(manager_config: registrymanagerconfig, registry: dict[str, registeredmodel], defaults: registryservedefaults, *, engine_factory: enginefactory | none = none) registry-backed model manager with lazy load and memory-budget eviction.">
<td><a href="../api/vllm_mlx/model_registry/#contract-vllm_mlx.model_registry.ModelManager"><code>vllm_mlx.model_registry.ModelManager</code></a></td>
<td>class</td>
<td><code>vllm_mlx.model_registry.ModelManager(manager_config: RegistryManagerConfig, registry: dict[str, RegisteredModel], defaults: RegistryServeDefaults, *, engine_factory: EngineFactory | None = None)</code></td>
<td>Registry-backed model manager with lazy load and memory-budget eviction.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/model_registry.py#L624-L1201">#L624-L1201</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.model_registry.modelmanager.__init__ method vllm_mlx.model_registry.modelmanager.__init__(manager_config: registrymanagerconfig, registry: dict[str, registeredmodel], defaults: registryservedefaults, *, engine_factory: enginefactory | none = none) -&gt; none method `modelmanager.__init__` updates `self._config`, `self._registry`, `self._defaults`, `self._engine_factory`; calls `asyncio.condition`.">
<td><a href="../api/vllm_mlx/model_registry/#contract-vllm_mlx.model_registry.ModelManager.__init__"><code>vllm_mlx.model_registry.ModelManager.__init__</code></a></td>
<td>method</td>
<td><code>vllm_mlx.model_registry.ModelManager.__init__(manager_config: RegistryManagerConfig, registry: dict[str, RegisteredModel], defaults: RegistryServeDefaults, *, engine_factory: EngineFactory | None = None) -&gt; None</code></td>
<td>Method `ModelManager.__init__` updates `self._config`, `self._registry`, `self._defaults`, `self._engine_factory`; calls `asyncio.Condition`.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/model_registry.py#L627-L643">#L627-L643</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.model_registry.modelmanager._begin_unload_locked method vllm_mlx.model_registry.modelmanager._begin_unload_locked(model_name: str) -&gt; loadedmodel method `modelmanager._begin_unload_locked` calls `self._loaded.pop`; returns `loaded`.">
<td><a href="../api/vllm_mlx/model_registry/#contract-vllm_mlx.model_registry.ModelManager._begin_unload_locked"><code>vllm_mlx.model_registry.ModelManager._begin_unload_locked</code></a></td>
<td>method</td>
<td><code>vllm_mlx.model_registry.ModelManager._begin_unload_locked(model_name: str) -&gt; LoadedModel</code></td>
<td>Method `ModelManager._begin_unload_locked` calls `self._loaded.pop`; returns `loaded`.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/model_registry.py#L943-L946">#L943-L946</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.model_registry.modelmanager._can_reserve_locked method vllm_mlx.model_registry.modelmanager._can_reserve_locked(required_bytes: int) -&gt; bool method `modelmanager._can_reserve_locked` calls `self._committed_bytes_locked`; returns `self._committed_bytes_locked() + required_bytes &lt;= self._config.memory_budget_bytes`.">
<td><a href="../api/vllm_mlx/model_registry/#contract-vllm_mlx.model_registry.ModelManager._can_reserve_locked"><code>vllm_mlx.model_registry.ModelManager._can_reserve_locked</code></a></td>
<td>method</td>
<td><code>vllm_mlx.model_registry.ModelManager._can_reserve_locked(required_bytes: int) -&gt; bool</code></td>
<td>Method `ModelManager._can_reserve_locked` calls `self._committed_bytes_locked`; returns `self._committed_bytes_locked() + required_bytes &lt;= self._config.memory_budget_bytes`.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/model_registry.py#L1028-L1032">#L1028-L1032</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.model_registry.modelmanager._claim_loaded_locked method vllm_mlx.model_registry.modelmanager._claim_loaded_locked(model_name: str, *, loaded_override: loadedmodel | none = none) -&gt; modellease | none method `modelmanager._claim_loaded_locked` calls `self._loaded.get`, `time.time`, `asyncio.current_task`, `loaded.active_tasks.add`; has 2 explicit return paths.">
<td><a href="../api/vllm_mlx/model_registry/#contract-vllm_mlx.model_registry.ModelManager._claim_loaded_locked"><code>vllm_mlx.model_registry.ModelManager._claim_loaded_locked</code></a></td>
<td>method</td>
<td><code>vllm_mlx.model_registry.ModelManager._claim_loaded_locked(model_name: str, *, loaded_override: LoadedModel | None = None) -&gt; ModelLease | None</code></td>
<td>Method `ModelManager._claim_loaded_locked` calls `self._loaded.get`, `time.time`, `asyncio.current_task`, `loaded.active_tasks.add`; has 2 explicit return paths.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/model_registry.py#L844-L874">#L844-L874</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="nested function" data-symbol-search="vllm_mlx.model_registry.modelmanager._claim_loaded_locked._release nested function async vllm_mlx.model_registry.modelmanager._claim_loaded_locked._release() -&gt; none nested function `modelmanager._claim_loaded_locked._release` calls `self.release`; awaits asynchronous work.">
<td><a href="../api/vllm_mlx/model_registry/#contract-vllm_mlx.model_registry.ModelManager._claim_loaded_locked._release"><code>vllm_mlx.model_registry.ModelManager._claim_loaded_locked._release</code></a></td>
<td>nested function</td>
<td><code>async vllm_mlx.model_registry.ModelManager._claim_loaded_locked._release() -&gt; None</code></td>
<td>Nested Function `ModelManager._claim_loaded_locked._release` calls `self.release`; awaits asynchronous work.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/model_registry.py#L866-L867">#L866-L867</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.model_registry.modelmanager._collect_idle_unloads_locked method vllm_mlx.model_registry.modelmanager._collect_idle_unloads_locked(requested_model: str, required_bytes: int) -&gt; list[loadedmodel] method `modelmanager._collect_idle_unloads_locked` calls `self._committed_bytes_locked`, `sorted`, `self._loaded.items`, `selected.append`; returns `selected`.">
<td><a href="../api/vllm_mlx/model_registry/#contract-vllm_mlx.model_registry.ModelManager._collect_idle_unloads_locked"><code>vllm_mlx.model_registry.ModelManager._collect_idle_unloads_locked</code></a></td>
<td>method</td>
<td><code>vllm_mlx.model_registry.ModelManager._collect_idle_unloads_locked(requested_model: str, required_bytes: int) -&gt; list[LoadedModel]</code></td>
<td>Method `ModelManager._collect_idle_unloads_locked` calls `self._committed_bytes_locked`, `sorted`, `self._loaded.items`, `selected.append`; returns `selected`.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/model_registry.py#L948-L968">#L948-L968</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.model_registry.modelmanager._committed_bytes_locked method vllm_mlx.model_registry.modelmanager._committed_bytes_locked() -&gt; int method `modelmanager._committed_bytes_locked` calls `sum`, `self._loaded.values`, `self._loading.values`, `self._unloading.values`; returns `loaded_bytes + loading_bytes + unloading_bytes`.">
<td><a href="../api/vllm_mlx/model_registry/#contract-vllm_mlx.model_registry.ModelManager._committed_bytes_locked"><code>vllm_mlx.model_registry.ModelManager._committed_bytes_locked</code></a></td>
<td>method</td>
<td><code>vllm_mlx.model_registry.ModelManager._committed_bytes_locked() -&gt; int</code></td>
<td>Method `ModelManager._committed_bytes_locked` calls `sum`, `self._loaded.values`, `self._loading.values`, `self._unloading.values`; returns `loaded_bytes + loading_bytes + unloading_bytes`.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/model_registry.py#L1034-L1042">#L1034-L1042</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.model_registry.modelmanager._execute_load method async vllm_mlx.model_registry.modelmanager._execute_load(pending: pendingload) -&gt; loadedmodel instantiate a reserved model load outside the manager lock.">
<td><a href="../api/vllm_mlx/model_registry/#contract-vllm_mlx.model_registry.ModelManager._execute_load"><code>vllm_mlx.model_registry.ModelManager._execute_load</code></a></td>
<td>method</td>
<td><code>async vllm_mlx.model_registry.ModelManager._execute_load(pending: PendingLoad) -&gt; LoadedModel</code></td>
<td>Instantiate a reserved model load outside the manager lock.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/model_registry.py#L876-L913">#L876-L913</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.model_registry.modelmanager._instantiate_model method async vllm_mlx.model_registry.modelmanager._instantiate_model(entry: registeredmodel, resolved_source: str) -&gt; loadedmodel method `modelmanager._instantiate_model` calls `self._resolve_model_config`, `self._engine_factory`, `batchedengine`, `simpleengine`; awaits asynchronous work; returns `loadedmodel(config=config, engine=engine)`.">
<td><a href="../api/vllm_mlx/model_registry/#contract-vllm_mlx.model_registry.ModelManager._instantiate_model"><code>vllm_mlx.model_registry.ModelManager._instantiate_model</code></a></td>
<td>method</td>
<td><code>async vllm_mlx.model_registry.ModelManager._instantiate_model(entry: RegisteredModel, resolved_source: str) -&gt; LoadedModel</code></td>
<td>Method `ModelManager._instantiate_model` calls `self._resolve_model_config`, `self._engine_factory`, `BatchedEngine`, `SimpleEngine`; awaits asynchronous work; returns `LoadedModel(config=config, engine=engine)`.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/model_registry.py#L1044-L1073">#L1044-L1073</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.model_registry.modelmanager._maybe_preempt_locked method vllm_mlx.model_registry.modelmanager._maybe_preempt_locked(*, model_name: str, required_bytes: int, start: float) -&gt; set[asyncio.task[any]] method `modelmanager._maybe_preempt_locked` calls `self._should_preempt_locked`, `set`, `self._committed_bytes_locked`, `sorted`; has 2 explicit return paths.">
<td><a href="../api/vllm_mlx/model_registry/#contract-vllm_mlx.model_registry.ModelManager._maybe_preempt_locked"><code>vllm_mlx.model_registry.ModelManager._maybe_preempt_locked</code></a></td>
<td>method</td>
<td><code>vllm_mlx.model_registry.ModelManager._maybe_preempt_locked(*, model_name: str, required_bytes: int, start: float) -&gt; set[asyncio.Task[Any]]</code></td>
<td>Method `ModelManager._maybe_preempt_locked` calls `self._should_preempt_locked`, `set`, `self._committed_bytes_locked`, `sorted`; has 2 explicit return paths.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/model_registry.py#L970-L1003">#L970-L1003</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.model_registry.modelmanager._remaining_wait_timeout method vllm_mlx.model_registry.modelmanager._remaining_wait_timeout(start: float) -&gt; float | none method `modelmanager._remaining_wait_timeout` calls `max`, `time.monotonic`; has 2 explicit return paths.">
<td><a href="../api/vllm_mlx/model_registry/#contract-vllm_mlx.model_registry.ModelManager._remaining_wait_timeout"><code>vllm_mlx.model_registry.ModelManager._remaining_wait_timeout</code></a></td>
<td>method</td>
<td><code>vllm_mlx.model_registry.ModelManager._remaining_wait_timeout(start: float) -&gt; float | None</code></td>
<td>Method `ModelManager._remaining_wait_timeout` calls `max`, `time.monotonic`; has 2 explicit return paths.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/model_registry.py#L1022-L1026">#L1022-L1026</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.model_registry.modelmanager._reserve_load_locked method vllm_mlx.model_registry.modelmanager._reserve_load_locked(model_name: str, required_bytes: int) -&gt; pendingload method `modelmanager._reserve_load_locked` calls `asyncio.get_running_loop().create_future`, `asyncio.get_running_loop`, `pendingload`; returns `pending`.">
<td><a href="../api/vllm_mlx/model_registry/#contract-vllm_mlx.model_registry.ModelManager._reserve_load_locked"><code>vllm_mlx.model_registry.ModelManager._reserve_load_locked</code></a></td>
<td>method</td>
<td><code>vllm_mlx.model_registry.ModelManager._reserve_load_locked(model_name: str, required_bytes: int) -&gt; PendingLoad</code></td>
<td>Method `ModelManager._reserve_load_locked` calls `asyncio.get_running_loop().create_future`, `asyncio.get_running_loop`, `PendingLoad`; returns `pending`.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/model_registry.py#L933-L941">#L933-L941</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.model_registry.modelmanager._resolve_estimated_bytes method vllm_mlx.model_registry.modelmanager._resolve_estimated_bytes(entry: registeredmodel, resolved_source: str) -&gt; int method `modelmanager._resolve_estimated_bytes` calls `_estimate_model_bytes_from_source`, `path`, `source_path.exists`, `valueerror`; can raise `valueerror`; has 3 explicit return paths.">
<td><a href="../api/vllm_mlx/model_registry/#contract-vllm_mlx.model_registry.ModelManager._resolve_estimated_bytes"><code>vllm_mlx.model_registry.ModelManager._resolve_estimated_bytes</code></a></td>
<td>method</td>
<td><code>vllm_mlx.model_registry.ModelManager._resolve_estimated_bytes(entry: RegisteredModel, resolved_source: str) -&gt; int</code></td>
<td>Method `ModelManager._resolve_estimated_bytes` calls `_estimate_model_bytes_from_source`, `Path`, `source_path.exists`, `ValueError`; can raise `ValueError`; has 3 explicit return paths.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/model_registry.py#L1089-L1121">#L1089-L1121</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.model_registry.modelmanager._resolve_model_config method vllm_mlx.model_registry.modelmanager._resolve_model_config(entry: registeredmodel, resolved_source: str) -&gt; resolvedmodelconfig method `modelmanager._resolve_model_config` calls `_clone_scheduler_config`, `self._resolve_estimated_bytes`, `resolvedmodelconfig`; returns `resolvedmodelconfig(entry=entry, resolved_source=resolved_source, continuous_batching=continuous_batching, force_mllm=f…`.">
<td><a href="../api/vllm_mlx/model_registry/#contract-vllm_mlx.model_registry.ModelManager._resolve_model_config"><code>vllm_mlx.model_registry.ModelManager._resolve_model_config</code></a></td>
<td>method</td>
<td><code>vllm_mlx.model_registry.ModelManager._resolve_model_config(entry: RegisteredModel, resolved_source: str) -&gt; ResolvedModelConfig</code></td>
<td>Method `ModelManager._resolve_model_config` calls `_clone_scheduler_config`, `self._resolve_estimated_bytes`, `ResolvedModelConfig`; returns `ResolvedModelConfig(entry=entry, resolved_source=resolved_source, continuous_batching=continuous_batching, force_mllm=f…`.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/model_registry.py#L1123-L1201">#L1123-L1201</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.model_registry.modelmanager._resolve_source method async vllm_mlx.model_registry.modelmanager._resolve_source(entry: registeredmodel) -&gt; str method `modelmanager._resolve_source` calls `asyncio.to_thread`; awaits asynchronous work; returns `await asyncio.to_thread(self._resolve_source_sync, entry)`.">
<td><a href="../api/vllm_mlx/model_registry/#contract-vllm_mlx.model_registry.ModelManager._resolve_source"><code>vllm_mlx.model_registry.ModelManager._resolve_source</code></a></td>
<td>method</td>
<td><code>async vllm_mlx.model_registry.ModelManager._resolve_source(entry: RegisteredModel) -&gt; str</code></td>
<td>Method `ModelManager._resolve_source` calls `asyncio.to_thread`; awaits asynchronous work; returns `await asyncio.to_thread(self._resolve_source_sync, entry)`.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/model_registry.py#L1075-L1076">#L1075-L1076</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.model_registry.modelmanager._resolve_source_sync method vllm_mlx.model_registry.modelmanager._resolve_source_sync(entry: registeredmodel) -&gt; str method `modelmanager._resolve_source_sync` calls `path(source).exists`, `path`, `ensure_model_downloaded`, `is_mllm_model`; has 2 explicit return paths.">
<td><a href="../api/vllm_mlx/model_registry/#contract-vllm_mlx.model_registry.ModelManager._resolve_source_sync"><code>vllm_mlx.model_registry.ModelManager._resolve_source_sync</code></a></td>
<td>method</td>
<td><code>vllm_mlx.model_registry.ModelManager._resolve_source_sync(entry: RegisteredModel) -&gt; str</code></td>
<td>Method `ModelManager._resolve_source_sync` calls `Path(source).exists`, `Path`, `ensure_model_downloaded`, `is_mllm_model`; has 2 explicit return paths.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/model_registry.py#L1078-L1087">#L1078-L1087</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.model_registry.modelmanager._run_unloads method async vllm_mlx.model_registry.modelmanager._run_unloads(unloads: list[loadedmodel]) -&gt; none method `modelmanager._run_unloads` calls `loaded.engine.stop`, `self._unloading.pop`, `self._condition.notify_all`; awaits asynchronous work.">
<td><a href="../api/vllm_mlx/model_registry/#contract-vllm_mlx.model_registry.ModelManager._run_unloads"><code>vllm_mlx.model_registry.ModelManager._run_unloads</code></a></td>
<td>method</td>
<td><code>async vllm_mlx.model_registry.ModelManager._run_unloads(unloads: list[LoadedModel]) -&gt; None</code></td>
<td>Method `ModelManager._run_unloads` calls `loaded.engine.stop`, `self._unloading.pop`, `self._condition.notify_all`; awaits asynchronous work.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/model_registry.py#L924-L931">#L924-L931</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.model_registry.modelmanager._should_preempt_locked method vllm_mlx.model_registry.modelmanager._should_preempt_locked(start: float) -&gt; bool method `modelmanager._should_preempt_locked` calls `time.monotonic`; has 3 explicit return paths.">
<td><a href="../api/vllm_mlx/model_registry/#contract-vllm_mlx.model_registry.ModelManager._should_preempt_locked"><code>vllm_mlx.model_registry.ModelManager._should_preempt_locked</code></a></td>
<td>method</td>
<td><code>vllm_mlx.model_registry.ModelManager._should_preempt_locked(start: float) -&gt; bool</code></td>
<td>Method `ModelManager._should_preempt_locked` calls `time.monotonic`; has 3 explicit return paths.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/model_registry.py#L1012-L1020">#L1012-L1020</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.model_registry.modelmanager._should_wait_locked method vllm_mlx.model_registry.modelmanager._should_wait_locked(start: float) -&gt; bool method `modelmanager._should_wait_locked` calls `self._remaining_wait_timeout`; has 2 explicit return paths.">
<td><a href="../api/vllm_mlx/model_registry/#contract-vllm_mlx.model_registry.ModelManager._should_wait_locked"><code>vllm_mlx.model_registry.ModelManager._should_wait_locked</code></a></td>
<td>method</td>
<td><code>vllm_mlx.model_registry.ModelManager._should_wait_locked(start: float) -&gt; bool</code></td>
<td>Method `ModelManager._should_wait_locked` calls `self._remaining_wait_timeout`; has 2 explicit return paths.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/model_registry.py#L1005-L1010">#L1005-L1010</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.model_registry.modelmanager._wait_for_change method async vllm_mlx.model_registry.modelmanager._wait_for_change(timeout: float | none) -&gt; none method `modelmanager._wait_for_change` calls `self._condition.wait`, `runtimeerror`, `asyncio.wait_for`; awaits asynchronous work; can raise `runtimeerror`; returns `none`.">
<td><a href="../api/vllm_mlx/model_registry/#contract-vllm_mlx.model_registry.ModelManager._wait_for_change"><code>vllm_mlx.model_registry.ModelManager._wait_for_change</code></a></td>
<td>method</td>
<td><code>async vllm_mlx.model_registry.ModelManager._wait_for_change(timeout: float | None) -&gt; None</code></td>
<td>Method `ModelManager._wait_for_change` calls `self._condition.wait`, `RuntimeError`, `asyncio.wait_for`; awaits asynchronous work; can raise `RuntimeError`; returns `None`.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/model_registry.py#L915-L922">#L915-L922</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.model_registry.modelmanager.acquire method async vllm_mlx.model_registry.modelmanager.acquire(model_name: str) -&gt; modellease acquire a lease for a configured model.">
<td><a href="../api/vllm_mlx/model_registry/#contract-vllm_mlx.model_registry.ModelManager.acquire"><code>vllm_mlx.model_registry.ModelManager.acquire</code></a></td>
<td>method</td>
<td><code>async vllm_mlx.model_registry.ModelManager.acquire(model_name: str) -&gt; ModelLease</code></td>
<td>Acquire a lease for a configured model.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/model_registry.py#L741-L819">#L741-L819</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.model_registry.modelmanager.has_model method vllm_mlx.model_registry.modelmanager.has_model(model_name: str) -&gt; bool return whether a model name is present in the serving registry.">
<td><a href="../api/vllm_mlx/model_registry/#contract-vllm_mlx.model_registry.ModelManager.has_model"><code>vllm_mlx.model_registry.ModelManager.has_model</code></a></td>
<td>method</td>
<td><code>vllm_mlx.model_registry.ModelManager.has_model(model_name: str) -&gt; bool</code></td>
<td>Return whether a model name is present in the serving registry.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/model_registry.py#L656-L659">#L656-L659</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.model_registry.modelmanager.list_models method vllm_mlx.model_registry.modelmanager.list_models() -&gt; list[dict[str, any]] return registry state for /v1/models.">
<td><a href="../api/vllm_mlx/model_registry/#contract-vllm_mlx.model_registry.ModelManager.list_models"><code>vllm_mlx.model_registry.ModelManager.list_models</code></a></td>
<td>method</td>
<td><code>vllm_mlx.model_registry.ModelManager.list_models() -&gt; list[dict[str, Any]]</code></td>
<td>Return registry state for /v1/models.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/model_registry.py#L661-L699">#L661-L699</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.model_registry.modelmanager.memory_budget_bytes method vllm_mlx.model_registry.modelmanager.memory_budget_bytes() -&gt; int return the registry&#x27;s configured resident-model memory budget.">
<td><a href="../api/vllm_mlx/model_registry/#contract-vllm_mlx.model_registry.ModelManager.memory_budget_bytes"><code>vllm_mlx.model_registry.ModelManager.memory_budget_bytes</code></a></td>
<td>method</td>
<td><code>vllm_mlx.model_registry.ModelManager.memory_budget_bytes() -&gt; int</code></td>
<td>Return the registry&#x27;s configured resident-model memory budget.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/model_registry.py#L646-L649">#L646-L649</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.model_registry.modelmanager.preload method async vllm_mlx.model_registry.modelmanager.preload() -&gt; none preload any entries marked preload=true.">
<td><a href="../api/vllm_mlx/model_registry/#contract-vllm_mlx.model_registry.ModelManager.preload"><code>vllm_mlx.model_registry.ModelManager.preload</code></a></td>
<td>method</td>
<td><code>async vllm_mlx.model_registry.ModelManager.preload() -&gt; None</code></td>
<td>Preload any entries marked preload=true.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/model_registry.py#L701-L706">#L701-L706</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.model_registry.modelmanager.registered_model_names method vllm_mlx.model_registry.modelmanager.registered_model_names() -&gt; list[str] return sorted list of all registered model names.">
<td><a href="../api/vllm_mlx/model_registry/#contract-vllm_mlx.model_registry.ModelManager.registered_model_names"><code>vllm_mlx.model_registry.ModelManager.registered_model_names</code></a></td>
<td>method</td>
<td><code>vllm_mlx.model_registry.ModelManager.registered_model_names() -&gt; list[str]</code></td>
<td>Return sorted list of all registered model names.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/model_registry.py#L652-L654">#L652-L654</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.model_registry.modelmanager.release method async vllm_mlx.model_registry.modelmanager.release(model_name: str) -&gt; none release a previously acquired model lease.">
<td><a href="../api/vllm_mlx/model_registry/#contract-vllm_mlx.model_registry.ModelManager.release"><code>vllm_mlx.model_registry.ModelManager.release</code></a></td>
<td>method</td>
<td><code>async vllm_mlx.model_registry.ModelManager.release(model_name: str) -&gt; None</code></td>
<td>Release a previously acquired model lease.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/model_registry.py#L821-L842">#L821-L842</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.model_registry.modelmanager.shutdown method async vllm_mlx.model_registry.modelmanager.shutdown() -&gt; none stop and unload every loaded engine.">
<td><a href="../api/vllm_mlx/model_registry/#contract-vllm_mlx.model_registry.ModelManager.shutdown"><code>vllm_mlx.model_registry.ModelManager.shutdown</code></a></td>
<td>method</td>
<td><code>async vllm_mlx.model_registry.ModelManager.shutdown() -&gt; None</code></td>
<td>Stop and unload every loaded engine.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/model_registry.py#L708-L739">#L708-L739</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="class" data-symbol-search="vllm_mlx.model_registry.modelownershiperror class vllm_mlx.model_registry.modelownershiperror() raised when an enginecore attempts to use a model already in use.">
<td><a href="../api/vllm_mlx/model_registry/#contract-vllm_mlx.model_registry.ModelOwnershipError"><code>vllm_mlx.model_registry.ModelOwnershipError</code></a></td>
<td>class</td>
<td><code>vllm_mlx.model_registry.ModelOwnershipError()</code></td>
<td>Raised when an EngineCore attempts to use a model already in use.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/model_registry.py#L38-L39">#L38-L39</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="class" data-symbol-search="vllm_mlx.model_registry.pendingload class vllm_mlx.model_registry.pendingload(model_name: str, required_bytes: int, future: asyncio.future[loadedmodel]) a reserved model load in progress.">
<td><a href="../api/vllm_mlx/model_registry/#contract-vllm_mlx.model_registry.PendingLoad"><code>vllm_mlx.model_registry.PendingLoad</code></a></td>
<td>class</td>
<td><code>vllm_mlx.model_registry.PendingLoad(model_name: str, required_bytes: int, future: asyncio.Future[LoadedModel])</code></td>
<td>A reserved model load in progress.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/model_registry.py#L201-L206">#L201-L206</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="class" data-symbol-search="vllm_mlx.model_registry.registeredmodel class vllm_mlx.model_registry.registeredmodel(name: str, source: str, preload: bool = false, continuous_batching: bool | none = none, force_mllm: bool | none = none, enable_mtp: bool | none = none, prefill_step_size: int | none = none, specprefill_enabled: bool | none = none, specprefill_threshold: int | none = none, specprefill_keep_pct: float | none = none, specprefill_backbone_pct: float | none = none, specprefill_draft_model: str | none = none, stream_interval: int | none = none, gpu_memory_utilization: float | none = none, estimated_memory_bytes: int | none = none) one configured model entry.">
<td><a href="../api/vllm_mlx/model_registry/#contract-vllm_mlx.model_registry.RegisteredModel"><code>vllm_mlx.model_registry.RegisteredModel</code></a></td>
<td>class</td>
<td><code>vllm_mlx.model_registry.RegisteredModel(name: str, source: str, preload: bool = False, continuous_batching: bool | None = None, force_mllm: bool | None = None, enable_mtp: bool | None = None, prefill_step_size: int | None = None, specprefill_enabled: bool | None = None, specprefill_threshold: int | None = None, specprefill_keep_pct: float | None = None, specprefill_backbone_pct: float | None = None, specprefill_draft_model: str | None = None, stream_interval: int | None = None, gpu_memory_utilization: float | None = None, estimated_memory_bytes: int | None = None)</code></td>
<td>One configured model entry.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/model_registry.py#L146-L163">#L146-L163</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="class" data-symbol-search="vllm_mlx.model_registry.registrymanagerconfig class vllm_mlx.model_registry.registrymanagerconfig(memory_budget_bytes: int, policy: contentionpolicy) global registry manager configuration.">
<td><a href="../api/vllm_mlx/model_registry/#contract-vllm_mlx.model_registry.RegistryManagerConfig"><code>vllm_mlx.model_registry.RegistryManagerConfig</code></a></td>
<td>class</td>
<td><code>vllm_mlx.model_registry.RegistryManagerConfig(memory_budget_bytes: int, policy: ContentionPolicy)</code></td>
<td>Global registry manager configuration.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/model_registry.py#L138-L142">#L138-L142</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="class" data-symbol-search="vllm_mlx.model_registry.registryservedefaults class vllm_mlx.model_registry.registryservedefaults(continuous_batching: bool, force_mllm: bool, enable_mtp: bool, prefill_step_size: int, specprefill_enabled: bool, specprefill_threshold: int, specprefill_keep_pct: float, specprefill_backbone_pct: float, specprefill_draft_model: str | none, stream_interval: int, gpu_memory_utilization: float, scheduler_config: schedulerconfig | none, max_tokens: int, download_config: downloadconfig) global serve defaults inherited by registry entries.">
<td><a href="../api/vllm_mlx/model_registry/#contract-vllm_mlx.model_registry.RegistryServeDefaults"><code>vllm_mlx.model_registry.RegistryServeDefaults</code></a></td>
<td>class</td>
<td><code>vllm_mlx.model_registry.RegistryServeDefaults(continuous_batching: bool, force_mllm: bool, enable_mtp: bool, prefill_step_size: int, specprefill_enabled: bool, specprefill_threshold: int, specprefill_keep_pct: float, specprefill_backbone_pct: float, specprefill_draft_model: str | None, stream_interval: int, gpu_memory_utilization: float, scheduler_config: SchedulerConfig | None, max_tokens: int, download_config: DownloadConfig)</code></td>
<td>Global serve defaults inherited by registry entries.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/model_registry.py#L109-L125">#L109-L125</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="class" data-symbol-search="vllm_mlx.model_registry.resolvedmodelconfig class vllm_mlx.model_registry.resolvedmodelconfig(entry: registeredmodel, resolved_source: str, continuous_batching: bool, force_mllm: bool, enable_mtp: bool, prefill_step_size: int, specprefill_enabled: bool, specprefill_threshold: int, specprefill_keep_pct: float, specprefill_backbone_pct: float, specprefill_draft_model: str | none, stream_interval: int, gpu_memory_utilization: float, scheduler_config: schedulerconfig | none, estimated_memory_bytes: int) effective configuration for a loaded model.">
<td><a href="../api/vllm_mlx/model_registry/#contract-vllm_mlx.model_registry.ResolvedModelConfig"><code>vllm_mlx.model_registry.ResolvedModelConfig</code></a></td>
<td>class</td>
<td><code>vllm_mlx.model_registry.ResolvedModelConfig(entry: RegisteredModel, resolved_source: str, continuous_batching: bool, force_mllm: bool, enable_mtp: bool, prefill_step_size: int, specprefill_enabled: bool, specprefill_threshold: int, specprefill_keep_pct: float, specprefill_backbone_pct: float, specprefill_draft_model: str | None, stream_interval: int, gpu_memory_utilization: float, scheduler_config: SchedulerConfig | None, estimated_memory_bytes: int)</code></td>
<td>Effective configuration for a loaded model.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/model_registry.py#L167-L184">#L167-L184</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="class" data-symbol-search="vllm_mlx.model_runner.mlxmodelrunner class vllm_mlx.model_runner.mlxmodelrunner(vllm_config: &#x27;vllmconfig&#x27;, enable_optimizations: bool = true) model runner that uses mlx-lm for inference.">
<td><a href="../api/vllm_mlx/model_runner/#contract-vllm_mlx.model_runner.MLXModelRunner"><code>vllm_mlx.model_runner.MLXModelRunner</code></a></td>
<td>class</td>
<td><code>vllm_mlx.model_runner.MLXModelRunner(vllm_config: &#x27;VllmConfig&#x27;, enable_optimizations: bool = True)</code></td>
<td>Model runner that uses mlx-lm for inference.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/model_runner.py#L53-L476">#L53-L476</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.model_runner.mlxmodelrunner.__init__ method vllm_mlx.model_runner.mlxmodelrunner.__init__(vllm_config: &#x27;vllmconfig&#x27;, enable_optimizations: bool = true) -&gt; not annotated initialize mlx model runner.">
<td><a href="../api/vllm_mlx/model_runner/#contract-vllm_mlx.model_runner.MLXModelRunner.__init__"><code>vllm_mlx.model_runner.MLXModelRunner.__init__</code></a></td>
<td>method</td>
<td><code>vllm_mlx.model_runner.MLXModelRunner.__init__(vllm_config: &#x27;VllmConfig&#x27;, enable_optimizations: bool = True) -&gt; not annotated</code></td>
<td>Initialize MLX model runner.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/model_runner.py#L69-L104">#L69-L104</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.model_runner.mlxmodelrunner.__repr__ method vllm_mlx.model_runner.mlxmodelrunner.__repr__() -&gt; str method `mlxmodelrunner.__repr__` returns `f&#x27;&lt;mlxmodelrunner model={self.model_config.model} status={status} mode={opt_status}&gt;&#x27;`.">
<td><a href="../api/vllm_mlx/model_runner/#contract-vllm_mlx.model_runner.MLXModelRunner.__repr__"><code>vllm_mlx.model_runner.MLXModelRunner.__repr__</code></a></td>
<td>method</td>
<td><code>vllm_mlx.model_runner.MLXModelRunner.__repr__() -&gt; str</code></td>
<td>Method `MLXModelRunner.__repr__` returns `f&#x27;&lt;MLXModelRunner model={self.model_config.model} status={status} mode={opt_status}&gt;&#x27;`.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/model_runner.py#L473-L476">#L473-L476</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.model_runner.mlxmodelrunner._apply_optimizations method vllm_mlx.model_runner.mlxmodelrunner._apply_optimizations() -&gt; none apply low-level optimizations for maximum performance.">
<td><a href="../api/vllm_mlx/model_runner/#contract-vllm_mlx.model_runner.MLXModelRunner._apply_optimizations"><code>vllm_mlx.model_runner.MLXModelRunner._apply_optimizations</code></a></td>
<td>method</td>
<td><code>vllm_mlx.model_runner.MLXModelRunner._apply_optimizations() -&gt; None</code></td>
<td>Apply low-level optimizations for maximum performance.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/model_runner.py#L147-L168">#L147-L168</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.model_runner.mlxmodelrunner._continue_generation method vllm_mlx.model_runner.mlxmodelrunner._continue_generation(req_id: str) -&gt; list[int] continue generation for an existing request.">
<td><a href="../api/vllm_mlx/model_runner/#contract-vllm_mlx.model_runner.MLXModelRunner._continue_generation"><code>vllm_mlx.model_runner.MLXModelRunner._continue_generation</code></a></td>
<td>method</td>
<td><code>vllm_mlx.model_runner.MLXModelRunner._continue_generation(req_id: str) -&gt; list[int]</code></td>
<td>Continue generation for an existing request.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/model_runner.py#L420-L428">#L420-L428</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.model_runner.mlxmodelrunner._create_default_sampler method vllm_mlx.model_runner.mlxmodelrunner._create_default_sampler() -&gt; none create default sampler for generation.">
<td><a href="../api/vllm_mlx/model_runner/#contract-vllm_mlx.model_runner.MLXModelRunner._create_default_sampler"><code>vllm_mlx.model_runner.MLXModelRunner._create_default_sampler</code></a></td>
<td>method</td>
<td><code>vllm_mlx.model_runner.MLXModelRunner._create_default_sampler() -&gt; None</code></td>
<td>Create default sampler for generation.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/model_runner.py#L195-L205">#L195-L205</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.model_runner.mlxmodelrunner._generate_for_request method vllm_mlx.model_runner.mlxmodelrunner._generate_for_request(prompt_token_ids: list[int], sampling_params: any, max_tokens: int = 1) -&gt; list[int] generate tokens for a single request.">
<td><a href="../api/vllm_mlx/model_runner/#contract-vllm_mlx.model_runner.MLXModelRunner._generate_for_request"><code>vllm_mlx.model_runner.MLXModelRunner._generate_for_request</code></a></td>
<td>method</td>
<td><code>vllm_mlx.model_runner.MLXModelRunner._generate_for_request(prompt_token_ids: list[int], sampling_params: Any, max_tokens: int = 1) -&gt; list[int]</code></td>
<td>Generate tokens for a single request.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/model_runner.py#L364-L418">#L364-L418</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.model_runner.mlxmodelrunner._prefill_with_chunking method vllm_mlx.model_runner.mlxmodelrunner._prefill_with_chunking(input_ids: mx.array, cache: optional[any] = none) -&gt; tuple[mx.array, any] process prompt with optimal chunking for l2 cache efficiency.">
<td><a href="../api/vllm_mlx/model_runner/#contract-vllm_mlx.model_runner.MLXModelRunner._prefill_with_chunking"><code>vllm_mlx.model_runner.MLXModelRunner._prefill_with_chunking</code></a></td>
<td>method</td>
<td><code>vllm_mlx.model_runner.MLXModelRunner._prefill_with_chunking(input_ids: mx.array, cache: Optional[Any] = None) -&gt; tuple[mx.array, Any]</code></td>
<td>Process prompt with optimal chunking for L2 cache efficiency.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/model_runner.py#L317-L362">#L317-L362</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="nested function" data-symbol-search="vllm_mlx.model_runner.mlxmodelrunner._prefill_with_chunking.get_optimal_prefill_size nested function vllm_mlx.model_runner.mlxmodelrunner._prefill_with_chunking.get_optimal_prefill_size(seq_len) -&gt; not annotated nested function `mlxmodelrunner._prefill_with_chunking.get_optimal_prefill_size` calls `min`; returns `min(512, seq_len)`.">
<td><a href="../api/vllm_mlx/model_runner/#contract-vllm_mlx.model_runner.MLXModelRunner._prefill_with_chunking.get_optimal_prefill_size"><code>vllm_mlx.model_runner.MLXModelRunner._prefill_with_chunking.get_optimal_prefill_size</code></a></td>
<td>nested function</td>
<td><code>vllm_mlx.model_runner.MLXModelRunner._prefill_with_chunking.get_optimal_prefill_size(seq_len) -&gt; not annotated</code></td>
<td>Nested Function `MLXModelRunner._prefill_with_chunking.get_optimal_prefill_size` calls `min`; returns `min(512, seq_len)`.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/model_runner.py#L339-L340">#L339-L340</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.model_runner.mlxmodelrunner._setup_compiled_forward method vllm_mlx.model_runner.mlxmodelrunner._setup_compiled_forward() -&gt; none setup compiled forward pass using mx.compile() for kernel fusion.">
<td><a href="../api/vllm_mlx/model_runner/#contract-vllm_mlx.model_runner.MLXModelRunner._setup_compiled_forward"><code>vllm_mlx.model_runner.MLXModelRunner._setup_compiled_forward</code></a></td>
<td>method</td>
<td><code>vllm_mlx.model_runner.MLXModelRunner._setup_compiled_forward() -&gt; None</code></td>
<td>Setup compiled forward pass using mx.compile() for kernel fusion.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/model_runner.py#L170-L193">#L170-L193</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.model_runner.mlxmodelrunner.decode_tokens method vllm_mlx.model_runner.mlxmodelrunner.decode_tokens(token_ids: list[int]) -&gt; str decode token ids to text.">
<td><a href="../api/vllm_mlx/model_runner/#contract-vllm_mlx.model_runner.MLXModelRunner.decode_tokens"><code>vllm_mlx.model_runner.MLXModelRunner.decode_tokens</code></a></td>
<td>method</td>
<td><code>vllm_mlx.model_runner.MLXModelRunner.decode_tokens(token_ids: list[int]) -&gt; str</code></td>
<td>Decode token IDs to text.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/model_runner.py#L430-L434">#L430-L434</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.model_runner.mlxmodelrunner.execute_model method vllm_mlx.model_runner.mlxmodelrunner.execute_model(scheduler_output: &#x27;scheduleroutput&#x27;) -&gt; mlxmodelrunneroutput execute model inference for scheduled requests.">
<td><a href="../api/vllm_mlx/model_runner/#contract-vllm_mlx.model_runner.MLXModelRunner.execute_model"><code>vllm_mlx.model_runner.MLXModelRunner.execute_model</code></a></td>
<td>method</td>
<td><code>vllm_mlx.model_runner.MLXModelRunner.execute_model(scheduler_output: &#x27;SchedulerOutput&#x27;) -&gt; MLXModelRunnerOutput</code></td>
<td>Execute model inference for scheduled requests.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/model_runner.py#L265-L315">#L265-L315</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.model_runner.mlxmodelrunner.get_cache_block_size_bytes method vllm_mlx.model_runner.mlxmodelrunner.get_cache_block_size_bytes() -&gt; int calculate cache block size in bytes.">
<td><a href="../api/vllm_mlx/model_runner/#contract-vllm_mlx.model_runner.MLXModelRunner.get_cache_block_size_bytes"><code>vllm_mlx.model_runner.MLXModelRunner.get_cache_block_size_bytes</code></a></td>
<td>method</td>
<td><code>vllm_mlx.model_runner.MLXModelRunner.get_cache_block_size_bytes() -&gt; int</code></td>
<td>Calculate cache block size in bytes.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/model_runner.py#L222-L240">#L222-L240</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.model_runner.mlxmodelrunner.get_kv_cache_spec method vllm_mlx.model_runner.mlxmodelrunner.get_kv_cache_spec() -&gt; dict get kv cache specification.">
<td><a href="../api/vllm_mlx/model_runner/#contract-vllm_mlx.model_runner.MLXModelRunner.get_kv_cache_spec"><code>vllm_mlx.model_runner.MLXModelRunner.get_kv_cache_spec</code></a></td>
<td>method</td>
<td><code>vllm_mlx.model_runner.MLXModelRunner.get_kv_cache_spec() -&gt; dict</code></td>
<td>Get KV cache specification.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/model_runner.py#L215-L220">#L215-L220</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.model_runner.mlxmodelrunner.get_model_info method vllm_mlx.model_runner.mlxmodelrunner.get_model_info() -&gt; dict get information about the loaded model and optimizations.">
<td><a href="../api/vllm_mlx/model_runner/#contract-vllm_mlx.model_runner.MLXModelRunner.get_model_info"><code>vllm_mlx.model_runner.MLXModelRunner.get_model_info</code></a></td>
<td>method</td>
<td><code>vllm_mlx.model_runner.MLXModelRunner.get_model_info() -&gt; dict</code></td>
<td>Get information about the loaded model and optimizations.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/model_runner.py#L436-L471">#L436-L471</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.model_runner.mlxmodelrunner.initialize_cache method vllm_mlx.model_runner.mlxmodelrunner.initialize_cache(num_blocks: int) -&gt; none initialize kv cache.">
<td><a href="../api/vllm_mlx/model_runner/#contract-vllm_mlx.model_runner.MLXModelRunner.initialize_cache"><code>vllm_mlx.model_runner.MLXModelRunner.initialize_cache</code></a></td>
<td>method</td>
<td><code>vllm_mlx.model_runner.MLXModelRunner.initialize_cache(num_blocks: int) -&gt; None</code></td>
<td>Initialize KV cache.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/model_runner.py#L207-L210">#L207-L210</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.model_runner.mlxmodelrunner.load_model method vllm_mlx.model_runner.mlxmodelrunner.load_model() -&gt; none load model using mlx-lm with optimizations.">
<td><a href="../api/vllm_mlx/model_runner/#contract-vllm_mlx.model_runner.MLXModelRunner.load_model"><code>vllm_mlx.model_runner.MLXModelRunner.load_model</code></a></td>
<td>method</td>
<td><code>vllm_mlx.model_runner.MLXModelRunner.load_model() -&gt; None</code></td>
<td>Load model using mlx-lm with optimizations.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/model_runner.py#L106-L145">#L106-L145</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.model_runner.mlxmodelrunner.warm_up method vllm_mlx.model_runner.mlxmodelrunner.warm_up() -&gt; none warm up model with a test generation.">
<td><a href="../api/vllm_mlx/model_runner/#contract-vllm_mlx.model_runner.MLXModelRunner.warm_up"><code>vllm_mlx.model_runner.MLXModelRunner.warm_up</code></a></td>
<td>method</td>
<td><code>vllm_mlx.model_runner.MLXModelRunner.warm_up() -&gt; None</code></td>
<td>Warm up model with a test generation.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/model_runner.py#L242-L263">#L242-L263</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="class" data-symbol-search="vllm_mlx.model_runner.mlxmodelrunneroutput class vllm_mlx.model_runner.mlxmodelrunneroutput(req_id_to_token_ids: dict[str, list[int]], req_id_to_logprobs: dict[str, list[dict]] | none = none, num_tokens_generated: int = 0, generation_time_s: float = 0.0) output from mlx model runner, compatible with vllm&#x27;s modelrunneroutput.">
<td><a href="../api/vllm_mlx/model_runner/#contract-vllm_mlx.model_runner.MLXModelRunnerOutput"><code>vllm_mlx.model_runner.MLXModelRunnerOutput</code></a></td>
<td>class</td>
<td><code>vllm_mlx.model_runner.MLXModelRunnerOutput(req_id_to_token_ids: dict[str, list[int]], req_id_to_logprobs: dict[str, list[dict]] | None = None, num_tokens_generated: int = 0, generation_time_s: float = 0.0)</code></td>
<td>Output from MLX model runner, compatible with vLLM&#x27;s ModelRunnerOutput.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/model_runner.py#L37-L50">#L37-L50</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="class" data-symbol-search="vllm_mlx.model_runner.sampleroutput class vllm_mlx.model_runner.sampleroutput(token_ids: list[int], logprobs: list[dict] | none = none) output from sampling.">
<td><a href="../api/vllm_mlx/model_runner/#contract-vllm_mlx.model_runner.SamplerOutput"><code>vllm_mlx.model_runner.SamplerOutput</code></a></td>
<td>class</td>
<td><code>vllm_mlx.model_runner.SamplerOutput(token_ids: list[int], logprobs: list[dict] | None = None)</code></td>
<td>Output from sampling.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/model_runner.py#L29-L33">#L29-L33</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.model_workflow._bytes_to_gb function vllm_mlx.model_workflow._bytes_to_gb(size: int | float | none) -&gt; float | none function `_bytes_to_gb` calls `round`, `float`; has 2 explicit return paths.">
<td><a href="../api/vllm_mlx/model_workflow/#contract-vllm_mlx.model_workflow._bytes_to_gb"><code>vllm_mlx.model_workflow._bytes_to_gb</code></a></td>
<td>function</td>
<td><code>vllm_mlx.model_workflow._bytes_to_gb(size: int | float | None) -&gt; float | None</code></td>
<td>Function `_bytes_to_gb` calls `round`, `float`; has 2 explicit return paths.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/model_workflow.py#L105-L108">#L105-L108</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.model_workflow._config_value function vllm_mlx.model_workflow._config_value(config: dict[str, any], key: str) -&gt; any function `_config_value` calls `config.get`, `isinstance`, `text_config.get`; has 3 explicit return paths.">
<td><a href="../api/vllm_mlx/model_workflow/#contract-vllm_mlx.model_workflow._config_value"><code>vllm_mlx.model_workflow._config_value</code></a></td>
<td>function</td>
<td><code>vllm_mlx.model_workflow._config_value(config: dict[str, Any], key: str) -&gt; Any</code></td>
<td>Function `_config_value` calls `config.get`, `isinstance`, `text_config.get`; has 3 explicit return paths.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/model_workflow.py#L173-L179">#L173-L179</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.model_workflow._conversion_command function vllm_mlx.model_workflow._conversion_command(options: conversionoptions) -&gt; list[str] function `_conversion_command` calls `command.append`, `command.extend`, `str`; returns `command`.">
<td><a href="../api/vllm_mlx/model_workflow/#contract-vllm_mlx.model_workflow._conversion_command"><code>vllm_mlx.model_workflow._conversion_command</code></a></td>
<td>function</td>
<td><code>vllm_mlx.model_workflow._conversion_command(options: ConversionOptions) -&gt; list[str]</code></td>
<td>Function `_conversion_command` calls `command.append`, `command.extend`, `str`; returns `command`.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/model_workflow.py#L449-L474">#L449-L474</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.model_workflow._drop_none function vllm_mlx.model_workflow._drop_none(payload: dict[str, any]) -&gt; dict[str, any] function `_drop_none` calls `payload.items`; returns `{key: value for key, value in payload.items() if value is not none}`.">
<td><a href="../api/vllm_mlx/model_workflow/#contract-vllm_mlx.model_workflow._drop_none"><code>vllm_mlx.model_workflow._drop_none</code></a></td>
<td>function</td>
<td><code>vllm_mlx.model_workflow._drop_none(payload: dict[str, Any]) -&gt; dict[str, Any]</code></td>
<td>Function `_drop_none` calls `payload.items`; returns `{key: value for key, value in payload.items() if value is not None}`.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/model_workflow.py#L543-L544">#L543-L544</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.model_workflow._estimate_fit function vllm_mlx.model_workflow._estimate_fit(*, total_bytes: int | none, model_files_bytes: int | none, config: dict[str, any]) -&gt; dict[str, any] function `_estimate_fit` calls `_model_family(config).get`, `_model_family`, `isinstance`, `warnings.append`; returns `{&#x27;download_size_gb&#x27;: _bytes_to_gb(total_bytes), &#x27;model_file_size_gb&#x27;: _bytes_to_gb(model_files_bytes), &#x27;estimated_conve…`.">
<td><a href="../api/vllm_mlx/model_workflow/#contract-vllm_mlx.model_workflow._estimate_fit"><code>vllm_mlx.model_workflow._estimate_fit</code></a></td>
<td>function</td>
<td><code>vllm_mlx.model_workflow._estimate_fit(*, total_bytes: int | None, model_files_bytes: int | None, config: dict[str, Any]) -&gt; dict[str, Any]</code></td>
<td>Function `_estimate_fit` calls `_model_family(config).get`, `_model_family`, `isinstance`, `warnings.append`; returns `{&#x27;download_size_gb&#x27;: _bytes_to_gb(total_bytes), &#x27;model_file_size_gb&#x27;: _bytes_to_gb(model_files_bytes), &#x27;estimated_conve…`.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/model_workflow.py#L204-L231">#L204-L231</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.model_workflow._existing_manifests function vllm_mlx.model_workflow._existing_manifests(path: path) -&gt; dict[str, any] function `_existing_manifests` calls `manifest_path.exists`, `str`, `_read_json`; returns `manifests`.">
<td><a href="../api/vllm_mlx/model_workflow/#contract-vllm_mlx.model_workflow._existing_manifests"><code>vllm_mlx.model_workflow._existing_manifests</code></a></td>
<td>function</td>
<td><code>vllm_mlx.model_workflow._existing_manifests(path: Path) -&gt; dict[str, Any]</code></td>
<td>Function `_existing_manifests` calls `manifest_path.exists`, `str`, `_read_json`; returns `manifests`.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/model_workflow.py#L528-L540">#L528-L540</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.model_workflow._fast_transfer_env function vllm_mlx.model_workflow._fast_transfer_env(requested: bool) -&gt; tuple[dict[str, str], dict[str, any]] function `_fast_transfer_env` calls `find_spec`; has 3 explicit return paths.">
<td><a href="../api/vllm_mlx/model_workflow/#contract-vllm_mlx.model_workflow._fast_transfer_env"><code>vllm_mlx.model_workflow._fast_transfer_env</code></a></td>
<td>function</td>
<td><code>vllm_mlx.model_workflow._fast_transfer_env(requested: bool) -&gt; tuple[dict[str, str], dict[str, Any]]</code></td>
<td>Function `_fast_transfer_env` calls `find_spec`; has 3 explicit return paths.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/model_workflow.py#L282-L297">#L282-L297</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.model_workflow._hf_config function vllm_mlx.model_workflow._hf_config(model_id: str, *, revision: str | none, local_files_only: bool) -&gt; dict[str, any] function `_hf_config` calls `hf_hub_download`, `_read_json`, `path`; returns `_read_json(path(config_path))`.">
<td><a href="../api/vllm_mlx/model_workflow/#contract-vllm_mlx.model_workflow._hf_config"><code>vllm_mlx.model_workflow._hf_config</code></a></td>
<td>function</td>
<td><code>vllm_mlx.model_workflow._hf_config(model_id: str, *, revision: str | None, local_files_only: bool) -&gt; dict[str, Any]</code></td>
<td>Function `_hf_config` calls `hf_hub_download`, `_read_json`, `Path`; returns `_read_json(Path(config_path))`.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/model_workflow.py#L161-L170">#L161-L170</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.model_workflow._hf_file_inventory function vllm_mlx.model_workflow._hf_file_inventory(model_id: str, *, revision: str | none, local_files_only: bool) -&gt; tuple[list[dict[str, any]], int | none, str | none] function `_hf_file_inventory` calls `hfapi().model_info`, `hfapi`, `getattr`, `int`; has 2 explicit return paths.">
<td><a href="../api/vllm_mlx/model_workflow/#contract-vllm_mlx.model_workflow._hf_file_inventory"><code>vllm_mlx.model_workflow._hf_file_inventory</code></a></td>
<td>function</td>
<td><code>vllm_mlx.model_workflow._hf_file_inventory(model_id: str, *, revision: str | None, local_files_only: bool) -&gt; tuple[list[dict[str, Any]], int | None, str | None]</code></td>
<td>Function `_hf_file_inventory` calls `HfApi().model_info`, `HfApi`, `getattr`, `int`; has 2 explicit return paths.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/model_workflow.py#L138-L158">#L138-L158</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.model_workflow._is_mlx_quantization function vllm_mlx.model_workflow._is_mlx_quantization(quant: any) -&gt; bool return true only when *quant* looks like an mlx-lm quantization config.">
<td><a href="../api/vllm_mlx/model_workflow/#contract-vllm_mlx.model_workflow._is_mlx_quantization"><code>vllm_mlx.model_workflow._is_mlx_quantization</code></a></td>
<td>function</td>
<td><code>vllm_mlx.model_workflow._is_mlx_quantization(quant: Any) -&gt; bool</code></td>
<td>Return True only when *quant* looks like an mlx-lm quantization config.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/model_workflow.py#L252-L265">#L252-L265</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.model_workflow._is_model_id function vllm_mlx.model_workflow._is_model_id(value: str) -&gt; bool function `_is_model_id` calls `bool`, `_model_id_re.fullmatch`; returns `bool(_model_id_re.fullmatch(value))`.">
<td><a href="../api/vllm_mlx/model_workflow/#contract-vllm_mlx.model_workflow._is_model_id"><code>vllm_mlx.model_workflow._is_model_id</code></a></td>
<td>function</td>
<td><code>vllm_mlx.model_workflow._is_model_id(value: str) -&gt; bool</code></td>
<td>Function `_is_model_id` calls `bool`, `_MODEL_ID_RE.fullmatch`; returns `bool(_MODEL_ID_RE.fullmatch(value))`.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/model_workflow.py#L278-L279">#L278-L279</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.model_workflow._local_file_inventory function vllm_mlx.model_workflow._local_file_inventory(path: path) -&gt; tuple[list[dict[str, any]], int] function `_local_file_inventory` calls `sorted`, `path.rglob`, `item.is_file`, `item.stat`; returns `(files, total)`.">
<td><a href="../api/vllm_mlx/model_workflow/#contract-vllm_mlx.model_workflow._local_file_inventory"><code>vllm_mlx.model_workflow._local_file_inventory</code></a></td>
<td>function</td>
<td><code>vllm_mlx.model_workflow._local_file_inventory(path: Path) -&gt; tuple[list[dict[str, Any]], int]</code></td>
<td>Function `_local_file_inventory` calls `sorted`, `path.rglob`, `item.is_file`, `item.stat`; returns `(files, total)`.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/model_workflow.py#L123-L135">#L123-L135</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.model_workflow._looks_like_mlx_name function vllm_mlx.model_workflow._looks_like_mlx_name(model: str, *, source: str) -&gt; bool function `_looks_like_mlx_name` calls `model.lower`, `path(model).name.lower`, `path`, `name.startswith`; returns `name.startswith(&#x27;mlx-community/&#x27;) or &#x27;-mlx&#x27; in name or &#x27;_mlx&#x27; in name or name.endswith(&#x27;mlx&#x27;)`.">
<td><a href="../api/vllm_mlx/model_workflow/#contract-vllm_mlx.model_workflow._looks_like_mlx_name"><code>vllm_mlx.model_workflow._looks_like_mlx_name</code></a></td>
<td>function</td>
<td><code>vllm_mlx.model_workflow._looks_like_mlx_name(model: str, *, source: str) -&gt; bool</code></td>
<td>Function `_looks_like_mlx_name` calls `model.lower`, `Path(model).name.lower`, `Path`, `name.startswith`; returns `name.startswith(&#x27;mlx-community/&#x27;) or &#x27;-mlx&#x27; in name or &#x27;_mlx&#x27; in name or name.endswith(&#x27;mlx&#x27;)`.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/model_workflow.py#L268-L275">#L268-L275</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.model_workflow._model_family function vllm_mlx.model_workflow._model_family(config: dict[str, any]) -&gt; dict[str, any] function `_model_family` calls `_config_value`, `isinstance`, `config.get`; returns `{&#x27;model_type&#x27;: _config_value(config, &#x27;model_type&#x27;), &#x27;architectures&#x27;: architectures, &#x27;torch_dtype&#x27;: _config_value(config…`.">
<td><a href="../api/vllm_mlx/model_workflow/#contract-vllm_mlx.model_workflow._model_family"><code>vllm_mlx.model_workflow._model_family</code></a></td>
<td>function</td>
<td><code>vllm_mlx.model_workflow._model_family(config: dict[str, Any]) -&gt; dict[str, Any]</code></td>
<td>Function `_model_family` calls `_config_value`, `isinstance`, `config.get`; returns `{&#x27;model_type&#x27;: _config_value(config, &#x27;model_type&#x27;), &#x27;architectures&#x27;: architectures, &#x27;torch_dtype&#x27;: _config_value(config…`.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/model_workflow.py#L182-L201">#L182-L201</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.model_workflow._model_file_bytes function vllm_mlx.model_workflow._model_file_bytes(files: list[dict[str, any]]) -&gt; int | none function `_model_file_bytes` calls `str`, `entry.get`, `path.endswith`, `int`; has 2 explicit return paths.">
<td><a href="../api/vllm_mlx/model_workflow/#contract-vllm_mlx.model_workflow._model_file_bytes"><code>vllm_mlx.model_workflow._model_file_bytes</code></a></td>
<td>function</td>
<td><code>vllm_mlx.model_workflow._model_file_bytes(files: list[dict[str, Any]]) -&gt; int | None</code></td>
<td>Function `_model_file_bytes` calls `str`, `entry.get`, `path.endswith`, `int`; has 2 explicit return paths.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/model_workflow.py#L234-L246">#L234-L246</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.model_workflow._now_iso function vllm_mlx.model_workflow._now_iso() -&gt; str function `_now_iso` calls `datetime.now(timezone.utc).isoformat`, `datetime.now`; returns `datetime.now(timezone.utc).isoformat()`.">
<td><a href="../api/vllm_mlx/model_workflow/#contract-vllm_mlx.model_workflow._now_iso"><code>vllm_mlx.model_workflow._now_iso</code></a></td>
<td>function</td>
<td><code>vllm_mlx.model_workflow._now_iso() -&gt; str</code></td>
<td>Function `_now_iso` calls `datetime.now(timezone.utc).isoformat`, `datetime.now`; returns `datetime.now(timezone.utc).isoformat()`.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/model_workflow.py#L101-L102">#L101-L102</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.model_workflow._qualification_command function vllm_mlx.model_workflow._qualification_command(options: qualificationoptions) -&gt; list[str] function `_qualification_command` calls `command.extend`, `str`; returns `command`.">
<td><a href="../api/vllm_mlx/model_workflow/#contract-vllm_mlx.model_workflow._qualification_command"><code>vllm_mlx.model_workflow._qualification_command</code></a></td>
<td>function</td>
<td><code>vllm_mlx.model_workflow._qualification_command(options: QualificationOptions) -&gt; list[str]</code></td>
<td>Function `_qualification_command` calls `command.extend`, `str`; returns `command`.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/model_workflow.py#L606-L627">#L606-L627</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.model_workflow._read_json function vllm_mlx.model_workflow._read_json(path: path) -&gt; dict[str, any] function `_read_json` calls `json.loads`, `path.read_text`; has 2 explicit return paths.">
<td><a href="../api/vllm_mlx/model_workflow/#contract-vllm_mlx.model_workflow._read_json"><code>vllm_mlx.model_workflow._read_json</code></a></td>
<td>function</td>
<td><code>vllm_mlx.model_workflow._read_json(path: Path) -&gt; dict[str, Any]</code></td>
<td>Function `_read_json` calls `json.loads`, `path.read_text`; has 2 explicit return paths.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/model_workflow.py#L111-L115">#L111-L115</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.model_workflow._write_json function vllm_mlx.model_workflow._write_json(path: path, payload: dict[str, any]) -&gt; none function `_write_json` calls `path.parent.mkdir`, `path.write_text`, `json.dumps`.">
<td><a href="../api/vllm_mlx/model_workflow/#contract-vllm_mlx.model_workflow._write_json"><code>vllm_mlx.model_workflow._write_json</code></a></td>
<td>function</td>
<td><code>vllm_mlx.model_workflow._write_json(path: Path, payload: dict[str, Any]) -&gt; None</code></td>
<td>Function `_write_json` calls `path.parent.mkdir`, `path.write_text`, `json.dumps`.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/model_workflow.py#L118-L120">#L118-L120</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.model_workflow.acquire_model function vllm_mlx.model_workflow.acquire_model(model_id: str, *, options: acquisitionoptions | none = none) -&gt; dict[str, any] download a model repository and write a finalized artifact manifest.">
<td><a href="../api/vllm_mlx/model_workflow/#contract-vllm_mlx.model_workflow.acquire_model"><code>vllm_mlx.model_workflow.acquire_model</code></a></td>
<td>function</td>
<td><code>vllm_mlx.model_workflow.acquire_model(model_id: str, *, options: AcquisitionOptions | None = None) -&gt; dict[str, Any]</code></td>
<td>Download a model repository and write a finalized artifact manifest.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/model_workflow.py#L369-L446">#L369-L446</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="class" data-symbol-search="vllm_mlx.model_workflow.acquisitionoptions class vllm_mlx.model_workflow.acquisitionoptions(revision: str | none = none, target_dir: str | none = none, staging_dir: str | none = none, is_mllm: bool = false, fast_transfer: bool = true, local_files_only: bool = false) options for hugging face model acquisition.">
<td><a href="../api/vllm_mlx/model_workflow/#contract-vllm_mlx.model_workflow.AcquisitionOptions"><code>vllm_mlx.model_workflow.AcquisitionOptions</code></a></td>
<td>class</td>
<td><code>vllm_mlx.model_workflow.AcquisitionOptions(revision: str | None = None, target_dir: str | None = None, staging_dir: str | None = None, is_mllm: bool = False, fast_transfer: bool = True, local_files_only: bool = False)</code></td>
<td>Options for Hugging Face model acquisition.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/model_workflow.py#L38-L46">#L38-L46</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="class" data-symbol-search="vllm_mlx.model_workflow.conversionoptions class vllm_mlx.model_workflow.conversionoptions(source_path: str, output_path: str, quantize: bool = false, q_bits: int | none = none, q_group_size: int | none = none, q_mode: str | none = none, quant_predicate: str | none = none, dtype: str | none = none, trust_remote_code: bool = false, dry_run: bool = false) options for the mlx-lm conversion backend.">
<td><a href="../api/vllm_mlx/model_workflow/#contract-vllm_mlx.model_workflow.ConversionOptions"><code>vllm_mlx.model_workflow.ConversionOptions</code></a></td>
<td>class</td>
<td><code>vllm_mlx.model_workflow.ConversionOptions(source_path: str, output_path: str, quantize: bool = False, q_bits: int | None = None, q_group_size: int | None = None, q_mode: str | None = None, quant_predicate: str | None = None, dtype: str | None = None, trust_remote_code: bool = False, dry_run: bool = False)</code></td>
<td>Options for the mlx-lm conversion backend.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/model_workflow.py#L50-L62">#L50-L62</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.model_workflow.convert_model function vllm_mlx.model_workflow.convert_model(options: conversionoptions) -&gt; dict[str, any] run mlx-lm conversion and record the exact recipe.">
<td><a href="../api/vllm_mlx/model_workflow/#contract-vllm_mlx.model_workflow.convert_model"><code>vllm_mlx.model_workflow.convert_model</code></a></td>
<td>function</td>
<td><code>vllm_mlx.model_workflow.convert_model(options: ConversionOptions) -&gt; dict[str, Any]</code></td>
<td>Run mlx-lm conversion and record the exact recipe.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/model_workflow.py#L477-L525">#L477-L525</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.model_workflow.inspect_model function vllm_mlx.model_workflow.inspect_model(model: str, *, revision: str | none = none, local_files_only: bool = false) -&gt; dict[str, any] inspect a local model path or hugging face model id without loading weights.">
<td><a href="../api/vllm_mlx/model_workflow/#contract-vllm_mlx.model_workflow.inspect_model"><code>vllm_mlx.model_workflow.inspect_model</code></a></td>
<td>function</td>
<td><code>vllm_mlx.model_workflow.inspect_model(model: str, *, revision: str | None = None, local_files_only: bool = False) -&gt; dict[str, Any]</code></td>
<td>Inspect a local model path or Hugging Face model id without loading weights.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/model_workflow.py#L300-L366">#L300-L366</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="class" data-symbol-search="vllm_mlx.model_workflow.qualificationoptions class vllm_mlx.model_workflow.qualificationoptions(model_id: str, server_url: str = &#x27;http://127.0.0.1:8080&#x27;, workload_path: str | none = none, output_path: str | none = none, result_path: str | none = none, repetitions: int | none = none, dry_run: bool = false, extra_args: list[str] | none = none) options for creating or running a bench-serve qualification handoff.">
<td><a href="../api/vllm_mlx/model_workflow/#contract-vllm_mlx.model_workflow.QualificationOptions"><code>vllm_mlx.model_workflow.QualificationOptions</code></a></td>
<td>class</td>
<td><code>vllm_mlx.model_workflow.QualificationOptions(model_id: str, server_url: str = &#x27;http://127.0.0.1:8080&#x27;, workload_path: str | None = None, output_path: str | None = None, result_path: str | None = None, repetitions: int | None = None, dry_run: bool = False, extra_args: list[str] | None = None)</code></td>
<td>Options for creating or running a bench-serve qualification handoff.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/model_workflow.py#L88-L98">#L88-L98</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.model_workflow.qualify_model function vllm_mlx.model_workflow.qualify_model(options: qualificationoptions) -&gt; dict[str, any] create or run a bench-serve qualification handoff.">
<td><a href="../api/vllm_mlx/model_workflow/#contract-vllm_mlx.model_workflow.qualify_model"><code>vllm_mlx.model_workflow.qualify_model</code></a></td>
<td>function</td>
<td><code>vllm_mlx.model_workflow.qualify_model(options: QualificationOptions) -&gt; dict[str, Any]</code></td>
<td>Create or run a bench-serve qualification handoff.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/model_workflow.py#L630-L661">#L630-L661</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.model_workflow.register_model function vllm_mlx.model_workflow.register_model(options: registrationoptions) -&gt; dict[str, any] write a portable registration manifest for a finalized local artifact.">
<td><a href="../api/vllm_mlx/model_workflow/#contract-vllm_mlx.model_workflow.register_model"><code>vllm_mlx.model_workflow.register_model</code></a></td>
<td>function</td>
<td><code>vllm_mlx.model_workflow.register_model(options: RegistrationOptions) -&gt; dict[str, Any]</code></td>
<td>Write a portable registration manifest for a finalized local artifact.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/model_workflow.py#L547-L603">#L547-L603</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="class" data-symbol-search="vllm_mlx.model_workflow.registrationoptions class vllm_mlx.model_workflow.registrationoptions(artifact_path: str, model_id: str | none = none, served_model_name: str | none = none, preset_alias: str | none = none, output_path: str | none = none, mllm: bool | none = none, tool_call_parser: str | none = none, reasoning_parser: str | none = none, default_temperature: float | none = none, default_top_p: float | none = none, default_top_k: int | none = none, default_min_p: float | none = none, default_presence_penalty: float | none = none, default_repetition_penalty: float | none = none, chat_template_kwargs: dict[str, any] | none = none, feature_flags: list[str] | none = none) options for generating a portable model registration manifest.">
<td><a href="../api/vllm_mlx/model_workflow/#contract-vllm_mlx.model_workflow.RegistrationOptions"><code>vllm_mlx.model_workflow.RegistrationOptions</code></a></td>
<td>class</td>
<td><code>vllm_mlx.model_workflow.RegistrationOptions(artifact_path: str, model_id: str | None = None, served_model_name: str | None = None, preset_alias: str | None = None, output_path: str | None = None, mllm: bool | None = None, tool_call_parser: str | None = None, reasoning_parser: str | None = None, default_temperature: float | None = None, default_top_p: float | None = None, default_top_k: int | None = None, default_min_p: float | None = None, default_presence_penalty: float | None = None, default_repetition_penalty: float | None = None, chat_template_kwargs: dict[str, Any] | None = None, feature_flags: list[str] | None = None)</code></td>
<td>Options for generating a portable model registration manifest.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/model_workflow.py#L66-L84">#L66-L84</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="class" data-symbol-search="vllm_mlx.models.llm.generationoutput class vllm_mlx.models.llm.generationoutput(text: str, tokens: list[int], finish_reason: str | none = none) output from text generation.">
<td><a href="../api/vllm_mlx/models/llm/#contract-vllm_mlx.models.llm.GenerationOutput"><code>vllm_mlx.models.llm.GenerationOutput</code></a></td>
<td>class</td>
<td><code>vllm_mlx.models.llm.GenerationOutput(text: str, tokens: list[int], finish_reason: str | None = None)</code></td>
<td>Output from text generation.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/models/llm.py#L21-L26">#L21-L26</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="class" data-symbol-search="vllm_mlx.models.llm.mlxlanguagemodel class vllm_mlx.models.llm.mlxlanguagemodel(model_name: str, tokenizer_name: str | none = none, trust_remote_code: bool = false, mtp: bool = false, mtp_num_draft_tokens: int = 1) wrapper around mlx-lm for llm inference.">
<td><a href="../api/vllm_mlx/models/llm/#contract-vllm_mlx.models.llm.MLXLanguageModel"><code>vllm_mlx.models.llm.MLXLanguageModel</code></a></td>
<td>class</td>
<td><code>vllm_mlx.models.llm.MLXLanguageModel(model_name: str, tokenizer_name: str | None = None, trust_remote_code: bool = False, mtp: bool = False, mtp_num_draft_tokens: int = 1)</code></td>
<td>Wrapper around mlx-lm for LLM inference.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/models/llm.py#L40-L422">#L40-L422</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.models.llm.mlxlanguagemodel.__init__ method vllm_mlx.models.llm.mlxlanguagemodel.__init__(model_name: str, tokenizer_name: str | none = none, trust_remote_code: bool = false, mtp: bool = false, mtp_num_draft_tokens: int = 1) -&gt; not annotated initialize the mlx language model.">
<td><a href="../api/vllm_mlx/models/llm/#contract-vllm_mlx.models.llm.MLXLanguageModel.__init__"><code>vllm_mlx.models.llm.MLXLanguageModel.__init__</code></a></td>
<td>method</td>
<td><code>vllm_mlx.models.llm.MLXLanguageModel.__init__(model_name: str, tokenizer_name: str | None = None, trust_remote_code: bool = False, mtp: bool = False, mtp_num_draft_tokens: int = 1) -&gt; not annotated</code></td>
<td>Initialize the MLX language model.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/models/llm.py#L53-L79">#L53-L79</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.models.llm.mlxlanguagemodel.__repr__ method vllm_mlx.models.llm.mlxlanguagemodel.__repr__() -&gt; str method `mlxlanguagemodel.__repr__` returns `f&#x27;&lt;mlxlanguagemodel model={self.model_name} status={status}&gt;&#x27;`.">
<td><a href="../api/vllm_mlx/models/llm/#contract-vllm_mlx.models.llm.MLXLanguageModel.__repr__"><code>vllm_mlx.models.llm.MLXLanguageModel.__repr__</code></a></td>
<td>method</td>
<td><code>vllm_mlx.models.llm.MLXLanguageModel.__repr__() -&gt; str</code></td>
<td>Method `MLXLanguageModel.__repr__` returns `f&#x27;&lt;MLXLanguageModel model={self.model_name} status={status}&gt;&#x27;`.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/models/llm.py#L420-L422">#L420-L422</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.models.llm.mlxlanguagemodel._create_logits_processors method vllm_mlx.models.llm.mlxlanguagemodel._create_logits_processors(presence_penalty: float = 0.0, repetition_penalty: float = 1.0) -&gt; not annotated create logits processors for penalty-based sampling.">
<td><a href="../api/vllm_mlx/models/llm/#contract-vllm_mlx.models.llm.MLXLanguageModel._create_logits_processors"><code>vllm_mlx.models.llm.MLXLanguageModel._create_logits_processors</code></a></td>
<td>method</td>
<td><code>vllm_mlx.models.llm.MLXLanguageModel._create_logits_processors(presence_penalty: float = 0.0, repetition_penalty: float = 1.0) -&gt; not annotated</code></td>
<td>Create logits processors for penalty-based sampling.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/models/llm.py#L133-L147">#L133-L147</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.models.llm.mlxlanguagemodel._create_sampler method vllm_mlx.models.llm.mlxlanguagemodel._create_sampler(temperature: float = 0.7, top_p: float = 0.9, top_k: int = 0, min_p: float = 0.0) -&gt; not annotated create a sampler for text generation.">
<td><a href="../api/vllm_mlx/models/llm/#contract-vllm_mlx.models.llm.MLXLanguageModel._create_sampler"><code>vllm_mlx.models.llm.MLXLanguageModel._create_sampler</code></a></td>
<td>method</td>
<td><code>vllm_mlx.models.llm.MLXLanguageModel._create_sampler(temperature: float = 0.7, top_p: float = 0.9, top_k: int = 0, min_p: float = 0.0) -&gt; not annotated</code></td>
<td>Create a sampler for text generation.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/models/llm.py#L116-L131">#L116-L131</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.models.llm.mlxlanguagemodel.chat method vllm_mlx.models.llm.mlxlanguagemodel.chat(messages: list[dict], max_tokens: int = 256, temperature: float = 0.7, top_p: float = 0.9, tools: list | none = none, chat_template_kwargs: dict | none = none, **kwargs) -&gt; generationoutput generate a chat response.">
<td><a href="../api/vllm_mlx/models/llm/#contract-vllm_mlx.models.llm.MLXLanguageModel.chat"><code>vllm_mlx.models.llm.MLXLanguageModel.chat</code></a></td>
<td>method</td>
<td><code>vllm_mlx.models.llm.MLXLanguageModel.chat(messages: list[dict], max_tokens: int = 256, temperature: float = 0.7, top_p: float = 0.9, tools: list | None = None, chat_template_kwargs: dict | None = None, **kwargs) -&gt; GenerationOutput</code></td>
<td>Generate a chat response.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/models/llm.py#L327-L393">#L327-L393</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.models.llm.mlxlanguagemodel.generate method vllm_mlx.models.llm.mlxlanguagemodel.generate(prompt: str, max_tokens: int = 256, temperature: float = 0.7, top_p: float = 0.9, top_k: int = 0, min_p: float = 0.0, presence_penalty: float = 0.0, repetition_penalty: float = 1.0, stop: list[str] | none = none, logits_processors: list | none = none, **kwargs) -&gt; generationoutput generate text from a prompt.">
<td><a href="../api/vllm_mlx/models/llm/#contract-vllm_mlx.models.llm.MLXLanguageModel.generate"><code>vllm_mlx.models.llm.MLXLanguageModel.generate</code></a></td>
<td>method</td>
<td><code>vllm_mlx.models.llm.MLXLanguageModel.generate(prompt: str, max_tokens: int = 256, temperature: float = 0.7, top_p: float = 0.9, top_k: int = 0, min_p: float = 0.0, presence_penalty: float = 0.0, repetition_penalty: float = 1.0, stop: list[str] | None = None, logits_processors: list | None = None, **kwargs) -&gt; GenerationOutput</code></td>
<td>Generate text from a prompt.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/models/llm.py#L149-L219">#L149-L219</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.models.llm.mlxlanguagemodel.get_model_info method vllm_mlx.models.llm.mlxlanguagemodel.get_model_info() -&gt; dict get information about the loaded model.">
<td><a href="../api/vllm_mlx/models/llm/#contract-vllm_mlx.models.llm.MLXLanguageModel.get_model_info"><code>vllm_mlx.models.llm.MLXLanguageModel.get_model_info</code></a></td>
<td>method</td>
<td><code>vllm_mlx.models.llm.MLXLanguageModel.get_model_info() -&gt; dict</code></td>
<td>Get information about the loaded model.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/models/llm.py#L395-L418">#L395-L418</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.models.llm.mlxlanguagemodel.load method vllm_mlx.models.llm.mlxlanguagemodel.load() -&gt; none load the model and tokenizer.">
<td><a href="../api/vllm_mlx/models/llm/#contract-vllm_mlx.models.llm.MLXLanguageModel.load"><code>vllm_mlx.models.llm.MLXLanguageModel.load</code></a></td>
<td>method</td>
<td><code>vllm_mlx.models.llm.MLXLanguageModel.load() -&gt; None</code></td>
<td>Load the model and tokenizer.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/models/llm.py#L81-L114">#L81-L114</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.models.llm.mlxlanguagemodel.stream_generate method vllm_mlx.models.llm.mlxlanguagemodel.stream_generate(prompt: union[str, &#x27;mx.array&#x27;, list[int]], max_tokens: int = 256, temperature: float = 0.7, top_p: float = 0.9, top_k: int = 0, min_p: float = 0.0, presence_penalty: float = 0.0, repetition_penalty: float = 1.0, stop: list[str] | none = none, logits_processors: list | none = none, prompt_cache = none, **kwargs) -&gt; iterator[streamingoutput] stream text generation token by token.">
<td><a href="../api/vllm_mlx/models/llm/#contract-vllm_mlx.models.llm.MLXLanguageModel.stream_generate"><code>vllm_mlx.models.llm.MLXLanguageModel.stream_generate</code></a></td>
<td>method</td>
<td><code>vllm_mlx.models.llm.MLXLanguageModel.stream_generate(prompt: Union[str, &#x27;mx.array&#x27;, list[int]], max_tokens: int = 256, temperature: float = 0.7, top_p: float = 0.9, top_k: int = 0, min_p: float = 0.0, presence_penalty: float = 0.0, repetition_penalty: float = 1.0, stop: list[str] | None = None, logits_processors: list | None = None, prompt_cache = None, **kwargs) -&gt; Iterator[StreamingOutput]</code></td>
<td>Stream text generation token by token.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/models/llm.py#L221-L325">#L221-L325</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="class" data-symbol-search="vllm_mlx.models.llm.streamingoutput class vllm_mlx.models.llm.streamingoutput(text: str, token: int, finished: bool = false, finish_reason: str | none = none, prompt_tokens: int = 0) streaming output chunk.">
<td><a href="../api/vllm_mlx/models/llm/#contract-vllm_mlx.models.llm.StreamingOutput"><code>vllm_mlx.models.llm.StreamingOutput</code></a></td>
<td>class</td>
<td><code>vllm_mlx.models.llm.StreamingOutput(text: str, token: int, finished: bool = False, finish_reason: str | None = None, prompt_tokens: int = 0)</code></td>
<td>Streaming output chunk.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/models/llm.py#L30-L37">#L30-L37</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.models.mllm._append_ordered_mllm_content_part function vllm_mlx.models.mllm._append_ordered_mllm_content_part(raw_item: object, *, built_parts: list[dict[str, str]], text_parts: list[str], all_image_urls: list[str], video_frame_count: int) -&gt; int function `_append_ordered_mllm_content_part` calls `_normalize_content_part`, `isinstance`, `_append_text_content_part`, `item.get`; has 2 explicit return paths.">
<td><a href="../api/vllm_mlx/models/mllm/#contract-vllm_mlx.models.mllm._append_ordered_mllm_content_part"><code>vllm_mlx.models.mllm._append_ordered_mllm_content_part</code></a></td>
<td>function</td>
<td><code>vllm_mlx.models.mllm._append_ordered_mllm_content_part(raw_item: object, *, built_parts: list[dict[str, str]], text_parts: list[str], all_image_urls: list[str], video_frame_count: int) -&gt; int</code></td>
<td>Function `_append_ordered_mllm_content_part` calls `_normalize_content_part`, `isinstance`, `_append_text_content_part`, `item.get`; has 2 explicit return paths.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/models/mllm.py#L185-L220">#L185-L220</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.models.mllm._append_text_content_part function vllm_mlx.models.mllm._append_text_content_part(built_parts: list[dict[str, str]], text_parts: list[str], text: str) -&gt; none function `_append_text_content_part` calls `built_parts.append`, `_text_content_part`, `text_parts.append`; returns `none`.">
<td><a href="../api/vllm_mlx/models/mllm/#contract-vllm_mlx.models.mllm._append_text_content_part"><code>vllm_mlx.models.mllm._append_text_content_part</code></a></td>
<td>function</td>
<td><code>vllm_mlx.models.mllm._append_text_content_part(built_parts: list[dict[str, str]], text_parts: list[str], text: str) -&gt; None</code></td>
<td>Function `_append_text_content_part` calls `built_parts.append`, `_text_content_part`, `text_parts.append`; returns `None`.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/models/mllm.py#L168-L174">#L168-L174</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.models.mllm._build_mllm_chat_messages function vllm_mlx.models.mllm._build_mllm_chat_messages(messages: list[dict], *, all_image_urls: list[str], video_frame_counts: dict[int, int]) -&gt; list[dict] build chat-template messages without reordering multimodal content parts.">
<td><a href="../api/vllm_mlx/models/mllm/#contract-vllm_mlx.models.mllm._build_mllm_chat_messages"><code>vllm_mlx.models.mllm._build_mllm_chat_messages</code></a></td>
<td>function</td>
<td><code>vllm_mlx.models.mllm._build_mllm_chat_messages(messages: list[dict], *, all_image_urls: list[str], video_frame_counts: dict[int, int]) -&gt; list[dict]</code></td>
<td>Build chat-template messages without reordering multimodal content parts.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/models/mllm.py#L271-L315">#L271-L315</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.models.mllm._build_ordered_mllm_message_content function vllm_mlx.models.mllm._build_ordered_mllm_message_content(content: object, *, role: str, all_image_urls: list[str], video_frame_count: int = 0) -&gt; tuple[object, bool] build template content while preserving openai media/text part order.">
<td><a href="../api/vllm_mlx/models/mllm/#contract-vllm_mlx.models.mllm._build_ordered_mllm_message_content"><code>vllm_mlx.models.mllm._build_ordered_mllm_message_content</code></a></td>
<td>function</td>
<td><code>vllm_mlx.models.mllm._build_ordered_mllm_message_content(content: object, *, role: str, all_image_urls: list[str], video_frame_count: int = 0) -&gt; tuple[object, bool]</code></td>
<td>Build template content while preserving OpenAI media/text part order.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/models/mllm.py#L223-L254">#L223-L254</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.models.mllm._build_string_mllm_message_content function vllm_mlx.models.mllm._build_string_mllm_message_content(content: str, role: str) -&gt; tuple[object, bool] function `_build_string_mllm_message_content` calls `_text_content_part`; has 3 explicit return paths.">
<td><a href="../api/vllm_mlx/models/mllm/#contract-vllm_mlx.models.mllm._build_string_mllm_message_content"><code>vllm_mlx.models.mllm._build_string_mllm_message_content</code></a></td>
<td>function</td>
<td><code>vllm_mlx.models.mllm._build_string_mllm_message_content(content: str, role: str) -&gt; tuple[object, bool]</code></td>
<td>Function `_build_string_mllm_message_content` calls `_text_content_part`; has 3 explicit return paths.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/models/mllm.py#L177-L182">#L177-L182</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.models.mllm._count_draft_tokens function vllm_mlx.models.mllm._count_draft_tokens(draft_tokens) -&gt; int best-effort drafted-token count for an mlx-vlm drafter output.">
<td><a href="../api/vllm_mlx/models/mllm/#contract-vllm_mlx.models.mllm._count_draft_tokens"><code>vllm_mlx.models.mllm._count_draft_tokens</code></a></td>
<td>function</td>
<td><code>vllm_mlx.models.mllm._count_draft_tokens(draft_tokens) -&gt; int</code></td>
<td>Best-effort drafted-token count for an mlx-vlm drafter output.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/models/mllm.py#L387-L398">#L387-L398</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.models.mllm._download_media function vllm_mlx.models.mllm._download_media(url: str, media_type: str, ext_map: dict[str, str], default_ext: str, timeout: int, max_size: int) -&gt; str download media from url, enforce size limits, and return a local temp path.">
<td><a href="../api/vllm_mlx/models/mllm/#contract-vllm_mlx.models.mllm._download_media"><code>vllm_mlx.models.mllm._download_media</code></a></td>
<td>function</td>
<td><code>vllm_mlx.models.mllm._download_media(url: str, media_type: str, ext_map: dict[str, str], default_ext: str, timeout: int, max_size: int) -&gt; str</code></td>
<td>Download media from URL, enforce size limits, and return a local temp path.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/models/mllm.py#L670-L748">#L670-L748</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.models.mllm._extract_media_url function vllm_mlx.models.mllm._extract_media_url(item: dict, item_type: str) -&gt; str function `_extract_media_url` calls `item.get`, `isinstance`, `media_value.get`; has 2 explicit return paths.">
<td><a href="../api/vllm_mlx/models/mllm/#contract-vllm_mlx.models.mllm._extract_media_url"><code>vllm_mlx.models.mllm._extract_media_url</code></a></td>
<td>function</td>
<td><code>vllm_mlx.models.mllm._extract_media_url(item: dict, item_type: str) -&gt; str</code></td>
<td>Function `_extract_media_url` calls `item.get`, `isinstance`, `media_value.get`; has 2 explicit return paths.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/models/mllm.py#L147-L161">#L147-L161</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.models.mllm._install_draft_metrics_hooks function vllm_mlx.models.mllm._install_draft_metrics_hooks(draft_model) -&gt; none record actual drafted token counts from mlx-vlm assistant drafters.">
<td><a href="../api/vllm_mlx/models/mllm/#contract-vllm_mlx.models.mllm._install_draft_metrics_hooks"><code>vllm_mlx.models.mllm._install_draft_metrics_hooks</code></a></td>
<td>function</td>
<td><code>vllm_mlx.models.mllm._install_draft_metrics_hooks(draft_model) -&gt; None</code></td>
<td>Record actual drafted token counts from mlx-vlm assistant drafters.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/models/mllm.py#L401-L428">#L401-L428</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="nested function" data-symbol-search="vllm_mlx.models.mllm._install_draft_metrics_hooks.draft_block_with_metrics nested function vllm_mlx.models.mllm._install_draft_metrics_hooks.draft_block_with_metrics(*args, **kwargs) -&gt; not annotated nested function `_install_draft_metrics_hooks.draft_block_with_metrics` calls `draft_block`, `draft_model._vllm_mlx_draft_counts.append`, `_count_draft_tokens`; returns `draft_tokens`.">
<td><a href="../api/vllm_mlx/models/mllm/#contract-vllm_mlx.models.mllm._install_draft_metrics_hooks.draft_block_with_metrics"><code>vllm_mlx.models.mllm._install_draft_metrics_hooks.draft_block_with_metrics</code></a></td>
<td>nested function</td>
<td><code>vllm_mlx.models.mllm._install_draft_metrics_hooks.draft_block_with_metrics(*args, **kwargs) -&gt; not annotated</code></td>
<td>Nested Function `_install_draft_metrics_hooks.draft_block_with_metrics` calls `draft_block`, `draft_model._vllm_mlx_draft_counts.append`, `_count_draft_tokens`; returns `draft_tokens`.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/models/mllm.py#L412-L415">#L412-L415</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="nested function" data-symbol-search="vllm_mlx.models.mllm._install_draft_metrics_hooks.reset_with_metrics nested function vllm_mlx.models.mllm._install_draft_metrics_hooks.reset_with_metrics(*args, **kwargs) -&gt; not annotated nested function `_install_draft_metrics_hooks.reset_with_metrics` calls `reset`; returns `reset(*args, **kwargs)`.">
<td><a href="../api/vllm_mlx/models/mllm/#contract-vllm_mlx.models.mllm._install_draft_metrics_hooks.reset_with_metrics"><code>vllm_mlx.models.mllm._install_draft_metrics_hooks.reset_with_metrics</code></a></td>
<td>nested function</td>
<td><code>vllm_mlx.models.mllm._install_draft_metrics_hooks.reset_with_metrics(*args, **kwargs) -&gt; not annotated</code></td>
<td>Nested Function `_install_draft_metrics_hooks.reset_with_metrics` calls `reset`; returns `reset(*args, **kwargs)`.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/models/mllm.py#L422-L424">#L422-L424</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.models.mllm._model_has_sound_encoder function vllm_mlx.models.mllm._model_has_sound_encoder(model) -&gt; bool whether a loaded model exposes a usable sound encoder.">
<td><a href="../api/vllm_mlx/models/mllm/#contract-vllm_mlx.models.mllm._model_has_sound_encoder"><code>vllm_mlx.models.mllm._model_has_sound_encoder</code></a></td>
<td>function</td>
<td><code>vllm_mlx.models.mllm._model_has_sound_encoder(model) -&gt; bool</code></td>
<td>Whether a loaded model exposes a usable sound encoder.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/models/mllm.py#L938-L947">#L938-L947</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.models.mllm._normalize_content_part function vllm_mlx.models.mllm._normalize_content_part(item: object) -&gt; object convert pydantic content parts into plain python objects.">
<td><a href="../api/vllm_mlx/models/mllm/#contract-vllm_mlx.models.mllm._normalize_content_part"><code>vllm_mlx.models.mllm._normalize_content_part</code></a></td>
<td>function</td>
<td><code>vllm_mlx.models.mllm._normalize_content_part(item: object) -&gt; object</code></td>
<td>Convert Pydantic content parts into plain Python objects.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/models/mllm.py#L138-L144">#L138-L144</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.models.mllm._normalize_mllm_tool_calls function vllm_mlx.models.mllm._normalize_mllm_tool_calls(tool_calls: list) -&gt; list normalize replayed assistant tool calls for chat templates.">
<td><a href="../api/vllm_mlx/models/mllm/#contract-vllm_mlx.models.mllm._normalize_mllm_tool_calls"><code>vllm_mlx.models.mllm._normalize_mllm_tool_calls</code></a></td>
<td>function</td>
<td><code>vllm_mlx.models.mllm._normalize_mllm_tool_calls(tool_calls: list) -&gt; list</code></td>
<td>Normalize replayed assistant tool calls for chat templates.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/models/mllm.py#L257-L268">#L257-L268</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.models.mllm._request_with_safe_redirects function vllm_mlx.models.mllm._request_with_safe_redirects(method: str, url: str, *, timeout: int, headers: dict[str, str], stream: bool = false, max_redirects: int = 5) -&gt; not annotated issue a requests call while validating every redirect target.">
<td><a href="../api/vllm_mlx/models/mllm/#contract-vllm_mlx.models.mllm._request_with_safe_redirects"><code>vllm_mlx.models.mllm._request_with_safe_redirects</code></a></td>
<td>function</td>
<td><code>vllm_mlx.models.mllm._request_with_safe_redirects(method: str, url: str, *, timeout: int, headers: dict[str, str], stream: bool = False, max_redirects: int = 5) -&gt; not annotated</code></td>
<td>Issue a requests call while validating every redirect target.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/models/mllm.py#L522-L557">#L522-L557</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.models.mllm._text_content_part function vllm_mlx.models.mllm._text_content_part(text: str) -&gt; dict[str, str] function `_text_content_part` returns `{&#x27;type&#x27;: &#x27;text&#x27;, &#x27;text&#x27;: text, &#x27;content&#x27;: text}`.">
<td><a href="../api/vllm_mlx/models/mllm/#contract-vllm_mlx.models.mllm._text_content_part"><code>vllm_mlx.models.mllm._text_content_part</code></a></td>
<td>function</td>
<td><code>vllm_mlx.models.mllm._text_content_part(text: str) -&gt; dict[str, str]</code></td>
<td>Function `_text_content_part` returns `{&#x27;type&#x27;: &#x27;text&#x27;, &#x27;text&#x27;: text, &#x27;content&#x27;: text}`.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/models/mllm.py#L164-L165">#L164-L165</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.models.mllm._validate_url_safety function vllm_mlx.models.mllm._validate_url_safety(url: str) -&gt; none reject remote urls that target local or private network resources.">
<td><a href="../api/vllm_mlx/models/mllm/#contract-vllm_mlx.models.mllm._validate_url_safety"><code>vllm_mlx.models.mllm._validate_url_safety</code></a></td>
<td>function</td>
<td><code>vllm_mlx.models.mllm._validate_url_safety(url: str) -&gt; None</code></td>
<td>Reject remote URLs that target local or private network resources.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/models/mllm.py#L483-L519">#L483-L519</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.models.mllm._video_has_audio_track function vllm_mlx.models.mllm._video_has_audio_track(video_path: str) -&gt; bool return true if ffprobe finds an audio stream in the video.">
<td><a href="../api/vllm_mlx/models/mllm/#contract-vllm_mlx.models.mllm._video_has_audio_track"><code>vllm_mlx.models.mllm._video_has_audio_track</code></a></td>
<td>function</td>
<td><code>vllm_mlx.models.mllm._video_has_audio_track(video_path: str) -&gt; bool</code></td>
<td>Return True if ffprobe finds an audio stream in the video.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/models/mllm.py#L908-L935">#L908-L935</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.models.mllm.ceil_by_factor function vllm_mlx.models.mllm.ceil_by_factor(x: float, factor: int) -&gt; int ceiling to next multiple of factor.">
<td><a href="../api/vllm_mlx/models/mllm/#contract-vllm_mlx.models.mllm.ceil_by_factor"><code>vllm_mlx.models.mllm.ceil_by_factor</code></a></td>
<td>function</td>
<td><code>vllm_mlx.models.mllm.ceil_by_factor(x: float, factor: int) -&gt; int</code></td>
<td>Ceiling to next multiple of factor.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/models/mllm.py#L1088-L1090">#L1088-L1090</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.models.mllm.cleanup_all_temp_files function vllm_mlx.models.mllm.cleanup_all_temp_files() -&gt; int clean up all tracked temporary files.">
<td><a href="../api/vllm_mlx/models/mllm/#contract-vllm_mlx.models.mllm.cleanup_all_temp_files"><code>vllm_mlx.models.mllm.cleanup_all_temp_files</code></a></td>
<td>function</td>
<td><code>vllm_mlx.models.mllm.cleanup_all_temp_files() -&gt; int</code></td>
<td>Clean up all tracked temporary files.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/models/mllm.py#L98-L100">#L98-L100</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.models.mllm.cleanup_temp_file function vllm_mlx.models.mllm.cleanup_temp_file(path: str) -&gt; bool clean up a specific temporary file.">
<td><a href="../api/vllm_mlx/models/mllm/#contract-vllm_mlx.models.mllm.cleanup_temp_file"><code>vllm_mlx.models.mllm.cleanup_temp_file</code></a></td>
<td>function</td>
<td><code>vllm_mlx.models.mllm.cleanup_temp_file(path: str) -&gt; bool</code></td>
<td>Clean up a specific temporary file.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/models/mllm.py#L93-L95">#L93-L95</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.models.mllm.decode_base64_audio function vllm_mlx.models.mllm.decode_base64_audio(base64_string: str, max_length: int = max_base64_audio_length) -&gt; str decode base64 audio to temp file and return path.">
<td><a href="../api/vllm_mlx/models/mllm/#contract-vllm_mlx.models.mllm.decode_base64_audio"><code>vllm_mlx.models.mllm.decode_base64_audio</code></a></td>
<td>function</td>
<td><code>vllm_mlx.models.mllm.decode_base64_audio(base64_string: str, max_length: int = MAX_BASE64_AUDIO_LENGTH) -&gt; str</code></td>
<td>Decode base64 audio to temp file and return path.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/models/mllm.py#L810-L836">#L810-L836</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.models.mllm.decode_base64_image function vllm_mlx.models.mllm.decode_base64_image(base64_string: str, max_length: int = max_base64_image_length) -&gt; bytes decode base64 image to bytes.">
<td><a href="../api/vllm_mlx/models/mllm/#contract-vllm_mlx.models.mllm.decode_base64_image"><code>vllm_mlx.models.mllm.decode_base64_image</code></a></td>
<td>function</td>
<td><code>vllm_mlx.models.mllm.decode_base64_image(base64_string: str, max_length: int = MAX_BASE64_IMAGE_LENGTH) -&gt; bytes</code></td>
<td>Decode base64 image to bytes.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/models/mllm.py#L453-L480">#L453-L480</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.models.mllm.decode_base64_video function vllm_mlx.models.mllm.decode_base64_video(base64_string: str, max_length: int = max_base64_video_length) -&gt; str decode base64 video to temp file and return path.">
<td><a href="../api/vllm_mlx/models/mllm/#contract-vllm_mlx.models.mllm.decode_base64_video"><code>vllm_mlx.models.mllm.decode_base64_video</code></a></td>
<td>function</td>
<td><code>vllm_mlx.models.mllm.decode_base64_video(base64_string: str, max_length: int = MAX_BASE64_VIDEO_LENGTH) -&gt; str</code></td>
<td>Decode base64 video to temp file and return path.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/models/mllm.py#L761-L807">#L761-L807</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.models.mllm.download_audio function vllm_mlx.models.mllm.download_audio(url: str, timeout: int = 120, max_size: int = max_audio_size) -&gt; str download audio from url and return local path.">
<td><a href="../api/vllm_mlx/models/mllm/#contract-vllm_mlx.models.mllm.download_audio"><code>vllm_mlx.models.mllm.download_audio</code></a></td>
<td>function</td>
<td><code>vllm_mlx.models.mllm.download_audio(url: str, timeout: int = 120, max_size: int = MAX_AUDIO_SIZE) -&gt; str</code></td>
<td>Download audio from URL and return local path.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/models/mllm.py#L756-L758">#L756-L758</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.models.mllm.download_image function vllm_mlx.models.mllm.download_image(url: str, timeout: int = 30, max_size: int = max_image_size) -&gt; str download image from url and return local path.">
<td><a href="../api/vllm_mlx/models/mllm/#contract-vllm_mlx.models.mllm.download_image"><code>vllm_mlx.models.mllm.download_image</code></a></td>
<td>function</td>
<td><code>vllm_mlx.models.mllm.download_image(url: str, timeout: int = 30, max_size: int = MAX_IMAGE_SIZE) -&gt; str</code></td>
<td>Download image from URL and return local path.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/models/mllm.py#L560-L645">#L560-L645</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.models.mllm.download_video function vllm_mlx.models.mllm.download_video(url: str, timeout: int = 120, max_size: int = max_video_size) -&gt; str download video from url and return local path.">
<td><a href="../api/vllm_mlx/models/mllm/#contract-vllm_mlx.models.mllm.download_video"><code>vllm_mlx.models.mllm.download_video</code></a></td>
<td>function</td>
<td><code>vllm_mlx.models.mllm.download_video(url: str, timeout: int = 120, max_size: int = MAX_VIDEO_SIZE) -&gt; str</code></td>
<td>Download video from URL and return local path.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/models/mllm.py#L751-L753">#L751-L753</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.models.mllm.extract_audio_from_video function vllm_mlx.models.mllm.extract_audio_from_video(video_path: str) -&gt; str | none extract the audio track from a video file as 16 khz mono wav.">
<td><a href="../api/vllm_mlx/models/mllm/#contract-vllm_mlx.models.mllm.extract_audio_from_video"><code>vllm_mlx.models.mllm.extract_audio_from_video</code></a></td>
<td>function</td>
<td><code>vllm_mlx.models.mllm.extract_audio_from_video(video_path: str) -&gt; str | None</code></td>
<td>Extract the audio track from a video file as 16 kHz mono WAV.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/models/mllm.py#L950-L1005">#L950-L1005</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.models.mllm.extract_video_frames_smart function vllm_mlx.models.mllm.extract_video_frames_smart(video_path: str, fps: float = default_fps, max_frames: int = max_frames, resize: tuple[int, int] | none = none) -&gt; list[np.ndarray] extract frames from video with smart sampling.">
<td><a href="../api/vllm_mlx/models/mllm/#contract-vllm_mlx.models.mllm.extract_video_frames_smart"><code>vllm_mlx.models.mllm.extract_video_frames_smart</code></a></td>
<td>function</td>
<td><code>vllm_mlx.models.mllm.extract_video_frames_smart(video_path: str, fps: float = DEFAULT_FPS, max_frames: int = MAX_FRAMES, resize: tuple[int, int] | None = None) -&gt; list[np.ndarray]</code></td>
<td>Extract frames from video with smart sampling.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/models/mllm.py#L1123-L1187">#L1123-L1187</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="class" data-symbol-search="vllm_mlx.models.mllm.filesizeexceedederror class vllm_mlx.models.mllm.filesizeexceedederror() raised when a downloaded file exceeds the size limit.">
<td><a href="../api/vllm_mlx/models/mllm/#contract-vllm_mlx.models.mllm.FileSizeExceededError"><code>vllm_mlx.models.mllm.FileSizeExceededError</code></a></td>
<td>class</td>
<td><code>vllm_mlx.models.mllm.FileSizeExceededError()</code></td>
<td>Raised when a downloaded file exceeds the size limit.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/models/mllm.py#L119-L122">#L119-L122</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.models.mllm.floor_by_factor function vllm_mlx.models.mllm.floor_by_factor(x: float, factor: int) -&gt; int floor to previous multiple of factor.">
<td><a href="../api/vllm_mlx/models/mllm/#contract-vllm_mlx.models.mllm.floor_by_factor"><code>vllm_mlx.models.mllm.floor_by_factor</code></a></td>
<td>function</td>
<td><code>vllm_mlx.models.mllm.floor_by_factor(x: float, factor: int) -&gt; int</code></td>
<td>Floor to previous multiple of factor.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/models/mllm.py#L1093-L1095">#L1093-L1095</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.models.mllm.is_base64_audio function vllm_mlx.models.mllm.is_base64_audio(s: str) -&gt; bool check if string is base64-encoded audio data.">
<td><a href="../api/vllm_mlx/models/mllm/#contract-vllm_mlx.models.mllm.is_base64_audio"><code>vllm_mlx.models.mllm.is_base64_audio</code></a></td>
<td>function</td>
<td><code>vllm_mlx.models.mllm.is_base64_audio(s: str) -&gt; bool</code></td>
<td>Check if string is base64-encoded audio data.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/models/mllm.py#L448-L450">#L448-L450</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.models.mllm.is_base64_image function vllm_mlx.models.mllm.is_base64_image(s: str) -&gt; bool check if string is base64-encoded image data.">
<td><a href="../api/vllm_mlx/models/mllm/#contract-vllm_mlx.models.mllm.is_base64_image"><code>vllm_mlx.models.mllm.is_base64_image</code></a></td>
<td>function</td>
<td><code>vllm_mlx.models.mllm.is_base64_image(s: str) -&gt; bool</code></td>
<td>Check if string is base64-encoded image data.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/models/mllm.py#L431-L435">#L431-L435</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.models.mllm.is_base64_video function vllm_mlx.models.mllm.is_base64_video(s: str) -&gt; bool check if string is base64-encoded video data.">
<td><a href="../api/vllm_mlx/models/mllm/#contract-vllm_mlx.models.mllm.is_base64_video"><code>vllm_mlx.models.mllm.is_base64_video</code></a></td>
<td>function</td>
<td><code>vllm_mlx.models.mllm.is_base64_video(s: str) -&gt; bool</code></td>
<td>Check if string is base64-encoded video data.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/models/mllm.py#L443-L445">#L443-L445</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.models.mllm.is_url function vllm_mlx.models.mllm.is_url(s: str) -&gt; bool check if string is a url.">
<td><a href="../api/vllm_mlx/models/mllm/#contract-vllm_mlx.models.mllm.is_url"><code>vllm_mlx.models.mllm.is_url</code></a></td>
<td>function</td>
<td><code>vllm_mlx.models.mllm.is_url(s: str) -&gt; bool</code></td>
<td>Check if string is a URL.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/models/mllm.py#L438-L440">#L438-L440</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.models.mllm.load_gemma4_assistant_drafter function vllm_mlx.models.mllm.load_gemma4_assistant_drafter(model_path: str) -&gt; not annotated load a gemma 4 assistant drafter for mlx-vlm speculative decoding.">
<td><a href="../api/vllm_mlx/models/mllm/#contract-vllm_mlx.models.mllm.load_gemma4_assistant_drafter"><code>vllm_mlx.models.mllm.load_gemma4_assistant_drafter</code></a></td>
<td>function</td>
<td><code>vllm_mlx.models.mllm.load_gemma4_assistant_drafter(model_path: str) -&gt; not annotated</code></td>
<td>Load a Gemma 4 assistant drafter for mlx-vlm speculative decoding.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/models/mllm.py#L340-L381">#L340-L381</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="class" data-symbol-search="vllm_mlx.models.mllm.mllmoutput class vllm_mlx.models.mllm.mllmoutput(text: str, finish_reason: str | none = none, prompt_tokens: int = 0, completion_tokens: int = 0, mtp_drafts: int = 0, mtp_accepted: int = 0) output from multimodal language model.">
<td><a href="../api/vllm_mlx/models/mllm/#contract-vllm_mlx.models.mllm.MLLMOutput"><code>vllm_mlx.models.mllm.MLLMOutput</code></a></td>
<td>class</td>
<td><code>vllm_mlx.models.mllm.MLLMOutput(text: str, finish_reason: str | None = None, prompt_tokens: int = 0, completion_tokens: int = 0, mtp_drafts: int = 0, mtp_accepted: int = 0)</code></td>
<td>Output from multimodal language model.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/models/mllm.py#L329-L337">#L329-L337</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="class" data-symbol-search="vllm_mlx.models.mllm.mlxmultimodallm class vllm_mlx.models.mllm.mlxmultimodallm(model_name: str, trust_remote_code: bool = false, enable_cache: bool = true, cache_size: int = 50, max_kv_size: int = 0, draft_model: str | none = none, draft_kind: str | none = none, draft_block_size: int | none = none) wrapper around mlx-vlm for multimodal inference.">
<td><a href="../api/vllm_mlx/models/mllm/#contract-vllm_mlx.models.mllm.MLXMultimodalLM"><code>vllm_mlx.models.mllm.MLXMultimodalLM</code></a></td>
<td>class</td>
<td><code>vllm_mlx.models.mllm.MLXMultimodalLM(model_name: str, trust_remote_code: bool = False, enable_cache: bool = True, cache_size: int = 50, max_kv_size: int = 0, draft_model: str | None = None, draft_kind: str | None = None, draft_block_size: int | None = None)</code></td>
<td>Wrapper around mlx-vlm for multimodal inference.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/models/mllm.py#L1207-L2938">#L1207-L2938</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.models.mllm.mlxmultimodallm.__init__ method vllm_mlx.models.mllm.mlxmultimodallm.__init__(model_name: str, trust_remote_code: bool = false, enable_cache: bool = true, cache_size: int = 50, max_kv_size: int = 0, draft_model: str | none = none, draft_kind: str | none = none, draft_block_size: int | none = none) -&gt; not annotated initialize the mlx multimodal language model.">
<td><a href="../api/vllm_mlx/models/mllm/#contract-vllm_mlx.models.mllm.MLXMultimodalLM.__init__"><code>vllm_mlx.models.mllm.MLXMultimodalLM.__init__</code></a></td>
<td>method</td>
<td><code>vllm_mlx.models.mllm.MLXMultimodalLM.__init__(model_name: str, trust_remote_code: bool = False, enable_cache: bool = True, cache_size: int = 50, max_kv_size: int = 0, draft_model: str | None = None, draft_kind: str | None = None, draft_block_size: int | None = None) -&gt; not annotated</code></td>
<td>Initialize the MLX multimodal language model.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/models/mllm.py#L1235-L1278">#L1235-L1278</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.models.mllm.mlxmultimodallm.__repr__ method vllm_mlx.models.mllm.mlxmultimodallm.__repr__() -&gt; str method `mlxmultimodallm.__repr__` returns `f&#x27;&lt;mlxmultimodallm model={self.model_name} status={status}&gt;&#x27;`.">
<td><a href="../api/vllm_mlx/models/mllm/#contract-vllm_mlx.models.mllm.MLXMultimodalLM.__repr__"><code>vllm_mlx.models.mllm.MLXMultimodalLM.__repr__</code></a></td>
<td>method</td>
<td><code>vllm_mlx.models.mllm.MLXMultimodalLM.__repr__() -&gt; str</code></td>
<td>Method `MLXMultimodalLM.__repr__` returns `f&#x27;&lt;MLXMultimodalLM model={self.model_name} status={status}&gt;&#x27;`.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/models/mllm.py#L2936-L2938">#L2936-L2938</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.models.mllm.mlxmultimodallm._collect_audio_inputs method vllm_mlx.models.mllm.mlxmultimodallm._collect_audio_inputs(messages: list[dict]) -&gt; dict[int, list] collect audio inputs from messages, keyed by message index.">
<td><a href="../api/vllm_mlx/models/mllm/#contract-vllm_mlx.models.mllm.MLXMultimodalLM._collect_audio_inputs"><code>vllm_mlx.models.mllm.MLXMultimodalLM._collect_audio_inputs</code></a></td>
<td>method</td>
<td><code>vllm_mlx.models.mllm.MLXMultimodalLM._collect_audio_inputs(messages: list[dict]) -&gt; dict[int, list]</code></td>
<td>Collect audio inputs from messages, keyed by message index.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/models/mllm.py#L1499-L1528">#L1499-L1528</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.models.mllm.mlxmultimodallm._collect_video_inputs method vllm_mlx.models.mllm.mlxmultimodallm._collect_video_inputs(messages: list[dict]) -&gt; dict[int, list] collect video inputs from messages, keyed by message index.">
<td><a href="../api/vllm_mlx/models/mllm/#contract-vllm_mlx.models.mllm.MLXMultimodalLM._collect_video_inputs"><code>vllm_mlx.models.mllm.MLXMultimodalLM._collect_video_inputs</code></a></td>
<td>method</td>
<td><code>vllm_mlx.models.mllm.MLXMultimodalLM._collect_video_inputs(messages: list[dict]) -&gt; dict[int, list]</code></td>
<td>Collect video inputs from messages, keyed by message index.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/models/mllm.py#L1465-L1497">#L1465-L1497</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.models.mllm.mlxmultimodallm._draft_generation_kwargs method vllm_mlx.models.mllm.mlxmultimodallm._draft_generation_kwargs(call_kwargs: dict | none = none) -&gt; dict return mlx-vlm drafter kwargs when the request explicitly opts in.">
<td><a href="../api/vllm_mlx/models/mllm/#contract-vllm_mlx.models.mllm.MLXMultimodalLM._draft_generation_kwargs"><code>vllm_mlx.models.mllm.MLXMultimodalLM._draft_generation_kwargs</code></a></td>
<td>method</td>
<td><code>vllm_mlx.models.mllm.MLXMultimodalLM._draft_generation_kwargs(call_kwargs: dict | None = None) -&gt; dict</code></td>
<td>Return mlx-vlm drafter kwargs when the request explicitly opts in.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/models/mllm.py#L1334-L1355">#L1334-L1355</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.models.mllm.mlxmultimodallm._draft_metrics_since method vllm_mlx.models.mllm.mlxmultimodallm._draft_metrics_since(start_accept_lens: int) -&gt; dict[str, int] method `mlxmultimodallm._draft_metrics_since` calls `list`, `getattr`, `len`, `int`; has 2 explicit return paths.">
<td><a href="../api/vllm_mlx/models/mllm/#contract-vllm_mlx.models.mllm.MLXMultimodalLM._draft_metrics_since"><code>vllm_mlx.models.mllm.MLXMultimodalLM._draft_metrics_since</code></a></td>
<td>method</td>
<td><code>vllm_mlx.models.mllm.MLXMultimodalLM._draft_metrics_since(start_accept_lens: int) -&gt; dict[str, int]</code></td>
<td>Method `MLXMultimodalLM._draft_metrics_since` calls `list`, `getattr`, `len`, `int`; has 2 explicit return paths.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/models/mllm.py#L1366-L1395">#L1366-L1395</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.models.mllm.mlxmultimodallm._generate_native_video method vllm_mlx.models.mllm.mlxmultimodallm._generate_native_video(messages: list[dict], max_tokens: int = 256, temperature: float = 0.7, video_fps: float = default_fps, video_max_frames: int = max_frames, tools: list | none = none, **kwargs) -&gt; mllmoutput generate using native video pipeline (qwen-family models).">
<td><a href="../api/vllm_mlx/models/mllm/#contract-vllm_mlx.models.mllm.MLXMultimodalLM._generate_native_video"><code>vllm_mlx.models.mllm.MLXMultimodalLM._generate_native_video</code></a></td>
<td>method</td>
<td><code>vllm_mlx.models.mllm.MLXMultimodalLM._generate_native_video(messages: list[dict], max_tokens: int = 256, temperature: float = 0.7, video_fps: float = DEFAULT_FPS, video_max_frames: int = MAX_FRAMES, tools: list | None = None, **kwargs) -&gt; MLLMOutput</code></td>
<td>Generate using native video pipeline (Qwen-family models).</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/models/mllm.py#L1650-L1695">#L1650-L1695</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.models.mllm.mlxmultimodallm._load_draft_model method vllm_mlx.models.mllm.mlxmultimodallm._load_draft_model() -&gt; not annotated method `mlxmultimodallm._load_draft_model` calls `load_gemma4_assistant_drafter`, `load`; has 2 explicit return paths.">
<td><a href="../api/vllm_mlx/models/mllm/#contract-vllm_mlx.models.mllm.MLXMultimodalLM._load_draft_model"><code>vllm_mlx.models.mllm.MLXMultimodalLM._load_draft_model</code></a></td>
<td>method</td>
<td><code>vllm_mlx.models.mllm.MLXMultimodalLM._load_draft_model() -&gt; not annotated</code></td>
<td>Method `MLXMultimodalLM._load_draft_model` calls `load_gemma4_assistant_drafter`, `load`; has 2 explicit return paths.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/models/mllm.py#L1325-L1332">#L1325-L1332</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.models.mllm.mlxmultimodallm._prepare_audio method vllm_mlx.models.mllm.mlxmultimodallm._prepare_audio(audio_inputs: list) -&gt; list[str] process audio inputs and return local file paths.">
<td><a href="../api/vllm_mlx/models/mllm/#contract-vllm_mlx.models.mllm.MLXMultimodalLM._prepare_audio"><code>vllm_mlx.models.mllm.MLXMultimodalLM._prepare_audio</code></a></td>
<td>method</td>
<td><code>vllm_mlx.models.mllm.MLXMultimodalLM._prepare_audio(audio_inputs: list) -&gt; list[str]</code></td>
<td>Process audio inputs and return local file paths.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/models/mllm.py#L1416-L1425">#L1416-L1425</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.models.mllm.mlxmultimodallm._prepare_images method vllm_mlx.models.mllm.mlxmultimodallm._prepare_images(images: list) -&gt; list[str] process remote/base64 image inputs into local temp file paths.">
<td><a href="../api/vllm_mlx/models/mllm/#contract-vllm_mlx.models.mllm.MLXMultimodalLM._prepare_images"><code>vllm_mlx.models.mllm.MLXMultimodalLM._prepare_images</code></a></td>
<td>method</td>
<td><code>vllm_mlx.models.mllm.MLXMultimodalLM._prepare_images(images: list) -&gt; list[str]</code></td>
<td>Process remote/base64 image inputs into local temp file paths.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/models/mllm.py#L1405-L1414">#L1405-L1414</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.models.mllm.mlxmultimodallm._prepare_native_video_inputs method vllm_mlx.models.mllm.mlxmultimodallm._prepare_native_video_inputs(messages: list[dict], video_fps: float = default_fps, video_max_frames: int = max_frames, tools: list | none = none) -&gt; tuple[str, dict] preprocess messages into prompt + generation kwargs for native video.">
<td><a href="../api/vllm_mlx/models/mllm/#contract-vllm_mlx.models.mllm.MLXMultimodalLM._prepare_native_video_inputs"><code>vllm_mlx.models.mllm.MLXMultimodalLM._prepare_native_video_inputs</code></a></td>
<td>method</td>
<td><code>vllm_mlx.models.mllm.MLXMultimodalLM._prepare_native_video_inputs(messages: list[dict], video_fps: float = DEFAULT_FPS, video_max_frames: int = MAX_FRAMES, tools: list | None = None) -&gt; tuple[str, dict]</code></td>
<td>Preprocess messages into prompt + generation kwargs for native video.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/models/mllm.py#L1530-L1648">#L1530-L1648</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.models.mllm.mlxmultimodallm._prepare_video method vllm_mlx.models.mllm.mlxmultimodallm._prepare_video(video_input: str | dict, fps: float = default_fps, max_frames: int = max_frames, resolved_path: str | none = none) -&gt; list[str] process video input and extract frames.">
<td><a href="../api/vllm_mlx/models/mllm/#contract-vllm_mlx.models.mllm.MLXMultimodalLM._prepare_video"><code>vllm_mlx.models.mllm.MLXMultimodalLM._prepare_video</code></a></td>
<td>method</td>
<td><code>vllm_mlx.models.mllm.MLXMultimodalLM._prepare_video(video_input: str | dict, fps: float = DEFAULT_FPS, max_frames: int = MAX_FRAMES, resolved_path: str | None = None) -&gt; list[str]</code></td>
<td>Process video input and extract frames.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/models/mllm.py#L1427-L1463">#L1427-L1463</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.models.mllm.mlxmultimodallm._reset_draft_metrics method vllm_mlx.models.mllm.mlxmultimodallm._reset_draft_metrics() -&gt; int method `mlxmultimodallm._reset_draft_metrics` updates `self._draft_model.accept_lens`, `self._draft_model._vllm_mlx_draft_counts`; calls `hasattr`; returns `0`.">
<td><a href="../api/vllm_mlx/models/mllm/#contract-vllm_mlx.models.mllm.MLXMultimodalLM._reset_draft_metrics"><code>vllm_mlx.models.mllm.MLXMultimodalLM._reset_draft_metrics</code></a></td>
<td>method</td>
<td><code>vllm_mlx.models.mllm.MLXMultimodalLM._reset_draft_metrics() -&gt; int</code></td>
<td>Method `MLXMultimodalLM._reset_draft_metrics` updates `self._draft_model.accept_lens`, `self._draft_model._vllm_mlx_draft_counts`; calls `hasattr`; returns `0`.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/models/mllm.py#L1357-L1364">#L1357-L1364</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.models.mllm.mlxmultimodallm._translate_messages_for_native_video method vllm_mlx.models.mllm.mlxmultimodallm._translate_messages_for_native_video(messages: list[dict], video_fps: float, video_max_frames: int) -&gt; list[dict] translate openai api format messages to process_vision_info format.">
<td><a href="../api/vllm_mlx/models/mllm/#contract-vllm_mlx.models.mllm.MLXMultimodalLM._translate_messages_for_native_video"><code>vllm_mlx.models.mllm.MLXMultimodalLM._translate_messages_for_native_video</code></a></td>
<td>method</td>
<td><code>vllm_mlx.models.mllm.MLXMultimodalLM._translate_messages_for_native_video(messages: list[dict], video_fps: float, video_max_frames: int) -&gt; list[dict]</code></td>
<td>Translate OpenAI API format messages to process_vision_info format.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/models/mllm.py#L1697-L1832">#L1697-L1832</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.models.mllm.mlxmultimodallm.answer_about_image method vllm_mlx.models.mllm.mlxmultimodallm.answer_about_image(image: str, question: str, max_tokens: int = 256, **kwargs) -&gt; str answer a question about an image.">
<td><a href="../api/vllm_mlx/models/mllm/#contract-vllm_mlx.models.mllm.MLXMultimodalLM.answer_about_image"><code>vllm_mlx.models.mllm.MLXMultimodalLM.answer_about_image</code></a></td>
<td>method</td>
<td><code>vllm_mlx.models.mllm.MLXMultimodalLM.answer_about_image(image: str, question: str, max_tokens: int = 256, **kwargs) -&gt; str</code></td>
<td>Answer a question about an image.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/models/mllm.py#L2766-L2791">#L2766-L2791</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.models.mllm.mlxmultimodallm.chat method vllm_mlx.models.mllm.mlxmultimodallm.chat(messages: list[dict], max_tokens: int = 256, temperature: float = 0.7, **kwargs) -&gt; mllmoutput chat with openai-compatible message format.">
<td><a href="../api/vllm_mlx/models/mllm/#contract-vllm_mlx.models.mllm.MLXMultimodalLM.chat"><code>vllm_mlx.models.mllm.MLXMultimodalLM.chat</code></a></td>
<td>method</td>
<td><code>vllm_mlx.models.mllm.MLXMultimodalLM.chat(messages: list[dict], max_tokens: int = 256, temperature: float = 0.7, **kwargs) -&gt; MLLMOutput</code></td>
<td>Chat with OpenAI-compatible message format.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/models/mllm.py#L2095-L2487">#L2095-L2487</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.models.mllm.mlxmultimodallm.clear_cache method vllm_mlx.models.mllm.mlxmultimodallm.clear_cache() -&gt; none clear the mllm kv cache.">
<td><a href="../api/vllm_mlx/models/mllm/#contract-vllm_mlx.models.mllm.MLXMultimodalLM.clear_cache"><code>vllm_mlx.models.mllm.MLXMultimodalLM.clear_cache</code></a></td>
<td>method</td>
<td><code>vllm_mlx.models.mllm.MLXMultimodalLM.clear_cache() -&gt; None</code></td>
<td>Clear the MLLM KV cache.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/models/mllm.py#L2848-L2852">#L2848-L2852</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.models.mllm.mlxmultimodallm.describe_image method vllm_mlx.models.mllm.mlxmultimodallm.describe_image(image: str, prompt: str = &#x27;describe this image in detail.&#x27;, max_tokens: int = 512, **kwargs) -&gt; str convenience method to describe an image.">
<td><a href="../api/vllm_mlx/models/mllm/#contract-vllm_mlx.models.mllm.MLXMultimodalLM.describe_image"><code>vllm_mlx.models.mllm.MLXMultimodalLM.describe_image</code></a></td>
<td>method</td>
<td><code>vllm_mlx.models.mllm.MLXMultimodalLM.describe_image(image: str, prompt: str = &#x27;Describe this image in detail.&#x27;, max_tokens: int = 512, **kwargs) -&gt; str</code></td>
<td>Convenience method to describe an image.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/models/mllm.py#L2739-L2764">#L2739-L2764</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.models.mllm.mlxmultimodallm.describe_video method vllm_mlx.models.mllm.mlxmultimodallm.describe_video(video: str | dict, prompt: str = &#x27;describe what happens in this video.&#x27;, fps: float = 2.0, max_frames: int = 32, max_tokens: int = 512, **kwargs) -&gt; str describe a video using frame extraction.">
<td><a href="../api/vllm_mlx/models/mllm/#contract-vllm_mlx.models.mllm.MLXMultimodalLM.describe_video"><code>vllm_mlx.models.mllm.MLXMultimodalLM.describe_video</code></a></td>
<td>method</td>
<td><code>vllm_mlx.models.mllm.MLXMultimodalLM.describe_video(video: str | dict, prompt: str = &#x27;Describe what happens in this video.&#x27;, fps: float = 2.0, max_frames: int = 32, max_tokens: int = 512, **kwargs) -&gt; str</code></td>
<td>Describe a video using frame extraction.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/models/mllm.py#L2793-L2830">#L2793-L2830</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.models.mllm.mlxmultimodallm.generate method vllm_mlx.models.mllm.mlxmultimodallm.generate(prompt: str, images: list | none = none, videos: list | none = none, audio: list[str] | none = none, max_tokens: int = 256, temperature: float = 0.7, top_p: float = 0.9, video_fps: float = default_fps, video_max_frames: int = max_frames, use_cache: bool = true, **kwargs) -&gt; mllmoutput generate text from multimodal input.">
<td><a href="../api/vllm_mlx/models/mllm/#contract-vllm_mlx.models.mllm.MLXMultimodalLM.generate"><code>vllm_mlx.models.mllm.MLXMultimodalLM.generate</code></a></td>
<td>method</td>
<td><code>vllm_mlx.models.mllm.MLXMultimodalLM.generate(prompt: str, images: list | None = None, videos: list | None = None, audio: list[str] | None = None, max_tokens: int = 256, temperature: float = 0.7, top_p: float = 0.9, video_fps: float = DEFAULT_FPS, video_max_frames: int = MAX_FRAMES, use_cache: bool = True, **kwargs) -&gt; MLLMOutput</code></td>
<td>Generate text from multimodal input.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/models/mllm.py#L1834-L2002">#L1834-L2002</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.models.mllm.mlxmultimodallm.get_cache_stats method vllm_mlx.models.mllm.mlxmultimodallm.get_cache_stats() -&gt; dict get mllm cache statistics.">
<td><a href="../api/vllm_mlx/models/mllm/#contract-vllm_mlx.models.mllm.MLXMultimodalLM.get_cache_stats"><code>vllm_mlx.models.mllm.MLXMultimodalLM.get_cache_stats</code></a></td>
<td>method</td>
<td><code>vllm_mlx.models.mllm.MLXMultimodalLM.get_cache_stats() -&gt; dict</code></td>
<td>Get MLLM cache statistics.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/models/mllm.py#L2832-L2846">#L2832-L2846</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.models.mllm.mlxmultimodallm.get_language_model method vllm_mlx.models.mllm.mlxmultimodallm.get_language_model() -&gt; not annotated extract the underlying language model for mlx_lm textmodel construction.">
<td><a href="../api/vllm_mlx/models/mllm/#contract-vllm_mlx.models.mllm.MLXMultimodalLM.get_language_model"><code>vllm_mlx.models.mllm.MLXMultimodalLM.get_language_model</code></a></td>
<td>method</td>
<td><code>vllm_mlx.models.mllm.MLXMultimodalLM.get_language_model() -&gt; not annotated</code></td>
<td>Extract the underlying language model for mlx_lm TextModel construction.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/models/mllm.py#L1397-L1399">#L1397-L1399</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.models.mllm.mlxmultimodallm.get_model_info method vllm_mlx.models.mllm.mlxmultimodallm.get_model_info() -&gt; dict get information about the loaded model.">
<td><a href="../api/vllm_mlx/models/mllm/#contract-vllm_mlx.models.mllm.MLXMultimodalLM.get_model_info"><code>vllm_mlx.models.mllm.MLXMultimodalLM.get_model_info</code></a></td>
<td>method</td>
<td><code>vllm_mlx.models.mllm.MLXMultimodalLM.get_model_info() -&gt; dict</code></td>
<td>Get information about the loaded model.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/models/mllm.py#L2854-L2874">#L2854-L2874</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.models.mllm.mlxmultimodallm.get_tokenizer method vllm_mlx.models.mllm.mlxmultimodallm.get_tokenizer() -&gt; not annotated get the text tokenizer (not the multimodal processor).">
<td><a href="../api/vllm_mlx/models/mllm/#contract-vllm_mlx.models.mllm.MLXMultimodalLM.get_tokenizer"><code>vllm_mlx.models.mllm.MLXMultimodalLM.get_tokenizer</code></a></td>
<td>method</td>
<td><code>vllm_mlx.models.mllm.MLXMultimodalLM.get_tokenizer() -&gt; not annotated</code></td>
<td>Get the text tokenizer (not the multimodal processor).</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/models/mllm.py#L1401-L1403">#L1401-L1403</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.models.mllm.mlxmultimodallm.is_mllm_model method vllm_mlx.models.mllm.mlxmultimodallm.is_mllm_model(model_name: str) -&gt; bool check if a model name indicates an mllm model.">
<td><a href="../api/vllm_mlx/models/mllm/#contract-vllm_mlx.models.mllm.MLXMultimodalLM.is_mllm_model"><code>vllm_mlx.models.mllm.MLXMultimodalLM.is_mllm_model</code></a></td>
<td>method</td>
<td><code>vllm_mlx.models.mllm.MLXMultimodalLM.is_mllm_model(model_name: str) -&gt; bool</code></td>
<td>Check if a model name indicates an MLLM model.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/models/mllm.py#L2900-L2934">#L2900-L2934</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.models.mllm.mlxmultimodallm.list_supported_model_families method vllm_mlx.models.mllm.mlxmultimodallm.list_supported_model_families() -&gt; dict[str, str] list supported model families and their patterns.">
<td><a href="../api/vllm_mlx/models/mllm/#contract-vllm_mlx.models.mllm.MLXMultimodalLM.list_supported_model_families"><code>vllm_mlx.models.mllm.MLXMultimodalLM.list_supported_model_families</code></a></td>
<td>method</td>
<td><code>vllm_mlx.models.mllm.MLXMultimodalLM.list_supported_model_families() -&gt; dict[str, str]</code></td>
<td>List supported model families and their patterns.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/models/mllm.py#L2877-L2897">#L2877-L2897</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.models.mllm.mlxmultimodallm.load method vllm_mlx.models.mllm.mlxmultimodallm.load() -&gt; none load the model and processor.">
<td><a href="../api/vllm_mlx/models/mllm/#contract-vllm_mlx.models.mllm.MLXMultimodalLM.load"><code>vllm_mlx.models.mllm.MLXMultimodalLM.load</code></a></td>
<td>method</td>
<td><code>vllm_mlx.models.mllm.MLXMultimodalLM.load() -&gt; None</code></td>
<td>Load the model and processor.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/models/mllm.py#L1280-L1323">#L1280-L1323</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.models.mllm.mlxmultimodallm.stream_chat method vllm_mlx.models.mllm.mlxmultimodallm.stream_chat(messages: list[dict], max_tokens: int = 256, temperature: float = 0.7, **kwargs) -&gt; iterator[mllmoutput] stream chat with openai-compatible message format.">
<td><a href="../api/vllm_mlx/models/mllm/#contract-vllm_mlx.models.mllm.MLXMultimodalLM.stream_chat"><code>vllm_mlx.models.mllm.MLXMultimodalLM.stream_chat</code></a></td>
<td>method</td>
<td><code>vllm_mlx.models.mllm.MLXMultimodalLM.stream_chat(messages: list[dict], max_tokens: int = 256, temperature: float = 0.7, **kwargs) -&gt; Iterator[MLLMOutput]</code></td>
<td>Stream chat with OpenAI-compatible message format.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/models/mllm.py#L2489-L2737">#L2489-L2737</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.models.mllm.mlxmultimodallm.stream_generate method vllm_mlx.models.mllm.mlxmultimodallm.stream_generate(prompt: str, images: list | none = none, videos: list[str] | none = none, audio: list[str] | none = none, max_tokens: int = 256, temperature: float = 0.7, video_fps: float = default_fps, **kwargs) -&gt; iterator[str] stream text generation for multimodal input.">
<td><a href="../api/vllm_mlx/models/mllm/#contract-vllm_mlx.models.mllm.MLXMultimodalLM.stream_generate"><code>vllm_mlx.models.mllm.MLXMultimodalLM.stream_generate</code></a></td>
<td>method</td>
<td><code>vllm_mlx.models.mllm.MLXMultimodalLM.stream_generate(prompt: str, images: list | None = None, videos: list[str] | None = None, audio: list[str] | None = None, max_tokens: int = 256, temperature: float = 0.7, video_fps: float = DEFAULT_FPS, **kwargs) -&gt; Iterator[str]</code></td>
<td>Stream text generation for multimodal input.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/models/mllm.py#L2004-L2093">#L2004-L2093</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="class" data-symbol-search="vllm_mlx.models.mllm.multimodalinput class vllm_mlx.models.mllm.multimodalinput(prompt: str, images: list[str] = field(default_factory=list), videos: list[str] = field(default_factory=list), audio: list[str] = field(default_factory=list)) input for multimodal generation.">
<td><a href="../api/vllm_mlx/models/mllm/#contract-vllm_mlx.models.mllm.MultimodalInput"><code>vllm_mlx.models.mllm.MultimodalInput</code></a></td>
<td>class</td>
<td><code>vllm_mlx.models.mllm.MultimodalInput(prompt: str, images: list[str] = field(default_factory=list), videos: list[str] = field(default_factory=list), audio: list[str] = field(default_factory=list))</code></td>
<td>Input for multimodal generation.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/models/mllm.py#L319-L325">#L319-L325</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.models.mllm.process_audio_input function vllm_mlx.models.mllm.process_audio_input(audio: str | dict) -&gt; str process audio input in various formats and return local path.">
<td><a href="../api/vllm_mlx/models/mllm/#contract-vllm_mlx.models.mllm.process_audio_input"><code>vllm_mlx.models.mllm.process_audio_input</code></a></td>
<td>function</td>
<td><code>vllm_mlx.models.mllm.process_audio_input(audio: str | dict) -&gt; str</code></td>
<td>Process audio input in various formats and return local path.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/models/mllm.py#L877-L905">#L877-L905</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.models.mllm.process_image_input function vllm_mlx.models.mllm.process_image_input(image: str | dict) -&gt; str process image input in various formats and return local path.">
<td><a href="../api/vllm_mlx/models/mllm/#contract-vllm_mlx.models.mllm.process_image_input"><code>vllm_mlx.models.mllm.process_image_input</code></a></td>
<td>function</td>
<td><code>vllm_mlx.models.mllm.process_image_input(image: str | dict) -&gt; str</code></td>
<td>Process image input in various formats and return local path.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/models/mllm.py#L1051-L1080">#L1051-L1080</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.models.mllm.process_video_input function vllm_mlx.models.mllm.process_video_input(video: str | dict) -&gt; str process video input in various formats and return local path.">
<td><a href="../api/vllm_mlx/models/mllm/#contract-vllm_mlx.models.mllm.process_video_input"><code>vllm_mlx.models.mllm.process_video_input</code></a></td>
<td>function</td>
<td><code>vllm_mlx.models.mllm.process_video_input(video: str | dict) -&gt; str</code></td>
<td>Process video input in various formats and return local path.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/models/mllm.py#L839-L874">#L839-L874</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.models.mllm.round_by_factor function vllm_mlx.models.mllm.round_by_factor(x: int, factor: int) -&gt; int round to nearest multiple of factor.">
<td><a href="../api/vllm_mlx/models/mllm/#contract-vllm_mlx.models.mllm.round_by_factor"><code>vllm_mlx.models.mllm.round_by_factor</code></a></td>
<td>function</td>
<td><code>vllm_mlx.models.mllm.round_by_factor(x: int, factor: int) -&gt; int</code></td>
<td>Round to nearest multiple of factor.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/models/mllm.py#L1083-L1085">#L1083-L1085</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.models.mllm.save_base64_image function vllm_mlx.models.mllm.save_base64_image(base64_string: str) -&gt; str save base64 image to temp file and return path.">
<td><a href="../api/vllm_mlx/models/mllm/#contract-vllm_mlx.models.mllm.save_base64_image"><code>vllm_mlx.models.mllm.save_base64_image</code></a></td>
<td>function</td>
<td><code>vllm_mlx.models.mllm.save_base64_image(base64_string: str) -&gt; str</code></td>
<td>Save base64 image to temp file and return path.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/models/mllm.py#L1012-L1048">#L1012-L1048</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.models.mllm.save_frames_to_temp function vllm_mlx.models.mllm.save_frames_to_temp(frames: list[np.ndarray]) -&gt; list[str] save frame arrays to temporary files and return paths.">
<td><a href="../api/vllm_mlx/models/mllm/#contract-vllm_mlx.models.mllm.save_frames_to_temp"><code>vllm_mlx.models.mllm.save_frames_to_temp</code></a></td>
<td>function</td>
<td><code>vllm_mlx.models.mllm.save_frames_to_temp(frames: list[np.ndarray]) -&gt; list[str]</code></td>
<td>Save frame arrays to temporary files and return paths.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/models/mllm.py#L1190-L1204">#L1190-L1204</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.models.mllm.smart_nframes function vllm_mlx.models.mllm.smart_nframes(total_frames: int, video_fps: float, target_fps: float = default_fps, min_frames: int = min_frames, max_frames: int = max_frames) -&gt; int calculate optimal number of frames to extract from video.">
<td><a href="../api/vllm_mlx/models/mllm/#contract-vllm_mlx.models.mllm.smart_nframes"><code>vllm_mlx.models.mllm.smart_nframes</code></a></td>
<td>function</td>
<td><code>vllm_mlx.models.mllm.smart_nframes(total_frames: int, video_fps: float, target_fps: float = DEFAULT_FPS, min_frames: int = MIN_FRAMES, max_frames: int = MAX_FRAMES) -&gt; int</code></td>
<td>Calculate optimal number of frames to extract from video.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/models/mllm.py#L1098-L1120">#L1098-L1120</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="class" data-symbol-search="vllm_mlx.models.mllm.tempfilemanager class vllm_mlx.models.mllm.tempfilemanager() thread-safe manager for tracking and cleaning up temporary files.">
<td><a href="../api/vllm_mlx/models/mllm/#contract-vllm_mlx.models.mllm.TempFileManager"><code>vllm_mlx.models.mllm.TempFileManager</code></a></td>
<td>class</td>
<td><code>vllm_mlx.models.mllm.TempFileManager()</code></td>
<td>Thread-safe manager for tracking and cleaning up temporary files.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/models/mllm.py#L41-L86">#L41-L86</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.models.mllm.tempfilemanager.__init__ method vllm_mlx.models.mllm.tempfilemanager.__init__() -&gt; not annotated method `tempfilemanager.__init__` updates `self._files`, `self._lock`; calls `set`, `threading.lock`, `atexit.register`.">
<td><a href="../api/vllm_mlx/models/mllm/#contract-vllm_mlx.models.mllm.TempFileManager.__init__"><code>vllm_mlx.models.mllm.TempFileManager.__init__</code></a></td>
<td>method</td>
<td><code>vllm_mlx.models.mllm.TempFileManager.__init__() -&gt; not annotated</code></td>
<td>Method `TempFileManager.__init__` updates `self._files`, `self._lock`; calls `set`, `threading.Lock`, `atexit.register`.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/models/mllm.py#L44-L47">#L44-L47</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.models.mllm.tempfilemanager.cleanup method vllm_mlx.models.mllm.tempfilemanager.cleanup(path: str) -&gt; bool clean up a specific temp file.">
<td><a href="../api/vllm_mlx/models/mllm/#contract-vllm_mlx.models.mllm.TempFileManager.cleanup"><code>vllm_mlx.models.mllm.TempFileManager.cleanup</code></a></td>
<td>method</td>
<td><code>vllm_mlx.models.mllm.TempFileManager.cleanup(path: str) -&gt; bool</code></td>
<td>Clean up a specific temp file.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/models/mllm.py#L55-L67">#L55-L67</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.models.mllm.tempfilemanager.cleanup_all method vllm_mlx.models.mllm.tempfilemanager.cleanup_all() -&gt; int clean up all tracked temp files.">
<td><a href="../api/vllm_mlx/models/mllm/#contract-vllm_mlx.models.mllm.TempFileManager.cleanup_all"><code>vllm_mlx.models.mllm.TempFileManager.cleanup_all</code></a></td>
<td>method</td>
<td><code>vllm_mlx.models.mllm.TempFileManager.cleanup_all() -&gt; int</code></td>
<td>Clean up all tracked temp files.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/models/mllm.py#L69-L86">#L69-L86</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.models.mllm.tempfilemanager.register method vllm_mlx.models.mllm.tempfilemanager.register(path: str) -&gt; str register a temp file for tracking.">
<td><a href="../api/vllm_mlx/models/mllm/#contract-vllm_mlx.models.mllm.TempFileManager.register"><code>vllm_mlx.models.mllm.TempFileManager.register</code></a></td>
<td>method</td>
<td><code>vllm_mlx.models.mllm.TempFileManager.register(path: str) -&gt; str</code></td>
<td>Register a temp file for tracking.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/models/mllm.py#L49-L53">#L49-L53</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="class" data-symbol-search="vllm_mlx.models.mllm.unsaferemoteurlerror class vllm_mlx.models.mllm.unsaferemoteurlerror(message: str, *, public_message: str = &#x27;remote media url is not allowed&#x27;) raised when a remote media url targets an unsafe destination.">
<td><a href="../api/vllm_mlx/models/mllm/#contract-vllm_mlx.models.mllm.UnsafeRemoteURLError"><code>vllm_mlx.models.mllm.UnsafeRemoteURLError</code></a></td>
<td>class</td>
<td><code>vllm_mlx.models.mllm.UnsafeRemoteURLError(message: str, *, public_message: str = &#x27;Remote media URL is not allowed&#x27;)</code></td>
<td>Raised when a remote media URL targets an unsafe destination.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/models/mllm.py#L125-L135">#L125-L135</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.models.mllm.unsaferemoteurlerror.__init__ method vllm_mlx.models.mllm.unsaferemoteurlerror.__init__(message: str, *, public_message: str = &#x27;remote media url is not allowed&#x27;) -&gt; none method `unsaferemoteurlerror.__init__` updates `self.public_message`; calls `super().__init__`, `super`.">
<td><a href="../api/vllm_mlx/models/mllm/#contract-vllm_mlx.models.mllm.UnsafeRemoteURLError.__init__"><code>vllm_mlx.models.mllm.UnsafeRemoteURLError.__init__</code></a></td>
<td>method</td>
<td><code>vllm_mlx.models.mllm.UnsafeRemoteURLError.__init__(message: str, *, public_message: str = &#x27;Remote media URL is not allowed&#x27;) -&gt; None</code></td>
<td>Method `UnsafeRemoteURLError.__init__` updates `self.public_message`; calls `super().__init__`, `super`.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/models/mllm.py#L128-L135">#L128-L135</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="class" data-symbol-search="vllm_mlx.multimodal_processor.multimodalprocessor class vllm_mlx.multimodal_processor.multimodalprocessor(model: any, processor: any, config: optional[any] = none) processor for preparing multimodal inputs for vlm batching.">
<td><a href="../api/vllm_mlx/multimodal_processor/#contract-vllm_mlx.multimodal_processor.MultimodalProcessor"><code>vllm_mlx.multimodal_processor.MultimodalProcessor</code></a></td>
<td>class</td>
<td><code>vllm_mlx.multimodal_processor.MultimodalProcessor(model: Any, processor: Any, config: Optional[Any] = None)</code></td>
<td>Processor for preparing multimodal inputs for VLM batching.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/multimodal_processor.py#L52-L431">#L52-L431</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.multimodal_processor.multimodalprocessor.__init__ method vllm_mlx.multimodal_processor.multimodalprocessor.__init__(model: any, processor: any, config: optional[any] = none) -&gt; not annotated initialize the multimodal processor.">
<td><a href="../api/vllm_mlx/multimodal_processor/#contract-vllm_mlx.multimodal_processor.MultimodalProcessor.__init__"><code>vllm_mlx.multimodal_processor.MultimodalProcessor.__init__</code></a></td>
<td>method</td>
<td><code>vllm_mlx.multimodal_processor.MultimodalProcessor.__init__(model: Any, processor: Any, config: Optional[Any] = None) -&gt; not annotated</code></td>
<td>Initialize the multimodal processor.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/multimodal_processor.py#L68-L94">#L68-L94</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.multimodal_processor.multimodalprocessor.batch_image_grid_thw method vllm_mlx.multimodal_processor.multimodalprocessor.batch_image_grid_thw(grid_thw_list: list[optional[mx.array]]) -&gt; optional[mx.array] batch multiple image_grid_thw tensors together.">
<td><a href="../api/vllm_mlx/multimodal_processor/#contract-vllm_mlx.multimodal_processor.MultimodalProcessor.batch_image_grid_thw"><code>vllm_mlx.multimodal_processor.MultimodalProcessor.batch_image_grid_thw</code></a></td>
<td>method</td>
<td><code>vllm_mlx.multimodal_processor.MultimodalProcessor.batch_image_grid_thw(grid_thw_list: List[Optional[mx.array]]) -&gt; Optional[mx.array]</code></td>
<td>Batch multiple image_grid_thw tensors together.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/multimodal_processor.py#L257-L279">#L257-L279</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.multimodal_processor.multimodalprocessor.batch_pixel_values method vllm_mlx.multimodal_processor.multimodalprocessor.batch_pixel_values(pixel_values_list: list[optional[mx.array]]) -&gt; optional[mx.array] batch multiple pixel_values tensors together.">
<td><a href="../api/vllm_mlx/multimodal_processor/#contract-vllm_mlx.multimodal_processor.MultimodalProcessor.batch_pixel_values"><code>vllm_mlx.multimodal_processor.MultimodalProcessor.batch_pixel_values</code></a></td>
<td>method</td>
<td><code>vllm_mlx.multimodal_processor.MultimodalProcessor.batch_pixel_values(pixel_values_list: List[Optional[mx.array]]) -&gt; Optional[mx.array]</code></td>
<td>Batch multiple pixel_values tensors together.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/multimodal_processor.py#L226-L255">#L226-L255</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.multimodal_processor.multimodalprocessor.compute_vision_hash method vllm_mlx.multimodal_processor.multimodalprocessor.compute_vision_hash(pixel_values: mx.array) -&gt; str compute a hash for pixel values for caching purposes.">
<td><a href="../api/vllm_mlx/multimodal_processor/#contract-vllm_mlx.multimodal_processor.MultimodalProcessor.compute_vision_hash"><code>vllm_mlx.multimodal_processor.MultimodalProcessor.compute_vision_hash</code></a></td>
<td>method</td>
<td><code>vllm_mlx.multimodal_processor.MultimodalProcessor.compute_vision_hash(pixel_values: mx.array) -&gt; str</code></td>
<td>Compute a hash for pixel values for caching purposes.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/multimodal_processor.py#L411-L431">#L411-L431</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.multimodal_processor.multimodalprocessor.extract_vision_embeddings method vllm_mlx.multimodal_processor.multimodalprocessor.extract_vision_embeddings(pixel_values: mx.array, image_grid_thw: optional[mx.array] = none) -&gt; mx.array extract vision embeddings from pixel values.">
<td><a href="../api/vllm_mlx/multimodal_processor/#contract-vllm_mlx.multimodal_processor.MultimodalProcessor.extract_vision_embeddings"><code>vllm_mlx.multimodal_processor.MultimodalProcessor.extract_vision_embeddings</code></a></td>
<td>method</td>
<td><code>vllm_mlx.multimodal_processor.MultimodalProcessor.extract_vision_embeddings(pixel_values: mx.array, image_grid_thw: Optional[mx.array] = None) -&gt; mx.array</code></td>
<td>Extract vision embeddings from pixel values.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/multimodal_processor.py#L368-L409">#L368-L409</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.multimodal_processor.multimodalprocessor.prepare_for_batch method vllm_mlx.multimodal_processor.multimodalprocessor.prepare_for_batch(processed_inputs: list[processedmultimodalinput]) -&gt; tuple[mx.array, dict[str, any], list[int]] prepare multiple processed inputs for batch generation.">
<td><a href="../api/vllm_mlx/multimodal_processor/#contract-vllm_mlx.multimodal_processor.MultimodalProcessor.prepare_for_batch"><code>vllm_mlx.multimodal_processor.MultimodalProcessor.prepare_for_batch</code></a></td>
<td>method</td>
<td><code>vllm_mlx.multimodal_processor.MultimodalProcessor.prepare_for_batch(processed_inputs: List[ProcessedMultimodalInput]) -&gt; Tuple[mx.array, Dict[str, Any], List[int]]</code></td>
<td>Prepare multiple processed inputs for batch generation.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/multimodal_processor.py#L281-L366">#L281-L366</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.multimodal_processor.multimodalprocessor.process method vllm_mlx.multimodal_processor.multimodalprocessor.process(prompt: str, images: optional[list[str]] = none, videos: optional[list[str]] = none, video_fps: float = default_fps, video_max_frames: int = max_frames, add_special_tokens: bool = true, **kwargs) -&gt; processedmultimodalinput process multimodal inputs for batching.">
<td><a href="../api/vllm_mlx/multimodal_processor/#contract-vllm_mlx.multimodal_processor.MultimodalProcessor.process"><code>vllm_mlx.multimodal_processor.MultimodalProcessor.process</code></a></td>
<td>method</td>
<td><code>vllm_mlx.multimodal_processor.MultimodalProcessor.process(prompt: str, images: Optional[List[str]] = None, videos: Optional[List[str]] = None, video_fps: float = DEFAULT_FPS, video_max_frames: int = MAX_FRAMES, add_special_tokens: bool = True, **kwargs) -&gt; ProcessedMultimodalInput</code></td>
<td>Process multimodal inputs for batching.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/multimodal_processor.py#L96-L186">#L96-L186</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.multimodal_processor.multimodalprocessor.process_for_request method vllm_mlx.multimodal_processor.multimodalprocessor.process_for_request(prompt: str, images: optional[list[str]] = none, videos: optional[list[str]] = none, **kwargs) -&gt; dict[str, any] process inputs and return a dict suitable for request fields.">
<td><a href="../api/vllm_mlx/multimodal_processor/#contract-vllm_mlx.multimodal_processor.MultimodalProcessor.process_for_request"><code>vllm_mlx.multimodal_processor.MultimodalProcessor.process_for_request</code></a></td>
<td>method</td>
<td><code>vllm_mlx.multimodal_processor.MultimodalProcessor.process_for_request(prompt: str, images: Optional[List[str]] = None, videos: Optional[List[str]] = None, **kwargs) -&gt; Dict[str, Any]</code></td>
<td>Process inputs and return a dict suitable for Request fields.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/multimodal_processor.py#L188-L224">#L188-L224</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="class" data-symbol-search="vllm_mlx.multimodal_processor.processedmultimodalinput class vllm_mlx.multimodal_processor.processedmultimodalinput(input_ids: mx.array, pixel_values: optional[mx.array] = none, attention_mask: optional[mx.array] = none, image_grid_thw: optional[mx.array] = none, num_images: int = 0, num_tokens: int = 0, extra_kwargs: dict[str, any] = field(default_factory=dict)) container for processed multimodal inputs ready for batching.">
<td><a href="../api/vllm_mlx/multimodal_processor/#contract-vllm_mlx.multimodal_processor.ProcessedMultimodalInput"><code>vllm_mlx.multimodal_processor.ProcessedMultimodalInput</code></a></td>
<td>class</td>
<td><code>vllm_mlx.multimodal_processor.ProcessedMultimodalInput(input_ids: mx.array, pixel_values: Optional[mx.array] = None, attention_mask: Optional[mx.array] = None, image_grid_thw: Optional[mx.array] = None, num_images: int = 0, num_tokens: int = 0, extra_kwargs: Dict[str, Any] = field(default_factory=dict))</code></td>
<td>Container for processed multimodal inputs ready for batching.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/multimodal_processor.py#L29-L49">#L29-L49</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.optimizations.benchmark_memory_bandwidth function vllm_mlx.optimizations.benchmark_memory_bandwidth() -&gt; dict benchmark actual memory bandwidth achieved.">
<td><a href="../api/vllm_mlx/optimizations/#contract-vllm_mlx.optimizations.benchmark_memory_bandwidth"><code>vllm_mlx.optimizations.benchmark_memory_bandwidth</code></a></td>
<td>function</td>
<td><code>vllm_mlx.optimizations.benchmark_memory_bandwidth() -&gt; dict</code></td>
<td>Benchmark actual memory bandwidth achieved.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/optimizations.py#L144-L174">#L144-L174</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.optimizations.detect_hardware function vllm_mlx.optimizations.detect_hardware() -&gt; hardwareinfo detect apple silicon hardware and return info.">
<td><a href="../api/vllm_mlx/optimizations/#contract-vllm_mlx.optimizations.detect_hardware"><code>vllm_mlx.optimizations.detect_hardware</code></a></td>
<td>function</td>
<td><code>vllm_mlx.optimizations.detect_hardware() -&gt; HardwareInfo</code></td>
<td>Detect Apple Silicon hardware and return info.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/optimizations.py#L97-L141">#L97-L141</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.optimizations.get_optimization_status function vllm_mlx.optimizations.get_optimization_status() -&gt; dict get current hardware and mlx status.">
<td><a href="../api/vllm_mlx/optimizations/#contract-vllm_mlx.optimizations.get_optimization_status"><code>vllm_mlx.optimizations.get_optimization_status</code></a></td>
<td>function</td>
<td><code>vllm_mlx.optimizations.get_optimization_status() -&gt; dict</code></td>
<td>Get current hardware and MLX status.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/optimizations.py#L177-L209">#L177-L209</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.optimizations.get_system_memory_gb function vllm_mlx.optimizations.get_system_memory_gb() -&gt; float get actual system memory in gb.">
<td><a href="../api/vllm_mlx/optimizations/#contract-vllm_mlx.optimizations.get_system_memory_gb"><code>vllm_mlx.optimizations.get_system_memory_gb</code></a></td>
<td>function</td>
<td><code>vllm_mlx.optimizations.get_system_memory_gb() -&gt; float</code></td>
<td>Get actual system memory in GB.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/optimizations.py#L68-L94">#L68-L94</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="class" data-symbol-search="vllm_mlx.optimizations.hardwareinfo class vllm_mlx.optimizations.hardwareinfo(chip_name: str, total_memory_gb: float, memory_bandwidth_gbs: float, gpu_cores: int) hardware information for apple silicon.">
<td><a href="../api/vllm_mlx/optimizations/#contract-vllm_mlx.optimizations.HardwareInfo"><code>vllm_mlx.optimizations.HardwareInfo</code></a></td>
<td>class</td>
<td><code>vllm_mlx.optimizations.HardwareInfo(chip_name: str, total_memory_gb: float, memory_bandwidth_gbs: float, gpu_cores: int)</code></td>
<td>Hardware information for Apple Silicon.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/optimizations.py#L34-L40">#L34-L40</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="class" data-symbol-search="vllm_mlx.output_collector.requestoutputcollector class vllm_mlx.output_collector.requestoutputcollector(aggregate: bool = true) per-request output collector with smart buffering.">
<td><a href="../api/vllm_mlx/output_collector/#contract-vllm_mlx.output_collector.RequestOutputCollector"><code>vllm_mlx.output_collector.RequestOutputCollector</code></a></td>
<td>class</td>
<td><code>vllm_mlx.output_collector.RequestOutputCollector(aggregate: bool = True)</code></td>
<td>Per-request output collector with smart buffering.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/output_collector.py#L17-L170">#L17-L170</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.output_collector.requestoutputcollector.__init__ method vllm_mlx.output_collector.requestoutputcollector.__init__(aggregate: bool = true) -&gt; not annotated initialize the collector.">
<td><a href="../api/vllm_mlx/output_collector/#contract-vllm_mlx.output_collector.RequestOutputCollector.__init__"><code>vllm_mlx.output_collector.RequestOutputCollector.__init__</code></a></td>
<td>method</td>
<td><code>vllm_mlx.output_collector.RequestOutputCollector.__init__(aggregate: bool = True) -&gt; not annotated</code></td>
<td>Initialize the collector.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/output_collector.py#L42-L53">#L42-L53</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.output_collector.requestoutputcollector._merge_outputs method vllm_mlx.output_collector.requestoutputcollector._merge_outputs(existing: requestoutput, new: requestoutput) -&gt; requestoutput merge two outputs when producer gets ahead of consumer.">
<td><a href="../api/vllm_mlx/output_collector/#contract-vllm_mlx.output_collector.RequestOutputCollector._merge_outputs"><code>vllm_mlx.output_collector.RequestOutputCollector._merge_outputs</code></a></td>
<td>method</td>
<td><code>vllm_mlx.output_collector.RequestOutputCollector._merge_outputs(existing: RequestOutput, new: RequestOutput) -&gt; RequestOutput</code></td>
<td>Merge two outputs when producer gets ahead of consumer.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/output_collector.py#L120-L152">#L120-L152</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.output_collector.requestoutputcollector.clear method vllm_mlx.output_collector.requestoutputcollector.clear() -&gt; none clear any pending output.">
<td><a href="../api/vllm_mlx/output_collector/#contract-vllm_mlx.output_collector.RequestOutputCollector.clear"><code>vllm_mlx.output_collector.RequestOutputCollector.clear</code></a></td>
<td>method</td>
<td><code>vllm_mlx.output_collector.RequestOutputCollector.clear() -&gt; None</code></td>
<td>Clear any pending output.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/output_collector.py#L154-L161">#L154-L161</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.output_collector.requestoutputcollector.get method async vllm_mlx.output_collector.requestoutputcollector.get() -&gt; requestoutput get output, blocking only if none available.">
<td><a href="../api/vllm_mlx/output_collector/#contract-vllm_mlx.output_collector.RequestOutputCollector.get"><code>vllm_mlx.output_collector.RequestOutputCollector.get</code></a></td>
<td>method</td>
<td><code>async vllm_mlx.output_collector.RequestOutputCollector.get() -&gt; RequestOutput</code></td>
<td>Get output, blocking only if none available.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/output_collector.py#L91-L118">#L91-L118</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.output_collector.requestoutputcollector.get_nowait method vllm_mlx.output_collector.requestoutputcollector.get_nowait() -&gt; optional[requestoutput] get output without blocking.">
<td><a href="../api/vllm_mlx/output_collector/#contract-vllm_mlx.output_collector.RequestOutputCollector.get_nowait"><code>vllm_mlx.output_collector.RequestOutputCollector.get_nowait</code></a></td>
<td>method</td>
<td><code>vllm_mlx.output_collector.RequestOutputCollector.get_nowait() -&gt; Optional[RequestOutput]</code></td>
<td>Get output without blocking.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/output_collector.py#L75-L89">#L75-L89</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.output_collector.requestoutputcollector.has_waiting_consumers method vllm_mlx.output_collector.requestoutputcollector.has_waiting_consumers() -&gt; bool check if any collector has waiting consumers.">
<td><a href="../api/vllm_mlx/output_collector/#contract-vllm_mlx.output_collector.RequestOutputCollector.has_waiting_consumers"><code>vllm_mlx.output_collector.RequestOutputCollector.has_waiting_consumers</code></a></td>
<td>method</td>
<td><code>vllm_mlx.output_collector.RequestOutputCollector.has_waiting_consumers() -&gt; bool</code></td>
<td>Check if any collector has waiting consumers.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/output_collector.py#L164-L170">#L164-L170</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.output_collector.requestoutputcollector.put method vllm_mlx.output_collector.requestoutputcollector.put(output: requestoutput) -&gt; none put an output into the collector (non-blocking).">
<td><a href="../api/vllm_mlx/output_collector/#contract-vllm_mlx.output_collector.RequestOutputCollector.put"><code>vllm_mlx.output_collector.RequestOutputCollector.put</code></a></td>
<td>method</td>
<td><code>vllm_mlx.output_collector.RequestOutputCollector.put(output: RequestOutput) -&gt; None</code></td>
<td>Put an output into the collector (non-blocking).</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/output_collector.py#L55-L73">#L55-L73</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="class" data-symbol-search="vllm_mlx.output_collector.requeststreamstate class vllm_mlx.output_collector.requeststreamstate(stream_interval: int = 1, sent_tokens: int = 0) tracks streaming state for a request.">
<td><a href="../api/vllm_mlx/output_collector/#contract-vllm_mlx.output_collector.RequestStreamState"><code>vllm_mlx.output_collector.RequestStreamState</code></a></td>
<td>class</td>
<td><code>vllm_mlx.output_collector.RequestStreamState(stream_interval: int = 1, sent_tokens: int = 0)</code></td>
<td>Tracks streaming state for a request.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/output_collector.py#L174-L212">#L174-L212</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.output_collector.requeststreamstate.mark_sent method vllm_mlx.output_collector.requeststreamstate.mark_sent(total_tokens: int) -&gt; none update state after sending output.">
<td><a href="../api/vllm_mlx/output_collector/#contract-vllm_mlx.output_collector.RequestStreamState.mark_sent"><code>vllm_mlx.output_collector.RequestStreamState.mark_sent</code></a></td>
<td>method</td>
<td><code>vllm_mlx.output_collector.RequestStreamState.mark_sent(total_tokens: int) -&gt; None</code></td>
<td>Update state after sending output.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/output_collector.py#L205-L212">#L205-L212</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.output_collector.requeststreamstate.should_send method vllm_mlx.output_collector.requeststreamstate.should_send(total_tokens: int, finished: bool) -&gt; bool determine if output should be sent based on stream_interval.">
<td><a href="../api/vllm_mlx/output_collector/#contract-vllm_mlx.output_collector.RequestStreamState.should_send"><code>vllm_mlx.output_collector.RequestStreamState.should_send</code></a></td>
<td>method</td>
<td><code>vllm_mlx.output_collector.RequestStreamState.should_send(total_tokens: int, finished: bool) -&gt; bool</code></td>
<td>Determine if output should be sent based on stream_interval.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/output_collector.py#L185-L203">#L185-L203</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="class" data-symbol-search="vllm_mlx.paged_cache.blockhashtoblockmap class vllm_mlx.paged_cache.blockhashtoblockmap() cache mapping block hashes to blocks for prefix caching.">
<td><a href="../api/vllm_mlx/paged_cache/#contract-vllm_mlx.paged_cache.BlockHashToBlockMap"><code>vllm_mlx.paged_cache.BlockHashToBlockMap</code></a></td>
<td>class</td>
<td><code>vllm_mlx.paged_cache.BlockHashToBlockMap()</code></td>
<td>Cache mapping block hashes to blocks for prefix caching.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/paged_cache.py#L345-L407">#L345-L407</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.paged_cache.blockhashtoblockmap.__init__ method vllm_mlx.paged_cache.blockhashtoblockmap.__init__() -&gt; none method `blockhashtoblockmap.__init__` updates `self._cache`.">
<td><a href="../api/vllm_mlx/paged_cache/#contract-vllm_mlx.paged_cache.BlockHashToBlockMap.__init__"><code>vllm_mlx.paged_cache.BlockHashToBlockMap.__init__</code></a></td>
<td>method</td>
<td><code>vllm_mlx.paged_cache.BlockHashToBlockMap.__init__() -&gt; None</code></td>
<td>Method `BlockHashToBlockMap.__init__` updates `self._cache`.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/paged_cache.py#L353-L354">#L353-L354</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.paged_cache.blockhashtoblockmap.__len__ method vllm_mlx.paged_cache.blockhashtoblockmap.__len__() -&gt; int method `blockhashtoblockmap.__len__` calls `len`; returns `len(self._cache)`.">
<td><a href="../api/vllm_mlx/paged_cache/#contract-vllm_mlx.paged_cache.BlockHashToBlockMap.__len__"><code>vllm_mlx.paged_cache.BlockHashToBlockMap.__len__</code></a></td>
<td>method</td>
<td><code>vllm_mlx.paged_cache.BlockHashToBlockMap.__len__() -&gt; int</code></td>
<td>Method `BlockHashToBlockMap.__len__` calls `len`; returns `len(self._cache)`.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/paged_cache.py#L401-L402">#L401-L402</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.paged_cache.blockhashtoblockmap.clear method vllm_mlx.paged_cache.blockhashtoblockmap.clear() -&gt; none remove every block-hash mapping without mutating the blocks.">
<td><a href="../api/vllm_mlx/paged_cache/#contract-vllm_mlx.paged_cache.BlockHashToBlockMap.clear"><code>vllm_mlx.paged_cache.BlockHashToBlockMap.clear</code></a></td>
<td>method</td>
<td><code>vllm_mlx.paged_cache.BlockHashToBlockMap.clear() -&gt; None</code></td>
<td>Remove every block-hash mapping without mutating the blocks.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/paged_cache.py#L404-L407">#L404-L407</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.paged_cache.blockhashtoblockmap.get_block method vllm_mlx.paged_cache.blockhashtoblockmap.get_block(block_hash: blockhash) -&gt; optional[cacheblock] get any block with the given hash.">
<td><a href="../api/vllm_mlx/paged_cache/#contract-vllm_mlx.paged_cache.BlockHashToBlockMap.get_block"><code>vllm_mlx.paged_cache.BlockHashToBlockMap.get_block</code></a></td>
<td>method</td>
<td><code>vllm_mlx.paged_cache.BlockHashToBlockMap.get_block(block_hash: BlockHash) -&gt; Optional[CacheBlock]</code></td>
<td>Get any block with the given hash.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/paged_cache.py#L356-L365">#L356-L365</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.paged_cache.blockhashtoblockmap.insert method vllm_mlx.paged_cache.blockhashtoblockmap.insert(block_hash: blockhash, block: cacheblock) -&gt; none insert a block into the cache.">
<td><a href="../api/vllm_mlx/paged_cache/#contract-vllm_mlx.paged_cache.BlockHashToBlockMap.insert"><code>vllm_mlx.paged_cache.BlockHashToBlockMap.insert</code></a></td>
<td>method</td>
<td><code>vllm_mlx.paged_cache.BlockHashToBlockMap.insert(block_hash: BlockHash, block: CacheBlock) -&gt; None</code></td>
<td>Insert a block into the cache.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/paged_cache.py#L367-L378">#L367-L378</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.paged_cache.blockhashtoblockmap.pop method vllm_mlx.paged_cache.blockhashtoblockmap.pop(block_hash: blockhash, block_id: int) -&gt; optional[cacheblock] remove and return a specific block from the cache.">
<td><a href="../api/vllm_mlx/paged_cache/#contract-vllm_mlx.paged_cache.BlockHashToBlockMap.pop"><code>vllm_mlx.paged_cache.BlockHashToBlockMap.pop</code></a></td>
<td>method</td>
<td><code>vllm_mlx.paged_cache.BlockHashToBlockMap.pop(block_hash: BlockHash, block_id: int) -&gt; Optional[CacheBlock]</code></td>
<td>Remove and return a specific block from the cache.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/paged_cache.py#L380-L399">#L380-L399</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="class" data-symbol-search="vllm_mlx.paged_cache.blocktable class vllm_mlx.paged_cache.blocktable(request_id: str, block_ids: list[int] = field(default_factory=list), num_tokens: int = 0) per-request block table mapping logical to physical blocks.">
<td><a href="../api/vllm_mlx/paged_cache/#contract-vllm_mlx.paged_cache.BlockTable"><code>vllm_mlx.paged_cache.BlockTable</code></a></td>
<td>class</td>
<td><code>vllm_mlx.paged_cache.BlockTable(request_id: str, block_ids: List[int] = field(default_factory=list), num_tokens: int = 0)</code></td>
<td>Per-request block table mapping logical to physical blocks.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/paged_cache.py#L416-L447">#L416-L447</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.paged_cache.blocktable.__len__ method vllm_mlx.paged_cache.blocktable.__len__() -&gt; int method `blocktable.__len__` calls `len`; returns `len(self.block_ids)`.">
<td><a href="../api/vllm_mlx/paged_cache/#contract-vllm_mlx.paged_cache.BlockTable.__len__"><code>vllm_mlx.paged_cache.BlockTable.__len__</code></a></td>
<td>method</td>
<td><code>vllm_mlx.paged_cache.BlockTable.__len__() -&gt; int</code></td>
<td>Method `BlockTable.__len__` calls `len`; returns `len(self.block_ids)`.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/paged_cache.py#L438-L439">#L438-L439</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.paged_cache.blocktable.add_block method vllm_mlx.paged_cache.blocktable.add_block(block_id: int, num_tokens: int) -&gt; none add a block to the table.">
<td><a href="../api/vllm_mlx/paged_cache/#contract-vllm_mlx.paged_cache.BlockTable.add_block"><code>vllm_mlx.paged_cache.BlockTable.add_block</code></a></td>
<td>method</td>
<td><code>vllm_mlx.paged_cache.BlockTable.add_block(block_id: int, num_tokens: int) -&gt; None</code></td>
<td>Add a block to the table.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/paged_cache.py#L433-L436">#L433-L436</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.paged_cache.blocktable.copy method vllm_mlx.paged_cache.blocktable.copy(new_request_id: str) -&gt; &#x27;blocktable&#x27; create a copy with new request id.">
<td><a href="../api/vllm_mlx/paged_cache/#contract-vllm_mlx.paged_cache.BlockTable.copy"><code>vllm_mlx.paged_cache.BlockTable.copy</code></a></td>
<td>method</td>
<td><code>vllm_mlx.paged_cache.BlockTable.copy(new_request_id: str) -&gt; &#x27;BlockTable&#x27;</code></td>
<td>Create a copy with new request ID.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/paged_cache.py#L441-L447">#L441-L447</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="class" data-symbol-search="vllm_mlx.paged_cache.cacheblock class vllm_mlx.paged_cache.cacheblock(block_id: int, ref_count: int = 0, block_hash: optional[blockhash] = none, prev_free_block: optional[&#x27;cacheblock&#x27;] = none, next_free_block: optional[&#x27;cacheblock&#x27;] = none, is_null: bool = false, cache_data: optional[list[tuple[any, any]]] = none, token_count: int = 0, hash_value: optional[str] = none, last_access: float = field(default_factory=time.time)) kv cache block metadata following vllm&#x27;s design.">
<td><a href="../api/vllm_mlx/paged_cache/#contract-vllm_mlx.paged_cache.CacheBlock"><code>vllm_mlx.paged_cache.CacheBlock</code></a></td>
<td>class</td>
<td><code>vllm_mlx.paged_cache.CacheBlock(block_id: int, ref_count: int = 0, block_hash: Optional[BlockHash] = None, prev_free_block: Optional[&#x27;CacheBlock&#x27;] = None, next_free_block: Optional[&#x27;CacheBlock&#x27;] = None, is_null: bool = False, cache_data: Optional[List[Tuple[Any, Any]]] = None, token_count: int = 0, hash_value: Optional[str] = None, last_access: float = field(default_factory=time.time))</code></td>
<td>KV cache block metadata following vLLM&#x27;s design.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/paged_cache.py#L84-L146">#L84-L146</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.paged_cache.cacheblock.__repr__ method vllm_mlx.paged_cache.cacheblock.__repr__() -&gt; str method `cacheblock.__repr__` returns `f&#x27;cacheblock(id={self.block_id}, ref={self.ref_count}, tokens={self.token_count}, prev={prev_id}, next={next_id})&#x27;`.">
<td><a href="../api/vllm_mlx/paged_cache/#contract-vllm_mlx.paged_cache.CacheBlock.__repr__"><code>vllm_mlx.paged_cache.CacheBlock.__repr__</code></a></td>
<td>method</td>
<td><code>vllm_mlx.paged_cache.CacheBlock.__repr__() -&gt; str</code></td>
<td>Method `CacheBlock.__repr__` returns `f&#x27;CacheBlock(id={self.block_id}, ref={self.ref_count}, tokens={self.token_count}, prev={prev_id}, next={next_id})&#x27;`.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/paged_cache.py#L140-L146">#L140-L146</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.paged_cache.cacheblock.is_full method vllm_mlx.paged_cache.cacheblock.is_full(block_size: int) -&gt; bool check if block is at capacity.">
<td><a href="../api/vllm_mlx/paged_cache/#contract-vllm_mlx.paged_cache.CacheBlock.is_full"><code>vllm_mlx.paged_cache.CacheBlock.is_full</code></a></td>
<td>method</td>
<td><code>vllm_mlx.paged_cache.CacheBlock.is_full(block_size: int) -&gt; bool</code></td>
<td>Check if block is at capacity.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/paged_cache.py#L123-L125">#L123-L125</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.paged_cache.cacheblock.is_shared method vllm_mlx.paged_cache.cacheblock.is_shared() -&gt; bool check if block is shared (ref_count &gt; 1).">
<td><a href="../api/vllm_mlx/paged_cache/#contract-vllm_mlx.paged_cache.CacheBlock.is_shared"><code>vllm_mlx.paged_cache.CacheBlock.is_shared</code></a></td>
<td>method</td>
<td><code>vllm_mlx.paged_cache.CacheBlock.is_shared() -&gt; bool</code></td>
<td>Check if block is shared (ref_count &gt; 1).</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/paged_cache.py#L127-L129">#L127-L129</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.paged_cache.cacheblock.reset_hash method vllm_mlx.paged_cache.cacheblock.reset_hash() -&gt; none reset block hash when evicted from cache.">
<td><a href="../api/vllm_mlx/paged_cache/#contract-vllm_mlx.paged_cache.CacheBlock.reset_hash"><code>vllm_mlx.paged_cache.CacheBlock.reset_hash</code></a></td>
<td>method</td>
<td><code>vllm_mlx.paged_cache.CacheBlock.reset_hash() -&gt; None</code></td>
<td>Reset block hash when evicted from cache.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/paged_cache.py#L131-L134">#L131-L134</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.paged_cache.cacheblock.touch method vllm_mlx.paged_cache.cacheblock.touch() -&gt; none update last access time.">
<td><a href="../api/vllm_mlx/paged_cache/#contract-vllm_mlx.paged_cache.CacheBlock.touch"><code>vllm_mlx.paged_cache.CacheBlock.touch</code></a></td>
<td>method</td>
<td><code>vllm_mlx.paged_cache.CacheBlock.touch() -&gt; None</code></td>
<td>Update last access time.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/paged_cache.py#L136-L138">#L136-L138</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="class" data-symbol-search="vllm_mlx.paged_cache.cachestats class vllm_mlx.paged_cache.cachestats(total_blocks: int = 0, allocated_blocks: int = 0, free_blocks: int = 0, shared_blocks: int = 0, total_tokens_cached: int = 0, cache_hits: int = 0, cache_misses: int = 0, cow_copies: int = 0, evictions: int = 0) statistics for cache monitoring.">
<td><a href="../api/vllm_mlx/paged_cache/#contract-vllm_mlx.paged_cache.CacheStats"><code>vllm_mlx.paged_cache.CacheStats</code></a></td>
<td>class</td>
<td><code>vllm_mlx.paged_cache.CacheStats(total_blocks: int = 0, allocated_blocks: int = 0, free_blocks: int = 0, shared_blocks: int = 0, total_tokens_cached: int = 0, cache_hits: int = 0, cache_misses: int = 0, cow_copies: int = 0, evictions: int = 0)</code></td>
<td>Statistics for cache monitoring.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/paged_cache.py#L456-L467">#L456-L467</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.paged_cache.compute_block_hash function vllm_mlx.paged_cache.compute_block_hash(parent_hash: optional[blockhash], token_ids: list[int], extra_keys: optional[tuple[any, ...]] = none) -&gt; blockhash compute hash for a block based on its content and parent block.">
<td><a href="../api/vllm_mlx/paged_cache/#contract-vllm_mlx.paged_cache.compute_block_hash"><code>vllm_mlx.paged_cache.compute_block_hash</code></a></td>
<td>function</td>
<td><code>vllm_mlx.paged_cache.compute_block_hash(parent_hash: Optional[BlockHash], token_ids: List[int], extra_keys: Optional[Tuple[Any, ...]] = None) -&gt; BlockHash</code></td>
<td>Compute hash for a block based on its content and parent block.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/paged_cache.py#L40-L75">#L40-L75</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="class" data-symbol-search="vllm_mlx.paged_cache.freekvcacheblockqueue class vllm_mlx.paged_cache.freekvcacheblockqueue(blocks: list[cacheblock]) doubly linked list of free blocks following vllm&#x27;s design.">
<td><a href="../api/vllm_mlx/paged_cache/#contract-vllm_mlx.paged_cache.FreeKVCacheBlockQueue"><code>vllm_mlx.paged_cache.FreeKVCacheBlockQueue</code></a></td>
<td>class</td>
<td><code>vllm_mlx.paged_cache.FreeKVCacheBlockQueue(blocks: List[CacheBlock])</code></td>
<td>Doubly linked list of free blocks following vLLM&#x27;s design.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/paged_cache.py#L158-L337">#L158-L337</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.paged_cache.freekvcacheblockqueue.__init__ method vllm_mlx.paged_cache.freekvcacheblockqueue.__init__(blocks: list[cacheblock]) -&gt; none initialize queue with all blocks as free.">
<td><a href="../api/vllm_mlx/paged_cache/#contract-vllm_mlx.paged_cache.FreeKVCacheBlockQueue.__init__"><code>vllm_mlx.paged_cache.FreeKVCacheBlockQueue.__init__</code></a></td>
<td>method</td>
<td><code>vllm_mlx.paged_cache.FreeKVCacheBlockQueue.__init__(blocks: List[CacheBlock]) -&gt; None</code></td>
<td>Initialize queue with all blocks as free.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/paged_cache.py#L174-L201">#L174-L201</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.paged_cache.freekvcacheblockqueue.append method vllm_mlx.paged_cache.freekvcacheblockqueue.append(block: cacheblock) -&gt; none append a block to the end (mru position).">
<td><a href="../api/vllm_mlx/paged_cache/#contract-vllm_mlx.paged_cache.FreeKVCacheBlockQueue.append"><code>vllm_mlx.paged_cache.FreeKVCacheBlockQueue.append</code></a></td>
<td>method</td>
<td><code>vllm_mlx.paged_cache.FreeKVCacheBlockQueue.append(block: CacheBlock) -&gt; None</code></td>
<td>Append a block to the end (MRU position).</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/paged_cache.py#L290-L305">#L290-L305</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.paged_cache.freekvcacheblockqueue.append_n method vllm_mlx.paged_cache.freekvcacheblockqueue.append_n(blocks: list[cacheblock]) -&gt; none append multiple blocks to the end.">
<td><a href="../api/vllm_mlx/paged_cache/#contract-vllm_mlx.paged_cache.FreeKVCacheBlockQueue.append_n"><code>vllm_mlx.paged_cache.FreeKVCacheBlockQueue.append_n</code></a></td>
<td>method</td>
<td><code>vllm_mlx.paged_cache.FreeKVCacheBlockQueue.append_n(blocks: List[CacheBlock]) -&gt; None</code></td>
<td>Append multiple blocks to the end.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/paged_cache.py#L307-L328">#L307-L328</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.paged_cache.freekvcacheblockqueue.get_all_free_blocks method vllm_mlx.paged_cache.freekvcacheblockqueue.get_all_free_blocks() -&gt; list[cacheblock] get all free blocks (for testing).">
<td><a href="../api/vllm_mlx/paged_cache/#contract-vllm_mlx.paged_cache.FreeKVCacheBlockQueue.get_all_free_blocks"><code>vllm_mlx.paged_cache.FreeKVCacheBlockQueue.get_all_free_blocks</code></a></td>
<td>method</td>
<td><code>vllm_mlx.paged_cache.FreeKVCacheBlockQueue.get_all_free_blocks() -&gt; List[CacheBlock]</code></td>
<td>Get all free blocks (for testing).</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/paged_cache.py#L330-L337">#L330-L337</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.paged_cache.freekvcacheblockqueue.popleft method vllm_mlx.paged_cache.freekvcacheblockqueue.popleft() -&gt; cacheblock pop and return the first (lru) free block.">
<td><a href="../api/vllm_mlx/paged_cache/#contract-vllm_mlx.paged_cache.FreeKVCacheBlockQueue.popleft"><code>vllm_mlx.paged_cache.FreeKVCacheBlockQueue.popleft</code></a></td>
<td>method</td>
<td><code>vllm_mlx.paged_cache.FreeKVCacheBlockQueue.popleft() -&gt; CacheBlock</code></td>
<td>Pop and return the first (LRU) free block.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/paged_cache.py#L203-L225">#L203-L225</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.paged_cache.freekvcacheblockqueue.popleft_n method vllm_mlx.paged_cache.freekvcacheblockqueue.popleft_n(n: int) -&gt; list[cacheblock] pop n blocks from the front.">
<td><a href="../api/vllm_mlx/paged_cache/#contract-vllm_mlx.paged_cache.FreeKVCacheBlockQueue.popleft_n"><code>vllm_mlx.paged_cache.FreeKVCacheBlockQueue.popleft_n</code></a></td>
<td>method</td>
<td><code>vllm_mlx.paged_cache.FreeKVCacheBlockQueue.popleft_n(n: int) -&gt; List[CacheBlock]</code></td>
<td>Pop n blocks from the front.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/paged_cache.py#L227-L265">#L227-L265</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.paged_cache.freekvcacheblockqueue.remove method vllm_mlx.paged_cache.freekvcacheblockqueue.remove(block: cacheblock) -&gt; none remove a block from the middle of the queue.">
<td><a href="../api/vllm_mlx/paged_cache/#contract-vllm_mlx.paged_cache.FreeKVCacheBlockQueue.remove"><code>vllm_mlx.paged_cache.FreeKVCacheBlockQueue.remove</code></a></td>
<td>method</td>
<td><code>vllm_mlx.paged_cache.FreeKVCacheBlockQueue.remove(block: CacheBlock) -&gt; None</code></td>
<td>Remove a block from the middle of the queue.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/paged_cache.py#L267-L288">#L267-L288</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="class" data-symbol-search="vllm_mlx.paged_cache.pagedcachemanager class vllm_mlx.paged_cache.pagedcachemanager(block_size: int = 64, max_blocks: int = 1000, enable_caching: bool = true) paged kv cache manager following vllm&#x27;s blockpool architecture.">
<td><a href="../api/vllm_mlx/paged_cache/#contract-vllm_mlx.paged_cache.PagedCacheManager"><code>vllm_mlx.paged_cache.PagedCacheManager</code></a></td>
<td>class</td>
<td><code>vllm_mlx.paged_cache.PagedCacheManager(block_size: int = 64, max_blocks: int = 1000, enable_caching: bool = True)</code></td>
<td>Paged KV cache manager following vLLM&#x27;s BlockPool architecture.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/paged_cache.py#L475-L1197">#L475-L1197</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.paged_cache.pagedcachemanager.__init__ method vllm_mlx.paged_cache.pagedcachemanager.__init__(block_size: int = 64, max_blocks: int = 1000, enable_caching: bool = true) -&gt; not annotated method `pagedcachemanager.__init__` updates `self.block_size`, `self.max_blocks`, `self.enable_caching`, `self.blocks`; calls `cacheblock`, `range`, `freekvcacheblockqueue`, `blockhashtoblockmap`.">
<td><a href="../api/vllm_mlx/paged_cache/#contract-vllm_mlx.paged_cache.PagedCacheManager.__init__"><code>vllm_mlx.paged_cache.PagedCacheManager.__init__</code></a></td>
<td>method</td>
<td><code>vllm_mlx.paged_cache.PagedCacheManager.__init__(block_size: int = 64, max_blocks: int = 1000, enable_caching: bool = True) -&gt; not annotated</code></td>
<td>Method `PagedCacheManager.__init__` updates `self.block_size`, `self.max_blocks`, `self.enable_caching`, `self.blocks`; calls `CacheBlock`, `range`, `FreeKVCacheBlockQueue`, `BlockHashToBlockMap`.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/paged_cache.py#L491-L540">#L491-L540</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.paged_cache.pagedcachemanager._cow_copy_block method vllm_mlx.paged_cache.pagedcachemanager._cow_copy_block(source_block: cacheblock) -&gt; optional[cacheblock] create a copy of a block for cow.">
<td><a href="../api/vllm_mlx/paged_cache/#contract-vllm_mlx.paged_cache.PagedCacheManager._cow_copy_block"><code>vllm_mlx.paged_cache.PagedCacheManager._cow_copy_block</code></a></td>
<td>method</td>
<td><code>vllm_mlx.paged_cache.PagedCacheManager._cow_copy_block(source_block: CacheBlock) -&gt; Optional[CacheBlock]</code></td>
<td>Create a copy of a block for COW.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/paged_cache.py#L1031-L1046">#L1031-L1046</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.paged_cache.pagedcachemanager._maybe_evict_cached_block method vllm_mlx.paged_cache.pagedcachemanager._maybe_evict_cached_block(block: cacheblock) -&gt; bool evict a block from the hash cache if present.">
<td><a href="../api/vllm_mlx/paged_cache/#contract-vllm_mlx.paged_cache.PagedCacheManager._maybe_evict_cached_block"><code>vllm_mlx.paged_cache.PagedCacheManager._maybe_evict_cached_block</code></a></td>
<td>method</td>
<td><code>vllm_mlx.paged_cache.PagedCacheManager._maybe_evict_cached_block(block: CacheBlock) -&gt; bool</code></td>
<td>Evict a block from the hash cache if present.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/paged_cache.py#L608-L634">#L608-L634</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.paged_cache.pagedcachemanager.add_block_to_table method vllm_mlx.paged_cache.pagedcachemanager.add_block_to_table(table: blocktable, block: cacheblock, tokens_in_block: int) -&gt; none add a block to a block table.">
<td><a href="../api/vllm_mlx/paged_cache/#contract-vllm_mlx.paged_cache.PagedCacheManager.add_block_to_table"><code>vllm_mlx.paged_cache.PagedCacheManager.add_block_to_table</code></a></td>
<td>method</td>
<td><code>vllm_mlx.paged_cache.PagedCacheManager.add_block_to_table(table: BlockTable, block: CacheBlock, tokens_in_block: int) -&gt; None</code></td>
<td>Add a block to a block table.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/paged_cache.py#L936-L947">#L936-L947</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.paged_cache.pagedcachemanager.allocate_block method vllm_mlx.paged_cache.pagedcachemanager.allocate_block() -&gt; optional[cacheblock] allocate a new cache block.">
<td><a href="../api/vllm_mlx/paged_cache/#contract-vllm_mlx.paged_cache.PagedCacheManager.allocate_block"><code>vllm_mlx.paged_cache.PagedCacheManager.allocate_block</code></a></td>
<td>method</td>
<td><code>vllm_mlx.paged_cache.PagedCacheManager.allocate_block() -&gt; Optional[CacheBlock]</code></td>
<td>Allocate a new cache block.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/paged_cache.py#L546-L571">#L546-L571</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.paged_cache.pagedcachemanager.allocate_blocks_for_tokens method vllm_mlx.paged_cache.pagedcachemanager.allocate_blocks_for_tokens(num_tokens: int) -&gt; list[cacheblock] allocate enough blocks to hold num_tokens.">
<td><a href="../api/vllm_mlx/paged_cache/#contract-vllm_mlx.paged_cache.PagedCacheManager.allocate_blocks_for_tokens"><code>vllm_mlx.paged_cache.PagedCacheManager.allocate_blocks_for_tokens</code></a></td>
<td>method</td>
<td><code>vllm_mlx.paged_cache.PagedCacheManager.allocate_blocks_for_tokens(num_tokens: int) -&gt; List[CacheBlock]</code></td>
<td>Allocate enough blocks to hold num_tokens.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/paged_cache.py#L1052-L1055">#L1052-L1055</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.paged_cache.pagedcachemanager.cache_full_blocks method vllm_mlx.paged_cache.pagedcachemanager.cache_full_blocks(blocks: list[cacheblock], token_ids: list[int], num_cached_blocks: int, num_full_blocks: int) -&gt; none cache full blocks for prefix caching (vllm style).">
<td><a href="../api/vllm_mlx/paged_cache/#contract-vllm_mlx.paged_cache.PagedCacheManager.cache_full_blocks"><code>vllm_mlx.paged_cache.PagedCacheManager.cache_full_blocks</code></a></td>
<td>method</td>
<td><code>vllm_mlx.paged_cache.PagedCacheManager.cache_full_blocks(blocks: List[CacheBlock], token_ids: List[int], num_cached_blocks: int, num_full_blocks: int) -&gt; None</code></td>
<td>Cache full blocks for prefix caching (vLLM style).</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/paged_cache.py#L770-L824">#L770-L824</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.paged_cache.pagedcachemanager.clear method vllm_mlx.paged_cache.pagedcachemanager.clear() -&gt; none clear all cached data.">
<td><a href="../api/vllm_mlx/paged_cache/#contract-vllm_mlx.paged_cache.PagedCacheManager.clear"><code>vllm_mlx.paged_cache.PagedCacheManager.clear</code></a></td>
<td>method</td>
<td><code>vllm_mlx.paged_cache.PagedCacheManager.clear() -&gt; None</code></td>
<td>Clear all cached data.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/paged_cache.py#L1173-L1197">#L1173-L1197</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.paged_cache.pagedcachemanager.compute_block_hash method vllm_mlx.paged_cache.pagedcachemanager.compute_block_hash(tokens: list[int]) -&gt; str compute legacy string hash for a sequence of tokens.">
<td><a href="../api/vllm_mlx/paged_cache/#contract-vllm_mlx.paged_cache.PagedCacheManager.compute_block_hash"><code>vllm_mlx.paged_cache.PagedCacheManager.compute_block_hash</code></a></td>
<td>method</td>
<td><code>vllm_mlx.paged_cache.PagedCacheManager.compute_block_hash(tokens: List[int]) -&gt; str</code></td>
<td>Compute legacy string hash for a sequence of tokens.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/paged_cache.py#L875-L878">#L875-L878</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.paged_cache.pagedcachemanager.create_block_table method vllm_mlx.paged_cache.pagedcachemanager.create_block_table(request_id: str) -&gt; blocktable create a new block table for a request.">
<td><a href="../api/vllm_mlx/paged_cache/#contract-vllm_mlx.paged_cache.PagedCacheManager.create_block_table"><code>vllm_mlx.paged_cache.PagedCacheManager.create_block_table</code></a></td>
<td>method</td>
<td><code>vllm_mlx.paged_cache.PagedCacheManager.create_block_table(request_id: str) -&gt; BlockTable</code></td>
<td>Create a new block table for a request.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/paged_cache.py#L909-L914">#L909-L914</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.paged_cache.pagedcachemanager.decrement_ref method vllm_mlx.paged_cache.pagedcachemanager.decrement_ref(block_id: int) -&gt; bool decrement reference count (alias for free_block).">
<td><a href="../api/vllm_mlx/paged_cache/#contract-vllm_mlx.paged_cache.PagedCacheManager.decrement_ref"><code>vllm_mlx.paged_cache.PagedCacheManager.decrement_ref</code></a></td>
<td>method</td>
<td><code>vllm_mlx.paged_cache.PagedCacheManager.decrement_ref(block_id: int) -&gt; bool</code></td>
<td>Decrement reference count (alias for free_block).</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/paged_cache.py#L741-L743">#L741-L743</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.paged_cache.pagedcachemanager.delete_block_table method vllm_mlx.paged_cache.pagedcachemanager.delete_block_table(request_id: str) -&gt; none delete block table and free associated blocks.">
<td><a href="../api/vllm_mlx/paged_cache/#contract-vllm_mlx.paged_cache.PagedCacheManager.delete_block_table"><code>vllm_mlx.paged_cache.PagedCacheManager.delete_block_table</code></a></td>
<td>method</td>
<td><code>vllm_mlx.paged_cache.PagedCacheManager.delete_block_table(request_id: str) -&gt; None</code></td>
<td>Delete block table and free associated blocks.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/paged_cache.py#L928-L934">#L928-L934</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.paged_cache.pagedcachemanager.evict_lru_blocks method vllm_mlx.paged_cache.pagedcachemanager.evict_lru_blocks(num_blocks: int) -&gt; int evict least recently used blocks.">
<td><a href="../api/vllm_mlx/paged_cache/#contract-vllm_mlx.paged_cache.PagedCacheManager.evict_lru_blocks"><code>vllm_mlx.paged_cache.PagedCacheManager.evict_lru_blocks</code></a></td>
<td>method</td>
<td><code>vllm_mlx.paged_cache.PagedCacheManager.evict_lru_blocks(num_blocks: int) -&gt; int</code></td>
<td>Evict least recently used blocks.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/paged_cache.py#L1061-L1085">#L1061-L1085</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.paged_cache.pagedcachemanager.find_cached_block method vllm_mlx.paged_cache.pagedcachemanager.find_cached_block(tokens: list[int]) -&gt; optional[cacheblock] find a cached block matching the given tokens (legacy method).">
<td><a href="../api/vllm_mlx/paged_cache/#contract-vllm_mlx.paged_cache.PagedCacheManager.find_cached_block"><code>vllm_mlx.paged_cache.PagedCacheManager.find_cached_block</code></a></td>
<td>method</td>
<td><code>vllm_mlx.paged_cache.PagedCacheManager.find_cached_block(tokens: List[int]) -&gt; Optional[CacheBlock]</code></td>
<td>Find a cached block matching the given tokens (legacy method).</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/paged_cache.py#L880-L896">#L880-L896</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.paged_cache.pagedcachemanager.find_shared_prefix method vllm_mlx.paged_cache.pagedcachemanager.find_shared_prefix(tokens: list[int]) -&gt; tuple[list[int], list[int]] find shared prefix blocks for a token sequence.">
<td><a href="../api/vllm_mlx/paged_cache/#contract-vllm_mlx.paged_cache.PagedCacheManager.find_shared_prefix"><code>vllm_mlx.paged_cache.PagedCacheManager.find_shared_prefix</code></a></td>
<td>method</td>
<td><code>vllm_mlx.paged_cache.PagedCacheManager.find_shared_prefix(tokens: List[int]) -&gt; Tuple[List[int], List[int]]</code></td>
<td>Find shared prefix blocks for a token sequence.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/paged_cache.py#L953-L974">#L953-L974</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.paged_cache.pagedcachemanager.fork_block_table method vllm_mlx.paged_cache.pagedcachemanager.fork_block_table(source_table: blocktable, new_request_id: str) -&gt; blocktable fork a block table for a new request (cow).">
<td><a href="../api/vllm_mlx/paged_cache/#contract-vllm_mlx.paged_cache.PagedCacheManager.fork_block_table"><code>vllm_mlx.paged_cache.PagedCacheManager.fork_block_table</code></a></td>
<td>method</td>
<td><code>vllm_mlx.paged_cache.PagedCacheManager.fork_block_table(source_table: BlockTable, new_request_id: str) -&gt; BlockTable</code></td>
<td>Fork a block table for a new request (COW).</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/paged_cache.py#L976-L997">#L976-L997</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.paged_cache.pagedcachemanager.free_block method vllm_mlx.paged_cache.pagedcachemanager.free_block(block_id: int) -&gt; bool free a cache block (decrements ref_count, frees if 0).">
<td><a href="../api/vllm_mlx/paged_cache/#contract-vllm_mlx.paged_cache.PagedCacheManager.free_block"><code>vllm_mlx.paged_cache.PagedCacheManager.free_block</code></a></td>
<td>method</td>
<td><code>vllm_mlx.paged_cache.PagedCacheManager.free_block(block_id: int) -&gt; bool</code></td>
<td>Free a cache block (decrements ref_count, frees if 0).</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/paged_cache.py#L636-L667">#L636-L667</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.paged_cache.pagedcachemanager.free_blocks method vllm_mlx.paged_cache.pagedcachemanager.free_blocks(blocks: iterable[cacheblock]) -&gt; none free multiple blocks (vllm style).">
<td><a href="../api/vllm_mlx/paged_cache/#contract-vllm_mlx.paged_cache.PagedCacheManager.free_blocks"><code>vllm_mlx.paged_cache.PagedCacheManager.free_blocks</code></a></td>
<td>method</td>
<td><code>vllm_mlx.paged_cache.PagedCacheManager.free_blocks(blocks: Iterable[CacheBlock]) -&gt; None</code></td>
<td>Free multiple blocks (vLLM style).</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/paged_cache.py#L669-L696">#L669-L696</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.paged_cache.pagedcachemanager.free_blocks method vllm_mlx.paged_cache.pagedcachemanager.free_blocks() -&gt; int number of free blocks available.">
<td><a href="../api/vllm_mlx/paged_cache/#contract-vllm_mlx.paged_cache.PagedCacheManager.free_blocks"><code>vllm_mlx.paged_cache.PagedCacheManager.free_blocks</code></a></td>
<td>method</td>
<td><code>vllm_mlx.paged_cache.PagedCacheManager.free_blocks() -&gt; int</code></td>
<td>Number of free blocks available.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/paged_cache.py#L1103-L1105">#L1103-L1105</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.paged_cache.pagedcachemanager.get_block_table method vllm_mlx.paged_cache.pagedcachemanager.get_block_table(request_id: str) -&gt; optional[blocktable] get block table for a request.">
<td><a href="../api/vllm_mlx/paged_cache/#contract-vllm_mlx.paged_cache.PagedCacheManager.get_block_table"><code>vllm_mlx.paged_cache.PagedCacheManager.get_block_table</code></a></td>
<td>method</td>
<td><code>vllm_mlx.paged_cache.PagedCacheManager.get_block_table(request_id: str) -&gt; Optional[BlockTable]</code></td>
<td>Get block table for a request.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/paged_cache.py#L916-L919">#L916-L919</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.paged_cache.pagedcachemanager.get_blocks_for_generation method vllm_mlx.paged_cache.pagedcachemanager.get_blocks_for_generation(table: blocktable) -&gt; tuple[list[cacheblock], bool] get blocks for generation, applying cow if needed.">
<td><a href="../api/vllm_mlx/paged_cache/#contract-vllm_mlx.paged_cache.PagedCacheManager.get_blocks_for_generation"><code>vllm_mlx.paged_cache.PagedCacheManager.get_blocks_for_generation</code></a></td>
<td>method</td>
<td><code>vllm_mlx.paged_cache.PagedCacheManager.get_blocks_for_generation(table: BlockTable) -&gt; Tuple[List[CacheBlock], bool]</code></td>
<td>Get blocks for generation, applying COW if needed.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/paged_cache.py#L999-L1029">#L999-L1029</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.paged_cache.pagedcachemanager.get_cached_block method vllm_mlx.paged_cache.pagedcachemanager.get_cached_block(block_hash: blockhash) -&gt; optional[cacheblock] get a cached block by its hash (vllm style).">
<td><a href="../api/vllm_mlx/paged_cache/#contract-vllm_mlx.paged_cache.PagedCacheManager.get_cached_block"><code>vllm_mlx.paged_cache.PagedCacheManager.get_cached_block</code></a></td>
<td>method</td>
<td><code>vllm_mlx.paged_cache.PagedCacheManager.get_cached_block(block_hash: BlockHash) -&gt; Optional[CacheBlock]</code></td>
<td>Get a cached block by its hash (vLLM style).</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/paged_cache.py#L749-L768">#L749-L768</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.paged_cache.pagedcachemanager.get_computed_blocks method vllm_mlx.paged_cache.pagedcachemanager.get_computed_blocks(token_ids: list[int]) -&gt; tuple[list[cacheblock], int] find cached blocks for a token prefix (vllm style).">
<td><a href="../api/vllm_mlx/paged_cache/#contract-vllm_mlx.paged_cache.PagedCacheManager.get_computed_blocks"><code>vllm_mlx.paged_cache.PagedCacheManager.get_computed_blocks</code></a></td>
<td>method</td>
<td><code>vllm_mlx.paged_cache.PagedCacheManager.get_computed_blocks(token_ids: List[int]) -&gt; Tuple[List[CacheBlock], int]</code></td>
<td>Find cached blocks for a token prefix (vLLM style).</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/paged_cache.py#L826-L868">#L826-L868</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.paged_cache.pagedcachemanager.get_memory_usage method vllm_mlx.paged_cache.pagedcachemanager.get_memory_usage() -&gt; dict[str, any] get memory usage information.">
<td><a href="../api/vllm_mlx/paged_cache/#contract-vllm_mlx.paged_cache.PagedCacheManager.get_memory_usage"><code>vllm_mlx.paged_cache.PagedCacheManager.get_memory_usage</code></a></td>
<td>method</td>
<td><code>vllm_mlx.paged_cache.PagedCacheManager.get_memory_usage() -&gt; Dict[str, Any]</code></td>
<td>Get memory usage information.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/paged_cache.py#L1124-L1141">#L1124-L1141</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.paged_cache.pagedcachemanager.get_new_blocks method vllm_mlx.paged_cache.pagedcachemanager.get_new_blocks(num_blocks: int) -&gt; list[cacheblock] allocate multiple blocks at once (vllm style).">
<td><a href="../api/vllm_mlx/paged_cache/#contract-vllm_mlx.paged_cache.PagedCacheManager.get_new_blocks"><code>vllm_mlx.paged_cache.PagedCacheManager.get_new_blocks</code></a></td>
<td>method</td>
<td><code>vllm_mlx.paged_cache.PagedCacheManager.get_new_blocks(num_blocks: int) -&gt; List[CacheBlock]</code></td>
<td>Allocate multiple blocks at once (vLLM style).</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/paged_cache.py#L573-L606">#L573-L606</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.paged_cache.pagedcachemanager.get_or_create_block_table method vllm_mlx.paged_cache.pagedcachemanager.get_or_create_block_table(request_id: str) -&gt; blocktable get or create block table for a request.">
<td><a href="../api/vllm_mlx/paged_cache/#contract-vllm_mlx.paged_cache.PagedCacheManager.get_or_create_block_table"><code>vllm_mlx.paged_cache.PagedCacheManager.get_or_create_block_table</code></a></td>
<td>method</td>
<td><code>vllm_mlx.paged_cache.PagedCacheManager.get_or_create_block_table(request_id: str) -&gt; BlockTable</code></td>
<td>Get or create block table for a request.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/paged_cache.py#L921-L926">#L921-L926</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.paged_cache.pagedcachemanager.get_stats method vllm_mlx.paged_cache.pagedcachemanager.get_stats() -&gt; cachestats get current cache statistics.">
<td><a href="../api/vllm_mlx/paged_cache/#contract-vllm_mlx.paged_cache.PagedCacheManager.get_stats"><code>vllm_mlx.paged_cache.PagedCacheManager.get_stats</code></a></td>
<td>method</td>
<td><code>vllm_mlx.paged_cache.PagedCacheManager.get_stats() -&gt; CacheStats</code></td>
<td>Get current cache statistics.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/paged_cache.py#L1115-L1122">#L1115-L1122</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.paged_cache.pagedcachemanager.handle_memory_pressure method vllm_mlx.paged_cache.pagedcachemanager.handle_memory_pressure(requested_blocks: int) -&gt; bool handle memory pressure by evicting blocks.">
<td><a href="../api/vllm_mlx/paged_cache/#contract-vllm_mlx.paged_cache.PagedCacheManager.handle_memory_pressure"><code>vllm_mlx.paged_cache.PagedCacheManager.handle_memory_pressure</code></a></td>
<td>method</td>
<td><code>vllm_mlx.paged_cache.PagedCacheManager.handle_memory_pressure(requested_blocks: int) -&gt; bool</code></td>
<td>Handle memory pressure by evicting blocks.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/paged_cache.py#L1087-L1096">#L1087-L1096</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.paged_cache.pagedcachemanager.increment_ref method vllm_mlx.paged_cache.pagedcachemanager.increment_ref(block_id: int) -&gt; bool increment reference count for a block.">
<td><a href="../api/vllm_mlx/paged_cache/#contract-vllm_mlx.paged_cache.PagedCacheManager.increment_ref"><code>vllm_mlx.paged_cache.PagedCacheManager.increment_ref</code></a></td>
<td>method</td>
<td><code>vllm_mlx.paged_cache.PagedCacheManager.increment_ref(block_id: int) -&gt; bool</code></td>
<td>Increment reference count for a block.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/paged_cache.py#L726-L739">#L726-L739</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.paged_cache.pagedcachemanager.register_block_hash method vllm_mlx.paged_cache.pagedcachemanager.register_block_hash(block: cacheblock, tokens: list[int]) -&gt; none register a block&#x27;s hash for deduplication (legacy method).">
<td><a href="../api/vllm_mlx/paged_cache/#contract-vllm_mlx.paged_cache.PagedCacheManager.register_block_hash"><code>vllm_mlx.paged_cache.PagedCacheManager.register_block_hash</code></a></td>
<td>method</td>
<td><code>vllm_mlx.paged_cache.PagedCacheManager.register_block_hash(block: CacheBlock, tokens: List[int]) -&gt; None</code></td>
<td>Register a block&#x27;s hash for deduplication (legacy method).</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/paged_cache.py#L898-L903">#L898-L903</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.paged_cache.pagedcachemanager.reset_prefix_cache method vllm_mlx.paged_cache.pagedcachemanager.reset_prefix_cache() -&gt; bool reset the prefix cache.">
<td><a href="../api/vllm_mlx/paged_cache/#contract-vllm_mlx.paged_cache.PagedCacheManager.reset_prefix_cache"><code>vllm_mlx.paged_cache.PagedCacheManager.reset_prefix_cache</code></a></td>
<td>method</td>
<td><code>vllm_mlx.paged_cache.PagedCacheManager.reset_prefix_cache() -&gt; bool</code></td>
<td>Reset the prefix cache.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/paged_cache.py#L1151-L1171">#L1151-L1171</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.paged_cache.pagedcachemanager.reset_stats method vllm_mlx.paged_cache.pagedcachemanager.reset_stats() -&gt; none reset statistics counters.">
<td><a href="../api/vllm_mlx/paged_cache/#contract-vllm_mlx.paged_cache.PagedCacheManager.reset_stats"><code>vllm_mlx.paged_cache.PagedCacheManager.reset_stats</code></a></td>
<td>method</td>
<td><code>vllm_mlx.paged_cache.PagedCacheManager.reset_stats() -&gt; None</code></td>
<td>Reset statistics counters.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/paged_cache.py#L1143-L1149">#L1143-L1149</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.paged_cache.pagedcachemanager.touch method vllm_mlx.paged_cache.pagedcachemanager.touch(blocks: iterable[cacheblock]) -&gt; none touch blocks to prevent eviction (cache hit, vllm style).">
<td><a href="../api/vllm_mlx/paged_cache/#contract-vllm_mlx.paged_cache.PagedCacheManager.touch"><code>vllm_mlx.paged_cache.PagedCacheManager.touch</code></a></td>
<td>method</td>
<td><code>vllm_mlx.paged_cache.PagedCacheManager.touch(blocks: Iterable[CacheBlock]) -&gt; None</code></td>
<td>Touch blocks to prevent eviction (cache hit, vLLM style).</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/paged_cache.py#L698-L720">#L698-L720</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.paged_cache.pagedcachemanager.usage method vllm_mlx.paged_cache.pagedcachemanager.usage() -&gt; float cache usage ratio (0.0 to 1.0).">
<td><a href="../api/vllm_mlx/paged_cache/#contract-vllm_mlx.paged_cache.PagedCacheManager.usage"><code>vllm_mlx.paged_cache.PagedCacheManager.usage</code></a></td>
<td>method</td>
<td><code>vllm_mlx.paged_cache.PagedCacheManager.usage() -&gt; float</code></td>
<td>Cache usage ratio (0.0 to 1.0).</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/paged_cache.py#L1108-L1113">#L1108-L1113</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.patches.gemma4_mllm.patch_gemma4_attention_for_batching function vllm_mlx.patches.gemma4_mllm.patch_gemma4_attention_for_batching() -&gt; bool patch gemma 4 attention.__call__ to trim oversized masks.">
<td><a href="../api/vllm_mlx/patches/gemma4_mllm/#contract-vllm_mlx.patches.gemma4_mllm.patch_gemma4_attention_for_batching"><code>vllm_mlx.patches.gemma4_mllm.patch_gemma4_attention_for_batching</code></a></td>
<td>function</td>
<td><code>vllm_mlx.patches.gemma4_mllm.patch_gemma4_attention_for_batching() -&gt; bool</code></td>
<td>Patch Gemma 4 Attention.__call__ to trim oversized masks.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/patches/gemma4_mllm.py#L28-L98">#L28-L98</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="nested function" data-symbol-search="vllm_mlx.patches.gemma4_mllm.patch_gemma4_attention_for_batching._patched_call nested function vllm_mlx.patches.gemma4_mllm.patch_gemma4_attention_for_batching._patched_call(x: mx.array, mask: optional[mx.array] = none, cache: optional[any] = none, shared_kv: optional[tuple] = none, offset: optional[any] = none) -&gt; any nested function `patch_gemma4_attention_for_batching._patched_call` calls `self.q_proj(x).reshape`, `self.q_proj`, `self.q_norm`, `self.k_proj(x).reshape`; returns `(self.o_proj(output), (keys, values), offset)`.">
<td><a href="../api/vllm_mlx/patches/gemma4_mllm/#contract-vllm_mlx.patches.gemma4_mllm.patch_gemma4_attention_for_batching._patched_call"><code>vllm_mlx.patches.gemma4_mllm.patch_gemma4_attention_for_batching._patched_call</code></a></td>
<td>nested function</td>
<td><code>vllm_mlx.patches.gemma4_mllm.patch_gemma4_attention_for_batching._patched_call(x: mx.array, mask: Optional[mx.array] = None, cache: Optional[Any] = None, shared_kv: Optional[tuple] = None, offset: Optional[Any] = None) -&gt; Any</code></td>
<td>Nested Function `patch_gemma4_attention_for_batching._patched_call` calls `self.q_proj(x).reshape`, `self.q_proj`, `self.q_norm`, `self.k_proj(x).reshape`; returns `(self.o_proj(output), (keys, values), offset)`.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/patches/gemma4_mllm.py#L45-L93">#L45-L93</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.patches.glm4v_moe_mllm.patch_glm4v_moe_for_batching function vllm_mlx.patches.glm4v_moe_mllm.patch_glm4v_moe_for_batching() -&gt; bool monkey-patch glm4vmodel.__call__ to handle batchkvcache offset.">
<td><a href="../api/vllm_mlx/patches/glm4v_moe_mllm/#contract-vllm_mlx.patches.glm4v_moe_mllm.patch_glm4v_moe_for_batching"><code>vllm_mlx.patches.glm4v_moe_mllm.patch_glm4v_moe_for_batching</code></a></td>
<td>function</td>
<td><code>vllm_mlx.patches.glm4v_moe_mllm.patch_glm4v_moe_for_batching() -&gt; bool</code></td>
<td>Monkey-patch GLM4VModel.__call__ to handle BatchKVCache offset.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/patches/glm4v_moe_mllm.py#L31-L89">#L31-L89</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="nested function" data-symbol-search="vllm_mlx.patches.glm4v_moe_mllm.patch_glm4v_moe_for_batching._patched_call nested function vllm_mlx.patches.glm4v_moe_mllm.patch_glm4v_moe_for_batching._patched_call(inputs: mx.array, inputs_embeds: optional[mx.array] = none, cache: optional[any] = none, mask: optional[mx.array] = none, position_ids: optional[mx.array] = none) -&gt; mx.array nested function `patch_glm4v_moe_for_batching._patched_call` calls `self.embed_tokens`, `inputs_embeds.astype`, `isinstance`, `int`; returns `self.norm(h)`.">
<td><a href="../api/vllm_mlx/patches/glm4v_moe_mllm/#contract-vllm_mlx.patches.glm4v_moe_mllm.patch_glm4v_moe_for_batching._patched_call"><code>vllm_mlx.patches.glm4v_moe_mllm.patch_glm4v_moe_for_batching._patched_call</code></a></td>
<td>nested function</td>
<td><code>vllm_mlx.patches.glm4v_moe_mllm.patch_glm4v_moe_for_batching._patched_call(inputs: mx.array, inputs_embeds: Optional[mx.array] = None, cache: Optional[Any] = None, mask: Optional[mx.array] = None, position_ids: Optional[mx.array] = None) -&gt; mx.array</code></td>
<td>Nested Function `patch_glm4v_moe_for_batching._patched_call` calls `self.embed_tokens`, `inputs_embeds.astype`, `isinstance`, `int`; returns `self.norm(h)`.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/patches/glm4v_moe_mllm.py#L50-L84">#L50-L84</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.patches.qwen3_5_mllm._apply_rotary function vllm_mlx.patches.qwen3_5_mllm._apply_rotary(attention, queries: mx.array, keys: mx.array, values: mx.array, position_ids: mx.array, position_embeddings: optional[tuple[mx.array, mx.array]], apply_multimodal_rotary_pos_emb) -&gt; tuple[mx.array, mx.array] function `_apply_rotary` calls `apply_multimodal_rotary_pos_emb`, `hasattr`, `attention.rotary_emb.apply_rotary`, `attention.rotary_emb`; has 2 explicit return paths.">
<td><a href="../api/vllm_mlx/patches/qwen3_5_mllm/#contract-vllm_mlx.patches.qwen3_5_mllm._apply_rotary"><code>vllm_mlx.patches.qwen3_5_mllm._apply_rotary</code></a></td>
<td>function</td>
<td><code>vllm_mlx.patches.qwen3_5_mllm._apply_rotary(attention, queries: mx.array, keys: mx.array, values: mx.array, position_ids: mx.array, position_embeddings: Optional[tuple[mx.array, mx.array]], apply_multimodal_rotary_pos_emb) -&gt; tuple[mx.array, mx.array]</code></td>
<td>Function `_apply_rotary` calls `apply_multimodal_rotary_pos_emb`, `hasattr`, `attention.rotary_emb.apply_rotary`, `attention.rotary_emb`; has 2 explicit return paths.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/patches/qwen3_5_mllm.py#L79-L101">#L79-L101</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.patches.qwen3_5_mllm._cache_offset_to_int function vllm_mlx.patches.qwen3_5_mllm._cache_offset_to_int(cache) -&gt; int extract cache offset as int, handling batchkvcache mx.array offset.">
<td><a href="../api/vllm_mlx/patches/qwen3_5_mllm/#contract-vllm_mlx.patches.qwen3_5_mllm._cache_offset_to_int"><code>vllm_mlx.patches.qwen3_5_mllm._cache_offset_to_int</code></a></td>
<td>function</td>
<td><code>vllm_mlx.patches.qwen3_5_mllm._cache_offset_to_int(cache) -&gt; int</code></td>
<td>Extract cache offset as int, handling BatchKVCache mx.array offset.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/patches/qwen3_5_mllm.py#L33-L42">#L33-L42</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.patches.qwen3_5_mllm._default_target_verify_left_padded_attention function vllm_mlx.patches.qwen3_5_mllm._default_target_verify_left_padded_attention(*args, **kwargs) -&gt; not annotated function `_default_target_verify_left_padded_attention` returns `none`.">
<td><a href="../api/vllm_mlx/patches/qwen3_5_mllm/#contract-vllm_mlx.patches.qwen3_5_mllm._default_target_verify_left_padded_attention"><code>vllm_mlx.patches.qwen3_5_mllm._default_target_verify_left_padded_attention</code></a></td>
<td>function</td>
<td><code>vllm_mlx.patches.qwen3_5_mllm._default_target_verify_left_padded_attention(*args, **kwargs) -&gt; not annotated</code></td>
<td>Function `_default_target_verify_left_padded_attention` returns `None`.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/patches/qwen3_5_mllm.py#L49-L50">#L49-L50</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.patches.qwen3_5_mllm._default_target_verify_linears function vllm_mlx.patches.qwen3_5_mllm._default_target_verify_linears(linears, x, target_verify: bool) -&gt; not annotated function `_default_target_verify_linears` calls `tuple`, `linear`; returns `tuple((linear(x) for linear in linears))`.">
<td><a href="../api/vllm_mlx/patches/qwen3_5_mllm/#contract-vllm_mlx.patches.qwen3_5_mllm._default_target_verify_linears"><code>vllm_mlx.patches.qwen3_5_mllm._default_target_verify_linears</code></a></td>
<td>function</td>
<td><code>vllm_mlx.patches.qwen3_5_mllm._default_target_verify_linears(linears, x, target_verify: bool) -&gt; not annotated</code></td>
<td>Function `_default_target_verify_linears` calls `tuple`, `linear`; returns `tuple((linear(x) for linear in linears))`.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/patches/qwen3_5_mllm.py#L45-L46">#L45-L46</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.patches.qwen3_5_mllm._kv_seq_len function vllm_mlx.patches.qwen3_5_mllm._kv_seq_len(keys: mx.array, cache: optional[any], offset: int) -&gt; int function `_kv_seq_len` returns `length + offset + 1 if cache is not none else length`.">
<td><a href="../api/vllm_mlx/patches/qwen3_5_mllm/#contract-vllm_mlx.patches.qwen3_5_mllm._kv_seq_len"><code>vllm_mlx.patches.qwen3_5_mllm._kv_seq_len</code></a></td>
<td>function</td>
<td><code>vllm_mlx.patches.qwen3_5_mllm._kv_seq_len(keys: mx.array, cache: Optional[Any], offset: int) -&gt; int</code></td>
<td>Function `_kv_seq_len` returns `length + offset + 1 if cache is not None else length`.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/patches/qwen3_5_mllm.py#L74-L76">#L74-L76</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.patches.qwen3_5_mllm._maybe_target_verify_attention function vllm_mlx.patches.qwen3_5_mllm._maybe_target_verify_attention(queries: mx.array, keys: mx.array, values: mx.array, *, cache: optional[any], mask: optional[mx.array], scale: float, target_verify: bool, length: int, left_padded_decode: bool, target_verify_left_padded_attention) -&gt; optional[mx.array] function `_maybe_target_verify_attention` calls `target_verify_left_padded_attention`; has 2 explicit return paths.">
<td><a href="../api/vllm_mlx/patches/qwen3_5_mllm/#contract-vllm_mlx.patches.qwen3_5_mllm._maybe_target_verify_attention"><code>vllm_mlx.patches.qwen3_5_mllm._maybe_target_verify_attention</code></a></td>
<td>function</td>
<td><code>vllm_mlx.patches.qwen3_5_mllm._maybe_target_verify_attention(queries: mx.array, keys: mx.array, values: mx.array, *, cache: Optional[Any], mask: Optional[mx.array], scale: float, target_verify: bool, length: int, left_padded_decode: bool, target_verify_left_padded_attention) -&gt; Optional[mx.array]</code></td>
<td>Function `_maybe_target_verify_attention` calls `target_verify_left_padded_attention`; has 2 explicit return paths.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/patches/qwen3_5_mllm.py#L119-L141">#L119-L141</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.patches.qwen3_5_mllm._normalize_position_inputs function vllm_mlx.patches.qwen3_5_mllm._normalize_position_inputs(position_ids: optional[mx.array], position_embeddings: optional[tuple[mx.array, mx.array]], length: int) -&gt; tuple[optional[mx.array], optional[tuple[mx.array, mx.array]]] function `_normalize_position_inputs` calls `logger.debug`; has 2 explicit return paths.">
<td><a href="../api/vllm_mlx/patches/qwen3_5_mllm/#contract-vllm_mlx.patches.qwen3_5_mllm._normalize_position_inputs"><code>vllm_mlx.patches.qwen3_5_mllm._normalize_position_inputs</code></a></td>
<td>function</td>
<td><code>vllm_mlx.patches.qwen3_5_mllm._normalize_position_inputs(position_ids: Optional[mx.array], position_embeddings: Optional[tuple[mx.array, mx.array]], length: int) -&gt; tuple[Optional[mx.array], Optional[tuple[mx.array, mx.array]]]</code></td>
<td>Function `_normalize_position_inputs` calls `logger.debug`; has 2 explicit return paths.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/patches/qwen3_5_mllm.py#L53-L65">#L53-L65</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.patches.qwen3_5_mllm._position_ids_for_offset function vllm_mlx.patches.qwen3_5_mllm._position_ids_for_offset(offset: int, length: int) -&gt; mx.array function `_position_ids_for_offset` calls `mx.arange`, `mx.expand_dims`, `mx.tile`; returns `mx.tile(position_ids, (3, 1, 1))`.">
<td><a href="../api/vllm_mlx/patches/qwen3_5_mllm/#contract-vllm_mlx.patches.qwen3_5_mllm._position_ids_for_offset"><code>vllm_mlx.patches.qwen3_5_mllm._position_ids_for_offset</code></a></td>
<td>function</td>
<td><code>vllm_mlx.patches.qwen3_5_mllm._position_ids_for_offset(offset: int, length: int) -&gt; mx.array</code></td>
<td>Function `_position_ids_for_offset` calls `mx.arange`, `mx.expand_dims`, `mx.tile`; returns `mx.tile(position_ids, (3, 1, 1))`.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/patches/qwen3_5_mllm.py#L68-L71">#L68-L71</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.patches.qwen3_5_mllm._slice_attention_mask function vllm_mlx.patches.qwen3_5_mllm._slice_attention_mask(mask: optional[mx.array], cache: optional[any], kv_seq_len: int, length: int) -&gt; optional[mx.array] function `_slice_attention_mask` calls `isinstance`, `hasattr`, `int`, `kv_seq_len.max().item`; has 2 explicit return paths.">
<td><a href="../api/vllm_mlx/patches/qwen3_5_mllm/#contract-vllm_mlx.patches.qwen3_5_mllm._slice_attention_mask"><code>vllm_mlx.patches.qwen3_5_mllm._slice_attention_mask</code></a></td>
<td>function</td>
<td><code>vllm_mlx.patches.qwen3_5_mllm._slice_attention_mask(mask: Optional[mx.array], cache: Optional[Any], kv_seq_len: int, length: int) -&gt; Optional[mx.array]</code></td>
<td>Function `_slice_attention_mask` calls `isinstance`, `hasattr`, `int`, `kv_seq_len.max().item`; has 2 explicit return paths.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/patches/qwen3_5_mllm.py#L104-L116">#L104-L116</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.patches.qwen3_5_mllm.patch_qwen35_attention_for_batching function vllm_mlx.patches.qwen3_5_mllm.patch_qwen35_attention_for_batching() -&gt; bool monkey-patch qwen3_5attention.__call__ to handle batchkvcache.">
<td><a href="../api/vllm_mlx/patches/qwen3_5_mllm/#contract-vllm_mlx.patches.qwen3_5_mllm.patch_qwen35_attention_for_batching"><code>vllm_mlx.patches.qwen3_5_mllm.patch_qwen35_attention_for_batching</code></a></td>
<td>function</td>
<td><code>vllm_mlx.patches.qwen3_5_mllm.patch_qwen35_attention_for_batching() -&gt; bool</code></td>
<td>Monkey-patch Qwen3_5Attention.__call__ to handle BatchKVCache.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/patches/qwen3_5_mllm.py#L144-L266">#L144-L266</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="nested function" data-symbol-search="vllm_mlx.patches.qwen3_5_mllm.patch_qwen35_attention_for_batching._patched_call nested function vllm_mlx.patches.qwen3_5_mllm.patch_qwen35_attention_for_batching._patched_call(x: mx.array, mask: optional[mx.array] = none, cache: optional[any] = none, position_ids: optional[mx.array] = none, position_embeddings: optional[tuple[mx.array, mx.array]] = none, target_verify: bool = false) -&gt; mx.array nested function `patch_qwen35_attention_for_batching._patched_call` calls `target_verify_linears`, `mx.split`, `q_proj_output.reshape`, `gate.reshape`; returns `self.o_proj(output * mx.sigmoid(gate))`.">
<td><a href="../api/vllm_mlx/patches/qwen3_5_mllm/#contract-vllm_mlx.patches.qwen3_5_mllm.patch_qwen35_attention_for_batching._patched_call"><code>vllm_mlx.patches.qwen3_5_mllm.patch_qwen35_attention_for_batching._patched_call</code></a></td>
<td>nested function</td>
<td><code>vllm_mlx.patches.qwen3_5_mllm.patch_qwen35_attention_for_batching._patched_call(x: mx.array, mask: Optional[mx.array] = None, cache: Optional[Any] = None, position_ids: Optional[mx.array] = None, position_embeddings: Optional[tuple[mx.array, mx.array]] = None, target_verify: bool = False) -&gt; mx.array</code></td>
<td>Nested Function `patch_qwen35_attention_for_batching._patched_call` calls `target_verify_linears`, `mx.split`, `q_proj_output.reshape`, `gate.reshape`; returns `self.o_proj(output * mx.sigmoid(gate))`.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/patches/qwen3_5_mllm.py#L174-L261">#L174-L261</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.patches.qwen3_5_mtp._apply_qwen_mtp_rmsnorm_offset_fixups function vllm_mlx.patches.qwen3_5_mtp._apply_qwen_mtp_rmsnorm_offset_fixups(mtp_weights: dict) -&gt; int apply qwen raw-offset rmsnorm fixups without double-shifting mlx weights.">
<td><a href="../api/vllm_mlx/patches/qwen3_5_mtp/#contract-vllm_mlx.patches.qwen3_5_mtp._apply_qwen_mtp_rmsnorm_offset_fixups"><code>vllm_mlx.patches.qwen3_5_mtp._apply_qwen_mtp_rmsnorm_offset_fixups</code></a></td>
<td>function</td>
<td><code>vllm_mlx.patches.qwen3_5_mtp._apply_qwen_mtp_rmsnorm_offset_fixups(mtp_weights: dict) -&gt; int</code></td>
<td>Apply Qwen raw-offset RMSNorm fixups without double-shifting MLX weights.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/patches/qwen3_5_mtp.py#L80-L90">#L80-L90</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.patches.qwen3_5_mtp._fixup_moe_mtp function vllm_mlx.patches.qwen3_5_mtp._fixup_moe_mtp(mtp, inner_model, loaded_keys: set, mx) -&gt; none fix missing weights in moe mtp module.">
<td><a href="../api/vllm_mlx/patches/qwen3_5_mtp/#contract-vllm_mlx.patches.qwen3_5_mtp._fixup_moe_mtp"><code>vllm_mlx.patches.qwen3_5_mtp._fixup_moe_mtp</code></a></td>
<td>function</td>
<td><code>vllm_mlx.patches.qwen3_5_mtp._fixup_moe_mtp(mtp, inner_model, loaded_keys: set, mx) -&gt; None</code></td>
<td>Fix missing weights in MoE MTP module.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/patches/qwen3_5_mtp.py#L93-L157">#L93-L157</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.patches.qwen3_5_mtp._is_qwen_mtp_rmsnorm_weight function vllm_mlx.patches.qwen3_5_mtp._is_qwen_mtp_rmsnorm_weight(key: str, weight) -&gt; bool return true for mtp rmsnorm weights that use qwen&#x27;s offset convention.">
<td><a href="../api/vllm_mlx/patches/qwen3_5_mtp/#contract-vllm_mlx.patches.qwen3_5_mtp._is_qwen_mtp_rmsnorm_weight"><code>vllm_mlx.patches.qwen3_5_mtp._is_qwen_mtp_rmsnorm_weight</code></a></td>
<td>function</td>
<td><code>vllm_mlx.patches.qwen3_5_mtp._is_qwen_mtp_rmsnorm_weight(key: str, weight) -&gt; bool</code></td>
<td>Return True for MTP RMSNorm weights that use Qwen&#x27;s offset convention.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/patches/qwen3_5_mtp.py#L73-L77">#L73-L77</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.patches.qwen3_5_mtp._resolve_qwen_mtp_hidden_state_mode function vllm_mlx.patches.qwen3_5_mtp._resolve_qwen_mtp_hidden_state_mode(config: dict) -&gt; str resolve the checkpoint&#x27;s mtp hidden-state contract safely.">
<td><a href="../api/vllm_mlx/patches/qwen3_5_mtp/#contract-vllm_mlx.patches.qwen3_5_mtp._resolve_qwen_mtp_hidden_state_mode"><code>vllm_mlx.patches.qwen3_5_mtp._resolve_qwen_mtp_hidden_state_mode</code></a></td>
<td>function</td>
<td><code>vllm_mlx.patches.qwen3_5_mtp._resolve_qwen_mtp_hidden_state_mode(config: dict) -&gt; str</code></td>
<td>Resolve the checkpoint&#x27;s MTP hidden-state contract safely.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/patches/qwen3_5_mtp.py#L52-L65">#L52-L65</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.patches.qwen3_5_mtp._select_qwen_mtp_hidden_state function vllm_mlx.patches.qwen3_5_mtp._select_qwen_mtp_hidden_state(mode: str, hidden_states, normed) -&gt; not annotated select the representation expected by the checkpoint&#x27;s mtp head.">
<td><a href="../api/vllm_mlx/patches/qwen3_5_mtp/#contract-vllm_mlx.patches.qwen3_5_mtp._select_qwen_mtp_hidden_state"><code>vllm_mlx.patches.qwen3_5_mtp._select_qwen_mtp_hidden_state</code></a></td>
<td>function</td>
<td><code>vllm_mlx.patches.qwen3_5_mtp._select_qwen_mtp_hidden_state(mode: str, hidden_states, normed) -&gt; not annotated</code></td>
<td>Select the representation expected by the checkpoint&#x27;s MTP head.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/patches/qwen3_5_mtp.py#L68-L70">#L68-L70</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.patches.qwen3_5_mtp._strip_mtp_key_prefix function vllm_mlx.patches.qwen3_5_mtp._strip_mtp_key_prefix(key: str) -&gt; str | none return an mtp-relative key for supported standalone shard layouts.">
<td><a href="../api/vllm_mlx/patches/qwen3_5_mtp/#contract-vllm_mlx.patches.qwen3_5_mtp._strip_mtp_key_prefix"><code>vllm_mlx.patches.qwen3_5_mtp._strip_mtp_key_prefix</code></a></td>
<td>function</td>
<td><code>vllm_mlx.patches.qwen3_5_mtp._strip_mtp_key_prefix(key: str) -&gt; str | None</code></td>
<td>Return an MTP-relative key for supported standalone shard layouts.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/patches/qwen3_5_mtp.py#L31-L36">#L31-L36</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.patches.qwen3_5_mtp.inject_mtp_support function vllm_mlx.patches.qwen3_5_mtp.inject_mtp_support(model: any, model_path, config: dict) -&gt; bool inject mtp module into a loaded qwen3.5 model.">
<td><a href="../api/vllm_mlx/patches/qwen3_5_mtp/#contract-vllm_mlx.patches.qwen3_5_mtp.inject_mtp_support"><code>vllm_mlx.patches.qwen3_5_mtp.inject_mtp_support</code></a></td>
<td>function</td>
<td><code>vllm_mlx.patches.qwen3_5_mtp.inject_mtp_support(model: Any, model_path, config: dict) -&gt; bool</code></td>
<td>Inject MTP module into a loaded Qwen3.5 model.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/patches/qwen3_5_mtp.py#L160-L447">#L160-L447</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="nested class" data-symbol-search="vllm_mlx.patches.qwen3_5_mtp.inject_mtp_support._mtpmodule nested class vllm_mlx.patches.qwen3_5_mtp.inject_mtp_support._mtpmodule(args, n_layers) nested class `inject_mtp_support._mtpmodule` derives from `nn.module` and declares 1 direct member(s).">
<td><a href="../api/vllm_mlx/patches/qwen3_5_mtp/#contract-vllm_mlx.patches.qwen3_5_mtp.inject_mtp_support._MTPModule"><code>vllm_mlx.patches.qwen3_5_mtp.inject_mtp_support._MTPModule</code></a></td>
<td>nested class</td>
<td><code>vllm_mlx.patches.qwen3_5_mtp.inject_mtp_support._MTPModule(args, n_layers)</code></td>
<td>Nested Class `inject_mtp_support._MTPModule` derives from `nn.Module` and declares 1 direct member(s).</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/patches/qwen3_5_mtp.py#L239-L252">#L239-L252</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="nested function" data-symbol-search="vllm_mlx.patches.qwen3_5_mtp.inject_mtp_support._mtpmodule.__init__ nested function vllm_mlx.patches.qwen3_5_mtp.inject_mtp_support._mtpmodule.__init__(args, n_layers) -&gt; not annotated nested function `inject_mtp_support._mtpmodule.__init__` updates `self.pre_fc_norm_hidden`, `self.pre_fc_norm_embedding`, `self.fc`, `self.layers`; calls `super().__init__`, `super`, `nn.rmsnorm`, `nn.linear`.">
<td><a href="../api/vllm_mlx/patches/qwen3_5_mtp/#contract-vllm_mlx.patches.qwen3_5_mtp.inject_mtp_support._MTPModule.__init__"><code>vllm_mlx.patches.qwen3_5_mtp.inject_mtp_support._MTPModule.__init__</code></a></td>
<td>nested function</td>
<td><code>vllm_mlx.patches.qwen3_5_mtp.inject_mtp_support._MTPModule.__init__(args, n_layers) -&gt; not annotated</code></td>
<td>Nested Function `inject_mtp_support._MTPModule.__init__` updates `self.pre_fc_norm_hidden`, `self.pre_fc_norm_embedding`, `self.fc`, `self.layers`; calls `super().__init__`, `super`, `nn.RMSNorm`, `nn.Linear`.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/patches/qwen3_5_mtp.py#L240-L252">#L240-L252</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="nested class" data-symbol-search="vllm_mlx.patches.qwen3_5_mtp.inject_mtp_support._qwen3_5mtp nested class vllm_mlx.patches.qwen3_5_mtp.inject_mtp_support._qwen3_5mtp() qwen3.5 with mtp support (injected at runtime).">
<td><a href="../api/vllm_mlx/patches/qwen3_5_mtp/#contract-vllm_mlx.patches.qwen3_5_mtp.inject_mtp_support._Qwen3_5MTP"><code>vllm_mlx.patches.qwen3_5_mtp.inject_mtp_support._Qwen3_5MTP</code></a></td>
<td>nested class</td>
<td><code>vllm_mlx.patches.qwen3_5_mtp.inject_mtp_support._Qwen3_5MTP()</code></td>
<td>Qwen3.5 with MTP support (injected at runtime).</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/patches/qwen3_5_mtp.py#L368-L438">#L368-L438</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="nested function" data-symbol-search="vllm_mlx.patches.qwen3_5_mtp.inject_mtp_support._qwen3_5mtp.__call__ nested function vllm_mlx.patches.qwen3_5_mtp.inject_mtp_support._qwen3_5mtp.__call__(inputs, cache = none, return_hidden: bool = false, input_embeddings = none, **kwargs) -&gt; not annotated nested function `inject_mtp_support._qwen3_5mtp.__call__` calls `inner.embed_tokens`, `len`, `create_attention_mask`, `create_ssm_mask`; has 2 explicit return paths.">
<td><a href="../api/vllm_mlx/patches/qwen3_5_mtp/#contract-vllm_mlx.patches.qwen3_5_mtp.inject_mtp_support._Qwen3_5MTP.__call__"><code>vllm_mlx.patches.qwen3_5_mtp.inject_mtp_support._Qwen3_5MTP.__call__</code></a></td>
<td>nested function</td>
<td><code>vllm_mlx.patches.qwen3_5_mtp.inject_mtp_support._Qwen3_5MTP.__call__(inputs, cache = None, return_hidden: bool = False, input_embeddings = None, **kwargs) -&gt; not annotated</code></td>
<td>Nested Function `inject_mtp_support._Qwen3_5MTP.__call__` calls `inner.embed_tokens`, `len`, `create_attention_mask`, `create_ssm_mask`; has 2 explicit return paths.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/patches/qwen3_5_mtp.py#L371-L408">#L371-L408</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="nested function" data-symbol-search="vllm_mlx.patches.qwen3_5_mtp.inject_mtp_support._qwen3_5mtp.make_mtp_cache nested function vllm_mlx.patches.qwen3_5_mtp.inject_mtp_support._qwen3_5mtp.make_mtp_cache() -&gt; not annotated create kv cache for mtp layers.">
<td><a href="../api/vllm_mlx/patches/qwen3_5_mtp/#contract-vllm_mlx.patches.qwen3_5_mtp.inject_mtp_support._Qwen3_5MTP.make_mtp_cache"><code>vllm_mlx.patches.qwen3_5_mtp.inject_mtp_support._Qwen3_5MTP.make_mtp_cache</code></a></td>
<td>nested function</td>
<td><code>vllm_mlx.patches.qwen3_5_mtp.inject_mtp_support._Qwen3_5MTP.make_mtp_cache() -&gt; not annotated</code></td>
<td>Create KV cache for MTP layers.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/patches/qwen3_5_mtp.py#L434-L438">#L434-L438</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="nested function" data-symbol-search="vllm_mlx.patches.qwen3_5_mtp.inject_mtp_support._qwen3_5mtp.mtp_forward nested function vllm_mlx.patches.qwen3_5_mtp.inject_mtp_support._qwen3_5mtp.mtp_forward(hidden_states, next_token_ids, cache = none, mtp_cache = none) -&gt; not annotated run mtp head: predict token n+2 from hidden states + token n+1.">
<td><a href="../api/vllm_mlx/patches/qwen3_5_mtp/#contract-vllm_mlx.patches.qwen3_5_mtp.inject_mtp_support._Qwen3_5MTP.mtp_forward"><code>vllm_mlx.patches.qwen3_5_mtp.inject_mtp_support._Qwen3_5MTP.mtp_forward</code></a></td>
<td>nested function</td>
<td><code>vllm_mlx.patches.qwen3_5_mtp.inject_mtp_support._Qwen3_5MTP.mtp_forward(hidden_states, next_token_ids, cache = None, mtp_cache = None) -&gt; not annotated</code></td>
<td>Run MTP head: predict token n+2 from hidden states + token n+1.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/patches/qwen3_5_mtp.py#L410-L432">#L410-L432</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.patches.qwen3_5_mtp.validate_mtp_support function vllm_mlx.patches.qwen3_5_mtp.validate_mtp_support(model: any) -&gt; bool validate that a loaded model has working mtp support.">
<td><a href="../api/vllm_mlx/patches/qwen3_5_mtp/#contract-vllm_mlx.patches.qwen3_5_mtp.validate_mtp_support"><code>vllm_mlx.patches.qwen3_5_mtp.validate_mtp_support</code></a></td>
<td>function</td>
<td><code>vllm_mlx.patches.qwen3_5_mtp.validate_mtp_support(model: Any) -&gt; bool</code></td>
<td>Validate that a loaded model has working MTP support.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/patches/qwen3_5_mtp.py#L450-L512">#L450-L512</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.patches.qwen3_next_mtp.inject_mtp_support function vllm_mlx.patches.qwen3_next_mtp.inject_mtp_support(model: any, model_path, config: dict) -&gt; bool inject mtp module into a loaded qwen3-next model.">
<td><a href="../api/vllm_mlx/patches/qwen3_next_mtp/#contract-vllm_mlx.patches.qwen3_next_mtp.inject_mtp_support"><code>vllm_mlx.patches.qwen3_next_mtp.inject_mtp_support</code></a></td>
<td>function</td>
<td><code>vllm_mlx.patches.qwen3_next_mtp.inject_mtp_support(model: Any, model_path, config: dict) -&gt; bool</code></td>
<td>Inject MTP module into a loaded Qwen3-Next model.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/patches/qwen3_next_mtp.py#L27-L181">#L27-L181</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="nested function" data-symbol-search="vllm_mlx.patches.qwen3_next_mtp.inject_mtp_support._mtp_quant_pred nested function vllm_mlx.patches.qwen3_next_mtp.inject_mtp_support._mtp_quant_pred(path, module) -&gt; not annotated nested function `inject_mtp_support._mtp_quant_pred` calls `isinstance`, `path.endswith`; has 3 explicit return paths.">
<td><a href="../api/vllm_mlx/patches/qwen3_next_mtp/#contract-vllm_mlx.patches.qwen3_next_mtp.inject_mtp_support._mtp_quant_pred"><code>vllm_mlx.patches.qwen3_next_mtp.inject_mtp_support._mtp_quant_pred</code></a></td>
<td>nested function</td>
<td><code>vllm_mlx.patches.qwen3_next_mtp.inject_mtp_support._mtp_quant_pred(path, module) -&gt; not annotated</code></td>
<td>Nested Function `inject_mtp_support._mtp_quant_pred` calls `isinstance`, `path.endswith`; has 3 explicit return paths.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/patches/qwen3_next_mtp.py#L93-L103">#L93-L103</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="nested class" data-symbol-search="vllm_mlx.patches.qwen3_next_mtp.inject_mtp_support._mtpmodule nested class vllm_mlx.patches.qwen3_next_mtp.inject_mtp_support._mtpmodule(args, n_layers) nested class `inject_mtp_support._mtpmodule` derives from `nn.module` and declares 1 direct member(s).">
<td><a href="../api/vllm_mlx/patches/qwen3_next_mtp/#contract-vllm_mlx.patches.qwen3_next_mtp.inject_mtp_support._MTPModule"><code>vllm_mlx.patches.qwen3_next_mtp.inject_mtp_support._MTPModule</code></a></td>
<td>nested class</td>
<td><code>vllm_mlx.patches.qwen3_next_mtp.inject_mtp_support._MTPModule(args, n_layers)</code></td>
<td>Nested Class `inject_mtp_support._MTPModule` derives from `nn.Module` and declares 1 direct member(s).</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/patches/qwen3_next_mtp.py#L68-L83">#L68-L83</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="nested function" data-symbol-search="vllm_mlx.patches.qwen3_next_mtp.inject_mtp_support._mtpmodule.__init__ nested function vllm_mlx.patches.qwen3_next_mtp.inject_mtp_support._mtpmodule.__init__(args, n_layers) -&gt; not annotated nested function `inject_mtp_support._mtpmodule.__init__` updates `self.pre_fc_norm_hidden`, `self.pre_fc_norm_embedding`, `self.fc`, `self.layers`; calls `super().__init__`, `super`, `nn.rmsnorm`, `nn.linear`.">
<td><a href="../api/vllm_mlx/patches/qwen3_next_mtp/#contract-vllm_mlx.patches.qwen3_next_mtp.inject_mtp_support._MTPModule.__init__"><code>vllm_mlx.patches.qwen3_next_mtp.inject_mtp_support._MTPModule.__init__</code></a></td>
<td>nested function</td>
<td><code>vllm_mlx.patches.qwen3_next_mtp.inject_mtp_support._MTPModule.__init__(args, n_layers) -&gt; not annotated</code></td>
<td>Nested Function `inject_mtp_support._MTPModule.__init__` updates `self.pre_fc_norm_hidden`, `self.pre_fc_norm_embedding`, `self.fc`, `self.layers`; calls `super().__init__`, `super`, `nn.RMSNorm`, `nn.Linear`.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/patches/qwen3_next_mtp.py#L69-L83">#L69-L83</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="nested class" data-symbol-search="vllm_mlx.patches.qwen3_next_mtp.inject_mtp_support._qwen3nextmtp nested class vllm_mlx.patches.qwen3_next_mtp.inject_mtp_support._qwen3nextmtp() qwen3-next with mtp support (injected at runtime).">
<td><a href="../api/vllm_mlx/patches/qwen3_next_mtp/#contract-vllm_mlx.patches.qwen3_next_mtp.inject_mtp_support._Qwen3NextMTP"><code>vllm_mlx.patches.qwen3_next_mtp.inject_mtp_support._Qwen3NextMTP</code></a></td>
<td>nested class</td>
<td><code>vllm_mlx.patches.qwen3_next_mtp.inject_mtp_support._Qwen3NextMTP()</code></td>
<td>Qwen3-Next with MTP support (injected at runtime).</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/patches/qwen3_next_mtp.py#L125-L177">#L125-L177</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="nested function" data-symbol-search="vllm_mlx.patches.qwen3_next_mtp.inject_mtp_support._qwen3nextmtp.__call__ nested function vllm_mlx.patches.qwen3_next_mtp.inject_mtp_support._qwen3nextmtp.__call__(inputs, cache = none, return_hidden: bool = false) -&gt; not annotated nested function `inject_mtp_support._qwen3nextmtp.__call__` calls `inner.embed_tokens`, `len`, `create_attention_mask`, `create_ssm_mask`; has 2 explicit return paths.">
<td><a href="../api/vllm_mlx/patches/qwen3_next_mtp/#contract-vllm_mlx.patches.qwen3_next_mtp.inject_mtp_support._Qwen3NextMTP.__call__"><code>vllm_mlx.patches.qwen3_next_mtp.inject_mtp_support._Qwen3NextMTP.__call__</code></a></td>
<td>nested function</td>
<td><code>vllm_mlx.patches.qwen3_next_mtp.inject_mtp_support._Qwen3NextMTP.__call__(inputs, cache = None, return_hidden: bool = False) -&gt; not annotated</code></td>
<td>Nested Function `inject_mtp_support._Qwen3NextMTP.__call__` calls `inner.embed_tokens`, `len`, `create_attention_mask`, `create_ssm_mask`; has 2 explicit return paths.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/patches/qwen3_next_mtp.py#L128-L150">#L128-L150</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="nested function" data-symbol-search="vllm_mlx.patches.qwen3_next_mtp.inject_mtp_support._qwen3nextmtp.make_mtp_cache nested function vllm_mlx.patches.qwen3_next_mtp.inject_mtp_support._qwen3nextmtp.make_mtp_cache() -&gt; not annotated create kv cache for mtp layers.">
<td><a href="../api/vllm_mlx/patches/qwen3_next_mtp/#contract-vllm_mlx.patches.qwen3_next_mtp.inject_mtp_support._Qwen3NextMTP.make_mtp_cache"><code>vllm_mlx.patches.qwen3_next_mtp.inject_mtp_support._Qwen3NextMTP.make_mtp_cache</code></a></td>
<td>nested function</td>
<td><code>vllm_mlx.patches.qwen3_next_mtp.inject_mtp_support._Qwen3NextMTP.make_mtp_cache() -&gt; not annotated</code></td>
<td>Create KV cache for MTP layers.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/patches/qwen3_next_mtp.py#L173-L177">#L173-L177</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="nested function" data-symbol-search="vllm_mlx.patches.qwen3_next_mtp.inject_mtp_support._qwen3nextmtp.mtp_forward nested function vllm_mlx.patches.qwen3_next_mtp.inject_mtp_support._qwen3nextmtp.mtp_forward(hidden_states, next_token_ids, cache = none, mtp_cache = none) -&gt; not annotated run mtp head: predict token n+2 from hidden states + token n+1.">
<td><a href="../api/vllm_mlx/patches/qwen3_next_mtp/#contract-vllm_mlx.patches.qwen3_next_mtp.inject_mtp_support._Qwen3NextMTP.mtp_forward"><code>vllm_mlx.patches.qwen3_next_mtp.inject_mtp_support._Qwen3NextMTP.mtp_forward</code></a></td>
<td>nested function</td>
<td><code>vllm_mlx.patches.qwen3_next_mtp.inject_mtp_support._Qwen3NextMTP.mtp_forward(hidden_states, next_token_ids, cache = None, mtp_cache = None) -&gt; not annotated</code></td>
<td>Run MTP head: predict token n+2 from hidden states + token n+1.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/patches/qwen3_next_mtp.py#L152-L171">#L152-L171</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.patches.qwen3_next_mtp.validate_mtp_support function vllm_mlx.patches.qwen3_next_mtp.validate_mtp_support(model: any) -&gt; bool validate that a loaded model has working mtp support.">
<td><a href="../api/vllm_mlx/patches/qwen3_next_mtp/#contract-vllm_mlx.patches.qwen3_next_mtp.validate_mtp_support"><code>vllm_mlx.patches.qwen3_next_mtp.validate_mtp_support</code></a></td>
<td>function</td>
<td><code>vllm_mlx.patches.qwen3_next_mtp.validate_mtp_support(model: Any) -&gt; bool</code></td>
<td>Validate that a loaded model has working MTP support.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/patches/qwen3_next_mtp.py#L184-L261">#L184-L261</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.plugin.get_mlx_device_info function vllm_mlx.plugin.get_mlx_device_info() -&gt; dict get information about the mlx device.">
<td><a href="../api/vllm_mlx/plugin/#contract-vllm_mlx.plugin.get_mlx_device_info"><code>vllm_mlx.plugin.get_mlx_device_info</code></a></td>
<td>function</td>
<td><code>vllm_mlx.plugin.get_mlx_device_info() -&gt; dict</code></td>
<td>Get information about the MLX device.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/plugin.py#L83-L155">#L83-L155</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.plugin.is_mlx_available function vllm_mlx.plugin.is_mlx_available() -&gt; bool check if mlx platform can be used.">
<td><a href="../api/vllm_mlx/plugin/#contract-vllm_mlx.plugin.is_mlx_available"><code>vllm_mlx.plugin.is_mlx_available</code></a></td>
<td>function</td>
<td><code>vllm_mlx.plugin.is_mlx_available() -&gt; bool</code></td>
<td>Check if MLX platform can be used.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/plugin.py#L73-L80">#L73-L80</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.plugin.mlx_platform_plugin function vllm_mlx.plugin.mlx_platform_plugin() -&gt; str | none platform plugin entry point for vllm.">
<td><a href="../api/vllm_mlx/plugin/#contract-vllm_mlx.plugin.mlx_platform_plugin"><code>vllm_mlx.plugin.mlx_platform_plugin</code></a></td>
<td>function</td>
<td><code>vllm_mlx.plugin.mlx_platform_plugin() -&gt; str | None</code></td>
<td>Platform plugin entry point for vLLM.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/plugin.py#L17-L70">#L17-L70</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="class" data-symbol-search="vllm_mlx.prefix_cache.blockawareprefixcache class vllm_mlx.prefix_cache.blockawareprefixcache(model: any, paged_cache_manager: pagedcachemanager) prefix cache that uses pagedcachemanager for block-based storage.">
<td><a href="../api/vllm_mlx/prefix_cache/#contract-vllm_mlx.prefix_cache.BlockAwarePrefixCache"><code>vllm_mlx.prefix_cache.BlockAwarePrefixCache</code></a></td>
<td>class</td>
<td><code>vllm_mlx.prefix_cache.BlockAwarePrefixCache(model: Any, paged_cache_manager: PagedCacheManager)</code></td>
<td>Prefix cache that uses PagedCacheManager for block-based storage.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/prefix_cache.py#L372-L1039">#L372-L1039</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.prefix_cache.blockawareprefixcache.__init__ method vllm_mlx.prefix_cache.blockawareprefixcache.__init__(model: any, paged_cache_manager: pagedcachemanager) -&gt; not annotated initialize block-aware prefix cache.">
<td><a href="../api/vllm_mlx/prefix_cache/#contract-vllm_mlx.prefix_cache.BlockAwarePrefixCache.__init__"><code>vllm_mlx.prefix_cache.BlockAwarePrefixCache.__init__</code></a></td>
<td>method</td>
<td><code>vllm_mlx.prefix_cache.BlockAwarePrefixCache.__init__(model: Any, paged_cache_manager: PagedCacheManager) -&gt; not annotated</code></td>
<td>Initialize block-aware prefix cache.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/prefix_cache.py#L399-L426">#L399-L426</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.prefix_cache.blockawareprefixcache.__len__ method vllm_mlx.prefix_cache.blockawareprefixcache.__len__() -&gt; int return number of active request entries.">
<td><a href="../api/vllm_mlx/prefix_cache/#contract-vllm_mlx.prefix_cache.BlockAwarePrefixCache.__len__"><code>vllm_mlx.prefix_cache.BlockAwarePrefixCache.__len__</code></a></td>
<td>method</td>
<td><code>vllm_mlx.prefix_cache.BlockAwarePrefixCache.__len__() -&gt; int</code></td>
<td>Return number of active request entries.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/prefix_cache.py#L1037-L1039">#L1037-L1039</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.prefix_cache.blockawareprefixcache._cache_state_seq_axis method vllm_mlx.prefix_cache.blockawareprefixcache._cache_state_seq_axis(state: any) -&gt; optional[int] return the sequence axis for cache states that support block concat.">
<td><a href="../api/vllm_mlx/prefix_cache/#contract-vllm_mlx.prefix_cache.BlockAwarePrefixCache._cache_state_seq_axis"><code>vllm_mlx.prefix_cache.BlockAwarePrefixCache._cache_state_seq_axis</code></a></td>
<td>method</td>
<td><code>vllm_mlx.prefix_cache.BlockAwarePrefixCache._cache_state_seq_axis(state: Any) -&gt; Optional[int]</code></td>
<td>Return the sequence axis for cache states that support block concat.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/prefix_cache.py#L704-L725">#L704-L725</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.prefix_cache.blockawareprefixcache._concat_cache_states method vllm_mlx.prefix_cache.blockawareprefixcache._concat_cache_states(states: list[tuple[any, ...] | list[any]], seq_axis: int) -&gt; optional[tuple[any, ...] | list[any]] concatenate state fragments for a sequence-backed cache layer.">
<td><a href="../api/vllm_mlx/prefix_cache/#contract-vllm_mlx.prefix_cache.BlockAwarePrefixCache._concat_cache_states"><code>vllm_mlx.prefix_cache.BlockAwarePrefixCache._concat_cache_states</code></a></td>
<td>method</td>
<td><code>vllm_mlx.prefix_cache.BlockAwarePrefixCache._concat_cache_states(states: List[Tuple[Any, ...] | List[Any]], seq_axis: int) -&gt; Optional[Tuple[Any, ...] | List[Any]]</code></td>
<td>Concatenate state fragments for a sequence-backed cache layer.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/prefix_cache.py#L753-L768">#L753-L768</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.prefix_cache.blockawareprefixcache._extract_block_tensor_slice method vllm_mlx.prefix_cache.blockawareprefixcache._extract_block_tensor_slice(cache_data: list[dict[str, any]], start_idx: int, end_idx: int, total_tokens: int) -&gt; optional[list[optional[dict[str, any]]]] extract per-layer cache data for a single block.">
<td><a href="../api/vllm_mlx/prefix_cache/#contract-vllm_mlx.prefix_cache.BlockAwarePrefixCache._extract_block_tensor_slice"><code>vllm_mlx.prefix_cache.BlockAwarePrefixCache._extract_block_tensor_slice</code></a></td>
<td>method</td>
<td><code>vllm_mlx.prefix_cache.BlockAwarePrefixCache._extract_block_tensor_slice(cache_data: List[Dict[str, Any]], start_idx: int, end_idx: int, total_tokens: int) -&gt; Optional[List[Optional[Dict[str, Any]]]]</code></td>
<td>Extract per-layer cache data for a single block.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/prefix_cache.py#L630-L702">#L630-L702</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.prefix_cache.blockawareprefixcache._find_best_prefix_match method vllm_mlx.prefix_cache.blockawareprefixcache._find_best_prefix_match(tokens: list[int]) -&gt; optional[tuple[list[int], list[int]]] find best matching prefix in the index.">
<td><a href="../api/vllm_mlx/prefix_cache/#contract-vllm_mlx.prefix_cache.BlockAwarePrefixCache._find_best_prefix_match"><code>vllm_mlx.prefix_cache.BlockAwarePrefixCache._find_best_prefix_match</code></a></td>
<td>method</td>
<td><code>vllm_mlx.prefix_cache.BlockAwarePrefixCache._find_best_prefix_match(tokens: List[int]) -&gt; Optional[Tuple[List[int], List[int]]]</code></td>
<td>Find best matching prefix in the index.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/prefix_cache.py#L969-L992">#L969-L992</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.prefix_cache.blockawareprefixcache._slice_concat_cache_state method vllm_mlx.prefix_cache.blockawareprefixcache._slice_concat_cache_state(state: tuple[any, ...] | list[any], start_idx: int, end_idx: int) -&gt; tuple[any, ...] | list[any] slice a sequence-backed cache state across the token axis.">
<td><a href="../api/vllm_mlx/prefix_cache/#contract-vllm_mlx.prefix_cache.BlockAwarePrefixCache._slice_concat_cache_state"><code>vllm_mlx.prefix_cache.BlockAwarePrefixCache._slice_concat_cache_state</code></a></td>
<td>method</td>
<td><code>vllm_mlx.prefix_cache.BlockAwarePrefixCache._slice_concat_cache_state(state: Tuple[Any, ...] | List[Any], start_idx: int, end_idx: int) -&gt; Tuple[Any, ...] | List[Any]</code></td>
<td>Slice a sequence-backed cache state across the token axis.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/prefix_cache.py#L727-L751">#L727-L751</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="nested function" data-symbol-search="vllm_mlx.prefix_cache.blockawareprefixcache._slice_concat_cache_state._slice_tensor nested function vllm_mlx.prefix_cache.blockawareprefixcache._slice_concat_cache_state._slice_tensor(tensor: any) -&gt; any nested function `blockawareprefixcache._slice_concat_cache_state._slice_tensor` calls `slice`, `len`, `tuple`; returns `tensor[tuple(slices)]`.">
<td><a href="../api/vllm_mlx/prefix_cache/#contract-vllm_mlx.prefix_cache.BlockAwarePrefixCache._slice_concat_cache_state._slice_tensor"><code>vllm_mlx.prefix_cache.BlockAwarePrefixCache._slice_concat_cache_state._slice_tensor</code></a></td>
<td>nested function</td>
<td><code>vllm_mlx.prefix_cache.BlockAwarePrefixCache._slice_concat_cache_state._slice_tensor(tensor: Any) -&gt; Any</code></td>
<td>Nested Function `BlockAwarePrefixCache._slice_concat_cache_state._slice_tensor` calls `slice`, `len`, `tuple`; returns `tensor[tuple(slices)]`.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/prefix_cache.py#L745-L748">#L745-L748</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.prefix_cache.blockawareprefixcache._update_prefix_index method vllm_mlx.prefix_cache.blockawareprefixcache._update_prefix_index(tokens: list[int], block_ids: list[int]) -&gt; none update prefix index with new token sequence.">
<td><a href="../api/vllm_mlx/prefix_cache/#contract-vllm_mlx.prefix_cache.BlockAwarePrefixCache._update_prefix_index"><code>vllm_mlx.prefix_cache.BlockAwarePrefixCache._update_prefix_index</code></a></td>
<td>method</td>
<td><code>vllm_mlx.prefix_cache.BlockAwarePrefixCache._update_prefix_index(tokens: List[int], block_ids: List[int]) -&gt; None</code></td>
<td>Update prefix index with new token sequence.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/prefix_cache.py#L994-L1005">#L994-L1005</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.prefix_cache.blockawareprefixcache.clear method vllm_mlx.prefix_cache.blockawareprefixcache.clear() -&gt; none clear all cached data.">
<td><a href="../api/vllm_mlx/prefix_cache/#contract-vllm_mlx.prefix_cache.BlockAwarePrefixCache.clear"><code>vllm_mlx.prefix_cache.BlockAwarePrefixCache.clear</code></a></td>
<td>method</td>
<td><code>vllm_mlx.prefix_cache.BlockAwarePrefixCache.clear() -&gt; None</code></td>
<td>Clear all cached data.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/prefix_cache.py#L1030-L1035">#L1030-L1035</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.prefix_cache.blockawareprefixcache.fetch_cache method vllm_mlx.prefix_cache.blockawareprefixcache.fetch_cache(request_id: str, tokens: list[int]) -&gt; tuple[optional[blocktable], list[int]] find cached prefix blocks for the given tokens.">
<td><a href="../api/vllm_mlx/prefix_cache/#contract-vllm_mlx.prefix_cache.BlockAwarePrefixCache.fetch_cache"><code>vllm_mlx.prefix_cache.BlockAwarePrefixCache.fetch_cache</code></a></td>
<td>method</td>
<td><code>vllm_mlx.prefix_cache.BlockAwarePrefixCache.fetch_cache(request_id: str, tokens: List[int]) -&gt; Tuple[Optional[BlockTable], List[int]]</code></td>
<td>Find cached prefix blocks for the given tokens.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/prefix_cache.py#L428-L502">#L428-L502</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.prefix_cache.blockawareprefixcache.fork_cache method vllm_mlx.prefix_cache.blockawareprefixcache.fork_cache(source_request_id: str, new_request_id: str) -&gt; optional[blocktable] fork cache from one request to another (cow).">
<td><a href="../api/vllm_mlx/prefix_cache/#contract-vllm_mlx.prefix_cache.BlockAwarePrefixCache.fork_cache"><code>vllm_mlx.prefix_cache.BlockAwarePrefixCache.fork_cache</code></a></td>
<td>method</td>
<td><code>vllm_mlx.prefix_cache.BlockAwarePrefixCache.fork_cache(source_request_id: str, new_request_id: str) -&gt; Optional[BlockTable]</code></td>
<td>Fork cache from one request to another (COW).</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/prefix_cache.py#L813-L847">#L813-L847</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.prefix_cache.blockawareprefixcache.get_cache_for_generation method vllm_mlx.prefix_cache.blockawareprefixcache.get_cache_for_generation(request_id: str) -&gt; tuple[optional[list[any]], bool] get cache data for generation, applying cow if needed.">
<td><a href="../api/vllm_mlx/prefix_cache/#contract-vllm_mlx.prefix_cache.BlockAwarePrefixCache.get_cache_for_generation"><code>vllm_mlx.prefix_cache.BlockAwarePrefixCache.get_cache_for_generation</code></a></td>
<td>method</td>
<td><code>vllm_mlx.prefix_cache.BlockAwarePrefixCache.get_cache_for_generation(request_id: str) -&gt; Tuple[Optional[List[Any]], bool]</code></td>
<td>Get cache data for generation, applying COW if needed.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/prefix_cache.py#L770-L799">#L770-L799</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.prefix_cache.blockawareprefixcache.get_stats method vllm_mlx.prefix_cache.blockawareprefixcache.get_stats() -&gt; dict[str, any] get cache statistics.">
<td><a href="../api/vllm_mlx/prefix_cache/#contract-vllm_mlx.prefix_cache.BlockAwarePrefixCache.get_stats"><code>vllm_mlx.prefix_cache.BlockAwarePrefixCache.get_stats</code></a></td>
<td>method</td>
<td><code>vllm_mlx.prefix_cache.BlockAwarePrefixCache.get_stats() -&gt; Dict[str, Any]</code></td>
<td>Get cache statistics.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/prefix_cache.py#L1007-L1021">#L1007-L1021</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.prefix_cache.blockawareprefixcache.reconstruct_cache method vllm_mlx.prefix_cache.blockawareprefixcache.reconstruct_cache(block_table: blocktable) -&gt; optional[list[any]] reconstruct cache objects from stored block tensor data.">
<td><a href="../api/vllm_mlx/prefix_cache/#contract-vllm_mlx.prefix_cache.BlockAwarePrefixCache.reconstruct_cache"><code>vllm_mlx.prefix_cache.BlockAwarePrefixCache.reconstruct_cache</code></a></td>
<td>method</td>
<td><code>vllm_mlx.prefix_cache.BlockAwarePrefixCache.reconstruct_cache(block_table: BlockTable) -&gt; Optional[List[Any]]</code></td>
<td>Reconstruct cache objects from stored block tensor data.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/prefix_cache.py#L849-L967">#L849-L967</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.prefix_cache.blockawareprefixcache.release_cache method vllm_mlx.prefix_cache.blockawareprefixcache.release_cache(request_id: str) -&gt; none release cache blocks for a completed request.">
<td><a href="../api/vllm_mlx/prefix_cache/#contract-vllm_mlx.prefix_cache.BlockAwarePrefixCache.release_cache"><code>vllm_mlx.prefix_cache.BlockAwarePrefixCache.release_cache</code></a></td>
<td>method</td>
<td><code>vllm_mlx.prefix_cache.BlockAwarePrefixCache.release_cache(request_id: str) -&gt; None</code></td>
<td>Release cache blocks for a completed request.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/prefix_cache.py#L801-L811">#L801-L811</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.prefix_cache.blockawareprefixcache.reset_stats method vllm_mlx.prefix_cache.blockawareprefixcache.reset_stats() -&gt; none reset statistics.">
<td><a href="../api/vllm_mlx/prefix_cache/#contract-vllm_mlx.prefix_cache.BlockAwarePrefixCache.reset_stats"><code>vllm_mlx.prefix_cache.BlockAwarePrefixCache.reset_stats</code></a></td>
<td>method</td>
<td><code>vllm_mlx.prefix_cache.BlockAwarePrefixCache.reset_stats() -&gt; None</code></td>
<td>Reset statistics.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/prefix_cache.py#L1023-L1028">#L1023-L1028</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.prefix_cache.blockawareprefixcache.store_cache method vllm_mlx.prefix_cache.blockawareprefixcache.store_cache(request_id: str, tokens: list[int], cache_data: list[any]) -&gt; optional[blocktable] store computed cache for future reuse.">
<td><a href="../api/vllm_mlx/prefix_cache/#contract-vllm_mlx.prefix_cache.BlockAwarePrefixCache.store_cache"><code>vllm_mlx.prefix_cache.BlockAwarePrefixCache.store_cache</code></a></td>
<td>method</td>
<td><code>vllm_mlx.prefix_cache.BlockAwarePrefixCache.store_cache(request_id: str, tokens: List[int], cache_data: List[Any]) -&gt; Optional[BlockTable]</code></td>
<td>Store computed cache for future reuse.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/prefix_cache.py#L504-L628">#L504-L628</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="class" data-symbol-search="vllm_mlx.prefix_cache.blockcacheentry class vllm_mlx.prefix_cache.blockcacheentry(block_table: blocktable, cache_data: list[any], last_access: float) entry mapping a token sequence to cache blocks.">
<td><a href="../api/vllm_mlx/prefix_cache/#contract-vllm_mlx.prefix_cache.BlockCacheEntry"><code>vllm_mlx.prefix_cache.BlockCacheEntry</code></a></td>
<td>class</td>
<td><code>vllm_mlx.prefix_cache.BlockCacheEntry(block_table: BlockTable, cache_data: List[Any], last_access: float)</code></td>
<td>Entry mapping a token sequence to cache blocks.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/prefix_cache.py#L364-L369">#L364-L369</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="class" data-symbol-search="vllm_mlx.prefix_cache.cacheentry class vllm_mlx.prefix_cache.cacheentry(prompt_cache: list[any], count: int) entry in the prefix cache.">
<td><a href="../api/vllm_mlx/prefix_cache/#contract-vllm_mlx.prefix_cache.CacheEntry"><code>vllm_mlx.prefix_cache.CacheEntry</code></a></td>
<td>class</td>
<td><code>vllm_mlx.prefix_cache.CacheEntry(prompt_cache: List[Any], count: int)</code></td>
<td>Entry in the prefix cache.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/prefix_cache.py#L33-L37">#L33-L37</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="class" data-symbol-search="vllm_mlx.prefix_cache.prefixcachemanager class vllm_mlx.prefix_cache.prefixcachemanager(model: any, max_entries: int = 100) manages prefix caching for vllm-mlx using a trie-based lru cache.">
<td><a href="../api/vllm_mlx/prefix_cache/#contract-vllm_mlx.prefix_cache.PrefixCacheManager"><code>vllm_mlx.prefix_cache.PrefixCacheManager</code></a></td>
<td>class</td>
<td><code>vllm_mlx.prefix_cache.PrefixCacheManager(model: Any, max_entries: int = 100)</code></td>
<td>Manages prefix caching for vllm-mlx using a trie-based LRU cache.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/prefix_cache.py#L69-L355">#L69-L355</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.prefix_cache.prefixcachemanager.__init__ method vllm_mlx.prefix_cache.prefixcachemanager.__init__(model: any, max_entries: int = 100) -&gt; not annotated initialize the prefix cache manager.">
<td><a href="../api/vllm_mlx/prefix_cache/#contract-vllm_mlx.prefix_cache.PrefixCacheManager.__init__"><code>vllm_mlx.prefix_cache.PrefixCacheManager.__init__</code></a></td>
<td>method</td>
<td><code>vllm_mlx.prefix_cache.PrefixCacheManager.__init__(model: Any, max_entries: int = 100) -&gt; not annotated</code></td>
<td>Initialize the prefix cache manager.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/prefix_cache.py#L94-L115">#L94-L115</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.prefix_cache.prefixcachemanager.__len__ method vllm_mlx.prefix_cache.prefixcachemanager.__len__() -&gt; int return number of cached entries.">
<td><a href="../api/vllm_mlx/prefix_cache/#contract-vllm_mlx.prefix_cache.PrefixCacheManager.__len__"><code>vllm_mlx.prefix_cache.PrefixCacheManager.__len__</code></a></td>
<td>method</td>
<td><code>vllm_mlx.prefix_cache.PrefixCacheManager.__len__() -&gt; int</code></td>
<td>Return number of cached entries.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/prefix_cache.py#L353-L355">#L353-L355</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.prefix_cache.prefixcachemanager._can_trim_cache method vllm_mlx.prefix_cache.prefixcachemanager._can_trim_cache(prompt_cache: list[any]) -&gt; bool check if cache can be trimmed.">
<td><a href="../api/vllm_mlx/prefix_cache/#contract-vllm_mlx.prefix_cache.PrefixCacheManager._can_trim_cache"><code>vllm_mlx.prefix_cache.PrefixCacheManager._can_trim_cache</code></a></td>
<td>method</td>
<td><code>vllm_mlx.prefix_cache.PrefixCacheManager._can_trim_cache(prompt_cache: List[Any]) -&gt; bool</code></td>
<td>Check if cache can be trimmed.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/prefix_cache.py#L316-L330">#L316-L330</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.prefix_cache.prefixcachemanager._delete_cache method vllm_mlx.prefix_cache.prefixcachemanager._delete_cache(model_key: any, tokens: list[int]) -&gt; none delete cache entry and clean up empty trie branches.">
<td><a href="../api/vllm_mlx/prefix_cache/#contract-vllm_mlx.prefix_cache.PrefixCacheManager._delete_cache"><code>vllm_mlx.prefix_cache.PrefixCacheManager._delete_cache</code></a></td>
<td>method</td>
<td><code>vllm_mlx.prefix_cache.PrefixCacheManager._delete_cache(model_key: Any, tokens: List[int]) -&gt; None</code></td>
<td>Delete cache entry and clean up empty trie branches.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/prefix_cache.py#L290-L314">#L290-L314</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.prefix_cache.prefixcachemanager._evict_lru method vllm_mlx.prefix_cache.prefixcachemanager._evict_lru() -&gt; none evict least recently used entry — o(1) popitem from ordereddict.">
<td><a href="../api/vllm_mlx/prefix_cache/#contract-vllm_mlx.prefix_cache.PrefixCacheManager._evict_lru"><code>vllm_mlx.prefix_cache.PrefixCacheManager._evict_lru</code></a></td>
<td>method</td>
<td><code>vllm_mlx.prefix_cache.PrefixCacheManager._evict_lru() -&gt; None</code></td>
<td>Evict least recently used entry — O(1) popitem from OrderedDict.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/prefix_cache.py#L281-L288">#L281-L288</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.prefix_cache.prefixcachemanager._get_cache_entry method vllm_mlx.prefix_cache.prefixcachemanager._get_cache_entry(tokens: list[int]) -&gt; optional[cacheentry] get cache entry for given tokens.">
<td><a href="../api/vllm_mlx/prefix_cache/#contract-vllm_mlx.prefix_cache.PrefixCacheManager._get_cache_entry"><code>vllm_mlx.prefix_cache.PrefixCacheManager._get_cache_entry</code></a></td>
<td>method</td>
<td><code>vllm_mlx.prefix_cache.PrefixCacheManager._get_cache_entry(tokens: List[int]) -&gt; Optional[CacheEntry]</code></td>
<td>Get cache entry for given tokens.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/prefix_cache.py#L260-L271">#L260-L271</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.prefix_cache.prefixcachemanager._search method vllm_mlx.prefix_cache.prefixcachemanager._search(tokens: list[int]) -&gt; tuple[optional[list[int]], optional[list[int]], optional[list[int]], int] search for cached prefix matching tokens.">
<td><a href="../api/vllm_mlx/prefix_cache/#contract-vllm_mlx.prefix_cache.PrefixCacheManager._search"><code>vllm_mlx.prefix_cache.PrefixCacheManager._search</code></a></td>
<td>method</td>
<td><code>vllm_mlx.prefix_cache.PrefixCacheManager._search(tokens: List[int]) -&gt; Tuple[Optional[List[int]], Optional[List[int]], Optional[List[int]], int]</code></td>
<td>Search for cached prefix matching tokens.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/prefix_cache.py#L117-L164">#L117-L164</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.prefix_cache.prefixcachemanager._touch_lru method vllm_mlx.prefix_cache.prefixcachemanager._touch_lru(tokens_tuple: tuple) -&gt; none move entry to most-recently-used position — o(1) with ordereddict.">
<td><a href="../api/vllm_mlx/prefix_cache/#contract-vllm_mlx.prefix_cache.PrefixCacheManager._touch_lru"><code>vllm_mlx.prefix_cache.PrefixCacheManager._touch_lru</code></a></td>
<td>method</td>
<td><code>vllm_mlx.prefix_cache.PrefixCacheManager._touch_lru(tokens_tuple: tuple) -&gt; None</code></td>
<td>Move entry to most-recently-used position — O(1) with OrderedDict.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/prefix_cache.py#L273-L279">#L273-L279</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.prefix_cache.prefixcachemanager._trim_cache method vllm_mlx.prefix_cache.prefixcachemanager._trim_cache(prompt_cache: list[any], num_tokens: int) -&gt; list[any] trim cache by removing num_tokens from the end.">
<td><a href="../api/vllm_mlx/prefix_cache/#contract-vllm_mlx.prefix_cache.PrefixCacheManager._trim_cache"><code>vllm_mlx.prefix_cache.PrefixCacheManager._trim_cache</code></a></td>
<td>method</td>
<td><code>vllm_mlx.prefix_cache.PrefixCacheManager._trim_cache(prompt_cache: List[Any], num_tokens: int) -&gt; List[Any]</code></td>
<td>Trim cache by removing num_tokens from the end.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/prefix_cache.py#L332-L337">#L332-L337</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.prefix_cache.prefixcachemanager.clear method vllm_mlx.prefix_cache.prefixcachemanager.clear() -&gt; none clear all cached entries.">
<td><a href="../api/vllm_mlx/prefix_cache/#contract-vllm_mlx.prefix_cache.PrefixCacheManager.clear"><code>vllm_mlx.prefix_cache.PrefixCacheManager.clear</code></a></td>
<td>method</td>
<td><code>vllm_mlx.prefix_cache.PrefixCacheManager.clear() -&gt; None</code></td>
<td>Clear all cached entries.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/prefix_cache.py#L347-L351">#L347-L351</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.prefix_cache.prefixcachemanager.fetch_cache method vllm_mlx.prefix_cache.prefixcachemanager.fetch_cache(tokens: list[int]) -&gt; tuple[optional[list[any]], list[int]] find cached prefix for the given tokens.">
<td><a href="../api/vllm_mlx/prefix_cache/#contract-vllm_mlx.prefix_cache.PrefixCacheManager.fetch_cache"><code>vllm_mlx.prefix_cache.PrefixCacheManager.fetch_cache</code></a></td>
<td>method</td>
<td><code>vllm_mlx.prefix_cache.PrefixCacheManager.fetch_cache(tokens: List[int]) -&gt; Tuple[Optional[List[Any]], List[int]]</code></td>
<td>Find cached prefix for the given tokens.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/prefix_cache.py#L166-L221">#L166-L221</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.prefix_cache.prefixcachemanager.get_stats method vllm_mlx.prefix_cache.prefixcachemanager.get_stats() -&gt; dict[str, any] get cache statistics.">
<td><a href="../api/vllm_mlx/prefix_cache/#contract-vllm_mlx.prefix_cache.PrefixCacheManager.get_stats"><code>vllm_mlx.prefix_cache.PrefixCacheManager.get_stats</code></a></td>
<td>method</td>
<td><code>vllm_mlx.prefix_cache.PrefixCacheManager.get_stats() -&gt; Dict[str, Any]</code></td>
<td>Get cache statistics.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/prefix_cache.py#L339-L341">#L339-L341</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.prefix_cache.prefixcachemanager.reset_stats method vllm_mlx.prefix_cache.prefixcachemanager.reset_stats() -&gt; none reset statistics.">
<td><a href="../api/vllm_mlx/prefix_cache/#contract-vllm_mlx.prefix_cache.PrefixCacheManager.reset_stats"><code>vllm_mlx.prefix_cache.PrefixCacheManager.reset_stats</code></a></td>
<td>method</td>
<td><code>vllm_mlx.prefix_cache.PrefixCacheManager.reset_stats() -&gt; None</code></td>
<td>Reset statistics.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/prefix_cache.py#L343-L345">#L343-L345</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.prefix_cache.prefixcachemanager.store_cache method vllm_mlx.prefix_cache.prefixcachemanager.store_cache(tokens: list[int], prompt_cache: list[any]) -&gt; none store computed cache for future reuse.">
<td><a href="../api/vllm_mlx/prefix_cache/#contract-vllm_mlx.prefix_cache.PrefixCacheManager.store_cache"><code>vllm_mlx.prefix_cache.PrefixCacheManager.store_cache</code></a></td>
<td>method</td>
<td><code>vllm_mlx.prefix_cache.PrefixCacheManager.store_cache(tokens: List[int], prompt_cache: List[Any]) -&gt; None</code></td>
<td>Store computed cache for future reuse.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/prefix_cache.py#L223-L258">#L223-L258</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="class" data-symbol-search="vllm_mlx.prefix_cache.prefixcachestats class vllm_mlx.prefix_cache.prefixcachestats(hits: int = 0, misses: int = 0, tokens_saved: int = 0, total_queries: int = 0, evictions: int = 0) statistics for prefix cache performance.">
<td><a href="../api/vllm_mlx/prefix_cache/#contract-vllm_mlx.prefix_cache.PrefixCacheStats"><code>vllm_mlx.prefix_cache.PrefixCacheStats</code></a></td>
<td>class</td>
<td><code>vllm_mlx.prefix_cache.PrefixCacheStats(hits: int = 0, misses: int = 0, tokens_saved: int = 0, total_queries: int = 0, evictions: int = 0)</code></td>
<td>Statistics for prefix cache performance.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/prefix_cache.py#L41-L66">#L41-L66</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.prefix_cache.prefixcachestats.hit_rate method vllm_mlx.prefix_cache.prefixcachestats.hit_rate() -&gt; float calculate cache hit rate.">
<td><a href="../api/vllm_mlx/prefix_cache/#contract-vllm_mlx.prefix_cache.PrefixCacheStats.hit_rate"><code>vllm_mlx.prefix_cache.PrefixCacheStats.hit_rate</code></a></td>
<td>method</td>
<td><code>vllm_mlx.prefix_cache.PrefixCacheStats.hit_rate() -&gt; float</code></td>
<td>Calculate cache hit rate.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/prefix_cache.py#L51-L55">#L51-L55</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.prefix_cache.prefixcachestats.to_dict method vllm_mlx.prefix_cache.prefixcachestats.to_dict() -&gt; dict[str, any] convert stats to dictionary.">
<td><a href="../api/vllm_mlx/prefix_cache/#contract-vllm_mlx.prefix_cache.PrefixCacheStats.to_dict"><code>vllm_mlx.prefix_cache.PrefixCacheStats.to_dict</code></a></td>
<td>method</td>
<td><code>vllm_mlx.prefix_cache.PrefixCacheStats.to_dict() -&gt; Dict[str, Any]</code></td>
<td>Convert stats to dictionary.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/prefix_cache.py#L57-L66">#L57-L66</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.prompt_warmup._build_strict_prefix_string function vllm_mlx.prompt_warmup._build_strict_prefix_string(tokenizer: any, messages: list[dict[str, any]], enable_thinking: bool = true) -&gt; str | none build a string prefix that is a prefix of any real request&#x27;s rendered chat template for the same system and empty chat history.">
<td><a href="../api/vllm_mlx/prompt_warmup/#contract-vllm_mlx.prompt_warmup._build_strict_prefix_string"><code>vllm_mlx.prompt_warmup._build_strict_prefix_string</code></a></td>
<td>function</td>
<td><code>vllm_mlx.prompt_warmup._build_strict_prefix_string(tokenizer: Any, messages: list[dict[str, Any]], enable_thinking: bool = True) -&gt; str | None</code></td>
<td>Build a STRING prefix that is a prefix of any real request&#x27;s rendered chat template for the same system and empty chat history.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/prompt_warmup.py#L94-L176">#L94-L176</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="nested function" data-symbol-search="vllm_mlx.prompt_warmup._build_strict_prefix_string._with_user nested function vllm_mlx.prompt_warmup._build_strict_prefix_string._with_user(user_content: str) -&gt; list[dict[str, any]] nested function `_build_strict_prefix_string._with_user` calls `dict`, `msgs[-1].get`; returns `msgs`.">
<td><a href="../api/vllm_mlx/prompt_warmup/#contract-vllm_mlx.prompt_warmup._build_strict_prefix_string._with_user"><code>vllm_mlx.prompt_warmup._build_strict_prefix_string._with_user</code></a></td>
<td>nested function</td>
<td><code>vllm_mlx.prompt_warmup._build_strict_prefix_string._with_user(user_content: str) -&gt; list[dict[str, Any]]</code></td>
<td>Nested Function `_build_strict_prefix_string._with_user` calls `dict`, `msgs[-1].get`; returns `msgs`.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/prompt_warmup.py#L121-L127">#L121-L127</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.prompt_warmup._ensure_user_terminator function vllm_mlx.prompt_warmup._ensure_user_terminator(messages: list[dict[str, any]]) -&gt; list[dict[str, any]] ensure the message list ends with a user message.">
<td><a href="../api/vllm_mlx/prompt_warmup/#contract-vllm_mlx.prompt_warmup._ensure_user_terminator"><code>vllm_mlx.prompt_warmup._ensure_user_terminator</code></a></td>
<td>function</td>
<td><code>vllm_mlx.prompt_warmup._ensure_user_terminator(messages: list[dict[str, Any]]) -&gt; list[dict[str, Any]]</code></td>
<td>Ensure the message list ends with a user message.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/prompt_warmup.py#L79-L91">#L79-L91</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.prompt_warmup.load_warmup_file function vllm_mlx.prompt_warmup.load_warmup_file(path: str) -&gt; list[list[dict[str, any]]] load and validate a warm-up prompts json file.">
<td><a href="../api/vllm_mlx/prompt_warmup/#contract-vllm_mlx.prompt_warmup.load_warmup_file"><code>vllm_mlx.prompt_warmup.load_warmup_file</code></a></td>
<td>function</td>
<td><code>vllm_mlx.prompt_warmup.load_warmup_file(path: str) -&gt; list[list[dict[str, Any]]]</code></td>
<td>Load and validate a warm-up prompts JSON file.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/prompt_warmup.py#L41-L76">#L41-L76</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.prompt_warmup.warm_prefix_cache function async vllm_mlx.prompt_warmup.warm_prefix_cache(engine: any, prompts: list[list[dict[str, any]]], *, max_tokens: int = 1) -&gt; dict[str, any] run each prompt through the engine to populate the prefix cache.">
<td><a href="../api/vllm_mlx/prompt_warmup/#contract-vllm_mlx.prompt_warmup.warm_prefix_cache"><code>vllm_mlx.prompt_warmup.warm_prefix_cache</code></a></td>
<td>function</td>
<td><code>async vllm_mlx.prompt_warmup.warm_prefix_cache(engine: Any, prompts: list[list[dict[str, Any]]], *, max_tokens: int = 1) -&gt; dict[str, Any]</code></td>
<td>Run each prompt through the engine to populate the prefix cache.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/prompt_warmup.py#L179-L275">#L179-L275</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="nested function" data-symbol-search="vllm_mlx.prompt_warmup.warm_prefix_cache._one_chat nested function async vllm_mlx.prompt_warmup.warm_prefix_cache._one_chat(idx: int, messages: list[dict[str, any]]) -&gt; tuple[int, int, str | none] nested function `warm_prefix_cache._one_chat` calls `_ensure_user_terminator`, `engine.stream_chat`, `int`, `type`; has 3 explicit return paths.">
<td><a href="../api/vllm_mlx/prompt_warmup/#contract-vllm_mlx.prompt_warmup.warm_prefix_cache._one_chat"><code>vllm_mlx.prompt_warmup.warm_prefix_cache._one_chat</code></a></td>
<td>nested function</td>
<td><code>async vllm_mlx.prompt_warmup.warm_prefix_cache._one_chat(idx: int, messages: list[dict[str, Any]]) -&gt; tuple[int, int, str | None]</code></td>
<td>Nested Function `warm_prefix_cache._one_chat` calls `_ensure_user_terminator`, `engine.stream_chat`, `int`, `type`; has 3 explicit return paths.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/prompt_warmup.py#L237-L253">#L237-L253</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="nested function" data-symbol-search="vllm_mlx.prompt_warmup.warm_prefix_cache._one_strict nested function async vllm_mlx.prompt_warmup.warm_prefix_cache._one_strict(idx: int, messages: list[dict[str, any]]) -&gt; tuple[int, int, str | none] nested function `warm_prefix_cache._one_strict` calls `_build_strict_prefix_string`, `_one_chat`, `engine.stream_generate`, `int`; awaits asynchronous work; has 3 explicit return paths.">
<td><a href="../api/vllm_mlx/prompt_warmup/#contract-vllm_mlx.prompt_warmup.warm_prefix_cache._one_strict"><code>vllm_mlx.prompt_warmup.warm_prefix_cache._one_strict</code></a></td>
<td>nested function</td>
<td><code>async vllm_mlx.prompt_warmup.warm_prefix_cache._one_strict(idx: int, messages: list[dict[str, Any]]) -&gt; tuple[int, int, str | None]</code></td>
<td>Nested Function `warm_prefix_cache._one_strict` calls `_build_strict_prefix_string`, `_one_chat`, `engine.stream_generate`, `int`; awaits asynchronous work; has 3 explicit return paths.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/prompt_warmup.py#L217-L235">#L217-L235</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.reasoning._register_builtin_parsers function vllm_mlx.reasoning._register_builtin_parsers() -&gt; not annotated register built-in parsers.">
<td><a href="../api/vllm_mlx/reasoning/#contract-vllm_mlx.reasoning._register_builtin_parsers"><code>vllm_mlx.reasoning._register_builtin_parsers</code></a></td>
<td>function</td>
<td><code>vllm_mlx.reasoning._register_builtin_parsers() -&gt; not annotated</code></td>
<td>Register built-in parsers.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/reasoning/__init__.py#L76-L94">#L76-L94</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="class" data-symbol-search="vllm_mlx.reasoning.base.deltamessage class vllm_mlx.reasoning.base.deltamessage(role: str | none = none, content: str | none = none, reasoning: str | none = none) delta message for streaming reasoning output.">
<td><a href="../api/vllm_mlx/reasoning/base/#contract-vllm_mlx.reasoning.base.DeltaMessage"><code>vllm_mlx.reasoning.base.DeltaMessage</code></a></td>
<td>class</td>
<td><code>vllm_mlx.reasoning.base.DeltaMessage(role: str | None = None, content: str | None = None, reasoning: str | None = None)</code></td>
<td>Delta message for streaming reasoning output.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/reasoning/base.py#L15-L33">#L15-L33</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.reasoning.base.deltamessage.reasoning_content method vllm_mlx.reasoning.base.deltamessage.reasoning_content() -&gt; str | none deprecated: use reasoning instead.">
<td><a href="../api/vllm_mlx/reasoning/base/#contract-vllm_mlx.reasoning.base.DeltaMessage.reasoning_content"><code>vllm_mlx.reasoning.base.DeltaMessage.reasoning_content</code></a></td>
<td>method</td>
<td><code>vllm_mlx.reasoning.base.DeltaMessage.reasoning_content() -&gt; str | None</code></td>
<td>Deprecated: use reasoning instead.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/reasoning/base.py#L31-L33">#L31-L33</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="class" data-symbol-search="vllm_mlx.reasoning.base.reasoningparser class vllm_mlx.reasoning.base.reasoningparser(tokenizer: any | none = none) abstract base class for reasoning content extraction.">
<td><a href="../api/vllm_mlx/reasoning/base/#contract-vllm_mlx.reasoning.base.ReasoningParser"><code>vllm_mlx.reasoning.base.ReasoningParser</code></a></td>
<td>class</td>
<td><code>vllm_mlx.reasoning.base.ReasoningParser(tokenizer: Any | None = None)</code></td>
<td>Abstract base class for reasoning content extraction.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/reasoning/base.py#L36-L126">#L36-L126</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.reasoning.base.reasoningparser.__init__ method vllm_mlx.reasoning.base.reasoningparser.__init__(tokenizer: any | none = none) -&gt; not annotated initialize parser with optional tokenizer.">
<td><a href="../api/vllm_mlx/reasoning/base/#contract-vllm_mlx.reasoning.base.ReasoningParser.__init__"><code>vllm_mlx.reasoning.base.ReasoningParser.__init__</code></a></td>
<td>method</td>
<td><code>vllm_mlx.reasoning.base.ReasoningParser.__init__(tokenizer: Any | None = None) -&gt; not annotated</code></td>
<td>Initialize parser with optional tokenizer.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/reasoning/base.py#L49-L57">#L49-L57</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.reasoning.base.reasoningparser.extract_reasoning method vllm_mlx.reasoning.base.reasoningparser.extract_reasoning(model_output: str) -&gt; tuple[str | none, str | none] extract reasoning content from complete model output.">
<td><a href="../api/vllm_mlx/reasoning/base/#contract-vllm_mlx.reasoning.base.ReasoningParser.extract_reasoning"><code>vllm_mlx.reasoning.base.ReasoningParser.extract_reasoning</code></a></td>
<td>method</td>
<td><code>vllm_mlx.reasoning.base.ReasoningParser.extract_reasoning(model_output: str) -&gt; tuple[str | None, str | None]</code></td>
<td>Extract reasoning content from complete model output.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/reasoning/base.py#L60-L74">#L60-L74</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.reasoning.base.reasoningparser.extract_reasoning_streaming method vllm_mlx.reasoning.base.reasoningparser.extract_reasoning_streaming(previous_text: str, current_text: str, delta_text: str) -&gt; deltamessage | none extract reasoning from streaming delta.">
<td><a href="../api/vllm_mlx/reasoning/base/#contract-vllm_mlx.reasoning.base.ReasoningParser.extract_reasoning_streaming"><code>vllm_mlx.reasoning.base.ReasoningParser.extract_reasoning_streaming</code></a></td>
<td>method</td>
<td><code>vllm_mlx.reasoning.base.ReasoningParser.extract_reasoning_streaming(previous_text: str, current_text: str, delta_text: str) -&gt; DeltaMessage | None</code></td>
<td>Extract reasoning from streaming delta.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/reasoning/base.py#L77-L100">#L77-L100</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.reasoning.base.reasoningparser.finalize_stream method vllm_mlx.reasoning.base.reasoningparser.finalize_stream() -&gt; deltamessage | none finalize streaming state at end of stream.">
<td><a href="../api/vllm_mlx/reasoning/base/#contract-vllm_mlx.reasoning.base.ReasoningParser.finalize_stream"><code>vllm_mlx.reasoning.base.ReasoningParser.finalize_stream</code></a></td>
<td>method</td>
<td><code>vllm_mlx.reasoning.base.ReasoningParser.finalize_stream() -&gt; DeltaMessage | None</code></td>
<td>Finalize streaming state at end of stream.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/reasoning/base.py#L112-L126">#L112-L126</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.reasoning.base.reasoningparser.reset_state method vllm_mlx.reasoning.base.reasoningparser.reset_state() -&gt; not annotated reset any internal state for a new request.">
<td><a href="../api/vllm_mlx/reasoning/base/#contract-vllm_mlx.reasoning.base.ReasoningParser.reset_state"><code>vllm_mlx.reasoning.base.ReasoningParser.reset_state</code></a></td>
<td>method</td>
<td><code>vllm_mlx.reasoning.base.ReasoningParser.reset_state() -&gt; not annotated</code></td>
<td>Reset any internal state for a new request.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/reasoning/base.py#L102-L110">#L102-L110</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="class" data-symbol-search="vllm_mlx.reasoning.deepseek_r1_parser.deepseekr1reasoningparser class vllm_mlx.reasoning.deepseek_r1_parser.deepseekr1reasoningparser() reasoning parser for deepseek-r1 model.">
<td><a href="../api/vllm_mlx/reasoning/deepseek_r1_parser/#contract-vllm_mlx.reasoning.deepseek_r1_parser.DeepSeekR1ReasoningParser"><code>vllm_mlx.reasoning.deepseek_r1_parser.DeepSeekR1ReasoningParser</code></a></td>
<td>class</td>
<td><code>vllm_mlx.reasoning.deepseek_r1_parser.DeepSeekR1ReasoningParser()</code></td>
<td>Reasoning parser for DeepSeek-R1 model.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/reasoning/deepseek_r1_parser.py#L14-L114">#L14-L114</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.reasoning.deepseek_r1_parser.deepseekr1reasoningparser.end_token method vllm_mlx.reasoning.deepseek_r1_parser.deepseekr1reasoningparser.end_token() -&gt; str return the marker that closes a deepseek reasoning span.">
<td><a href="../api/vllm_mlx/reasoning/deepseek_r1_parser/#contract-vllm_mlx.reasoning.deepseek_r1_parser.DeepSeekR1ReasoningParser.end_token"><code>vllm_mlx.reasoning.deepseek_r1_parser.DeepSeekR1ReasoningParser.end_token</code></a></td>
<td>method</td>
<td><code>vllm_mlx.reasoning.deepseek_r1_parser.DeepSeekR1ReasoningParser.end_token() -&gt; str</code></td>
<td>Return the marker that closes a DeepSeek reasoning span.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/reasoning/deepseek_r1_parser.py#L38-L41">#L38-L41</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.reasoning.deepseek_r1_parser.deepseekr1reasoningparser.extract_reasoning method vllm_mlx.reasoning.deepseek_r1_parser.deepseekr1reasoningparser.extract_reasoning(model_output: str) -&gt; tuple[str | none, str | none] extract reasoning from deepseek-r1 output.">
<td><a href="../api/vllm_mlx/reasoning/deepseek_r1_parser/#contract-vllm_mlx.reasoning.deepseek_r1_parser.DeepSeekR1ReasoningParser.extract_reasoning"><code>vllm_mlx.reasoning.deepseek_r1_parser.DeepSeekR1ReasoningParser.extract_reasoning</code></a></td>
<td>method</td>
<td><code>vllm_mlx.reasoning.deepseek_r1_parser.DeepSeekR1ReasoningParser.extract_reasoning(model_output: str) -&gt; tuple[str | None, str | None]</code></td>
<td>Extract reasoning from DeepSeek-R1 output.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/reasoning/deepseek_r1_parser.py#L43-L67">#L43-L67</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.reasoning.deepseek_r1_parser.deepseekr1reasoningparser.extract_reasoning_streaming method vllm_mlx.reasoning.deepseek_r1_parser.deepseekr1reasoningparser.extract_reasoning_streaming(previous_text: str, current_text: str, delta_text: str) -&gt; deltamessage | none extract reasoning from streaming delta.">
<td><a href="../api/vllm_mlx/reasoning/deepseek_r1_parser/#contract-vllm_mlx.reasoning.deepseek_r1_parser.DeepSeekR1ReasoningParser.extract_reasoning_streaming"><code>vllm_mlx.reasoning.deepseek_r1_parser.DeepSeekR1ReasoningParser.extract_reasoning_streaming</code></a></td>
<td>method</td>
<td><code>vllm_mlx.reasoning.deepseek_r1_parser.DeepSeekR1ReasoningParser.extract_reasoning_streaming(previous_text: str, current_text: str, delta_text: str) -&gt; DeltaMessage | None</code></td>
<td>Extract reasoning from streaming delta.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/reasoning/deepseek_r1_parser.py#L69-L114">#L69-L114</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.reasoning.deepseek_r1_parser.deepseekr1reasoningparser.start_token method vllm_mlx.reasoning.deepseek_r1_parser.deepseekr1reasoningparser.start_token() -&gt; str return the marker that opens an explicit deepseek reasoning span.">
<td><a href="../api/vllm_mlx/reasoning/deepseek_r1_parser/#contract-vllm_mlx.reasoning.deepseek_r1_parser.DeepSeekR1ReasoningParser.start_token"><code>vllm_mlx.reasoning.deepseek_r1_parser.DeepSeekR1ReasoningParser.start_token</code></a></td>
<td>method</td>
<td><code>vllm_mlx.reasoning.deepseek_r1_parser.DeepSeekR1ReasoningParser.start_token() -&gt; str</code></td>
<td>Return the marker that opens an explicit DeepSeek reasoning span.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/reasoning/deepseek_r1_parser.py#L32-L35">#L32-L35</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.reasoning.gemma4_parser._strip_channel_name function vllm_mlx.reasoning.gemma4_parser._strip_channel_name(text: str, prefix: str) -&gt; str strip channel name and leading whitespace/newline from text start.">
<td><a href="../api/vllm_mlx/reasoning/gemma4_parser/#contract-vllm_mlx.reasoning.gemma4_parser._strip_channel_name"><code>vllm_mlx.reasoning.gemma4_parser._strip_channel_name</code></a></td>
<td>function</td>
<td><code>vllm_mlx.reasoning.gemma4_parser._strip_channel_name(text: str, prefix: str) -&gt; str</code></td>
<td>Strip channel name and leading whitespace/newline from text start.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/reasoning/gemma4_parser.py#L46-L50">#L46-L50</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.reasoning.gemma4_parser._strip_channel_tokens function vllm_mlx.reasoning.gemma4_parser._strip_channel_tokens(text: str) -&gt; str remove all channel special tokens and bare channel names from text.">
<td><a href="../api/vllm_mlx/reasoning/gemma4_parser/#contract-vllm_mlx.reasoning.gemma4_parser._strip_channel_tokens"><code>vllm_mlx.reasoning.gemma4_parser._strip_channel_tokens</code></a></td>
<td>function</td>
<td><code>vllm_mlx.reasoning.gemma4_parser._strip_channel_tokens(text: str) -&gt; str</code></td>
<td>Remove all channel special tokens and bare channel names from text.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/reasoning/gemma4_parser.py#L53-L82">#L53-L82</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="class" data-symbol-search="vllm_mlx.reasoning.gemma4_parser.gemma4reasoningparser class vllm_mlx.reasoning.gemma4_parser.gemma4reasoningparser(tokenizer = none) reasoning parser for gemma 4 models.">
<td><a href="../api/vllm_mlx/reasoning/gemma4_parser/#contract-vllm_mlx.reasoning.gemma4_parser.Gemma4ReasoningParser"><code>vllm_mlx.reasoning.gemma4_parser.Gemma4ReasoningParser</code></a></td>
<td>class</td>
<td><code>vllm_mlx.reasoning.gemma4_parser.Gemma4ReasoningParser(tokenizer = None)</code></td>
<td>Reasoning parser for Gemma 4 models.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/reasoning/gemma4_parser.py#L85-L386">#L85-L386</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.reasoning.gemma4_parser.gemma4reasoningparser.__init__ method vllm_mlx.reasoning.gemma4_parser.gemma4reasoningparser.__init__(tokenizer = none) -&gt; not annotated method `gemma4reasoningparser.__init__` updates `self._pending`, `self._content_seen`; calls `super().__init__`, `super`.">
<td><a href="../api/vllm_mlx/reasoning/gemma4_parser/#contract-vllm_mlx.reasoning.gemma4_parser.Gemma4ReasoningParser.__init__"><code>vllm_mlx.reasoning.gemma4_parser.Gemma4ReasoningParser.__init__</code></a></td>
<td>method</td>
<td><code>vllm_mlx.reasoning.gemma4_parser.Gemma4ReasoningParser.__init__(tokenizer = None) -&gt; not annotated</code></td>
<td>Method `Gemma4ReasoningParser.__init__` updates `self._pending`, `self._content_seen`; calls `super().__init__`, `super`.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/reasoning/gemma4_parser.py#L126-L133">#L126-L133</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.reasoning.gemma4_parser.gemma4reasoningparser._extract_from_safe_text method vllm_mlx.reasoning.gemma4_parser.gemma4reasoningparser._extract_from_safe_text(previous_text: str, current_text: str, delta_text: str) -&gt; deltamessage | none parse safe (non-buffered) text.">
<td><a href="../api/vllm_mlx/reasoning/gemma4_parser/#contract-vllm_mlx.reasoning.gemma4_parser.Gemma4ReasoningParser._extract_from_safe_text"><code>vllm_mlx.reasoning.gemma4_parser.Gemma4ReasoningParser._extract_from_safe_text</code></a></td>
<td>method</td>
<td><code>vllm_mlx.reasoning.gemma4_parser.Gemma4ReasoningParser._extract_from_safe_text(previous_text: str, current_text: str, delta_text: str) -&gt; DeltaMessage | None</code></td>
<td>Parse safe (non-buffered) text.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/reasoning/gemma4_parser.py#L293-L386">#L293-L386</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.reasoning.gemma4_parser.gemma4reasoningparser._strip_channel_tokens_from_delta method vllm_mlx.reasoning.gemma4_parser.gemma4reasoningparser._strip_channel_tokens_from_delta(msg: deltamessage | none) -&gt; deltamessage | none strip channel special tokens from content and reasoning in a delta.">
<td><a href="../api/vllm_mlx/reasoning/gemma4_parser/#contract-vllm_mlx.reasoning.gemma4_parser.Gemma4ReasoningParser._strip_channel_tokens_from_delta"><code>vllm_mlx.reasoning.gemma4_parser.Gemma4ReasoningParser._strip_channel_tokens_from_delta</code></a></td>
<td>method</td>
<td><code>vllm_mlx.reasoning.gemma4_parser.Gemma4ReasoningParser._strip_channel_tokens_from_delta(msg: DeltaMessage | None) -&gt; DeltaMessage | None</code></td>
<td>Strip channel special tokens from content and reasoning in a delta.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/reasoning/gemma4_parser.py#L275-L291">#L275-L291</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.reasoning.gemma4_parser.gemma4reasoningparser._trailing_partial_marker_len method vllm_mlx.reasoning.gemma4_parser.gemma4reasoningparser._trailing_partial_marker_len(text: str) -&gt; int return length of trailing substring of `text` that is a proper prefix of any transition marker (&lt;channel|&gt;, &lt;|channel&gt;response, &lt;|channel&gt;).">
<td><a href="../api/vllm_mlx/reasoning/gemma4_parser/#contract-vllm_mlx.reasoning.gemma4_parser.Gemma4ReasoningParser._trailing_partial_marker_len"><code>vllm_mlx.reasoning.gemma4_parser.Gemma4ReasoningParser._trailing_partial_marker_len</code></a></td>
<td>method</td>
<td><code>vllm_mlx.reasoning.gemma4_parser.Gemma4ReasoningParser._trailing_partial_marker_len(text: str) -&gt; int</code></td>
<td>Return length of trailing substring of `text` that is a proper prefix of any transition marker (&lt;channel|&gt;, &lt;|channel&gt;response, &lt;|channel&gt;).</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/reasoning/gemma4_parser.py#L142-L166">#L142-L166</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.reasoning.gemma4_parser.gemma4reasoningparser.end_token method vllm_mlx.reasoning.gemma4_parser.gemma4reasoningparser.end_token() -&gt; str return gemma&#x27;s marker for entering the response channel.">
<td><a href="../api/vllm_mlx/reasoning/gemma4_parser/#contract-vllm_mlx.reasoning.gemma4_parser.Gemma4ReasoningParser.end_token"><code>vllm_mlx.reasoning.gemma4_parser.Gemma4ReasoningParser.end_token</code></a></td>
<td>method</td>
<td><code>vllm_mlx.reasoning.gemma4_parser.Gemma4ReasoningParser.end_token() -&gt; str</code></td>
<td>Return Gemma&#x27;s marker for entering the response channel.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/reasoning/gemma4_parser.py#L121-L124">#L121-L124</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.reasoning.gemma4_parser.gemma4reasoningparser.extract_reasoning method vllm_mlx.reasoning.gemma4_parser.gemma4reasoningparser.extract_reasoning(model_output: str) -&gt; tuple[str | none, str | none] extract reasoning from complete output.">
<td><a href="../api/vllm_mlx/reasoning/gemma4_parser/#contract-vllm_mlx.reasoning.gemma4_parser.Gemma4ReasoningParser.extract_reasoning"><code>vllm_mlx.reasoning.gemma4_parser.Gemma4ReasoningParser.extract_reasoning</code></a></td>
<td>method</td>
<td><code>vllm_mlx.reasoning.gemma4_parser.Gemma4ReasoningParser.extract_reasoning(model_output: str) -&gt; tuple[str | None, str | None]</code></td>
<td>Extract reasoning from complete output.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/reasoning/gemma4_parser.py#L185-L233">#L185-L233</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.reasoning.gemma4_parser.gemma4reasoningparser.extract_reasoning_streaming method vllm_mlx.reasoning.gemma4_parser.gemma4reasoningparser.extract_reasoning_streaming(previous_text: str, current_text: str, delta_text: str) -&gt; deltamessage | none extract reasoning from streaming delta.">
<td><a href="../api/vllm_mlx/reasoning/gemma4_parser/#contract-vllm_mlx.reasoning.gemma4_parser.Gemma4ReasoningParser.extract_reasoning_streaming"><code>vllm_mlx.reasoning.gemma4_parser.Gemma4ReasoningParser.extract_reasoning_streaming</code></a></td>
<td>method</td>
<td><code>vllm_mlx.reasoning.gemma4_parser.Gemma4ReasoningParser.extract_reasoning_streaming(previous_text: str, current_text: str, delta_text: str) -&gt; DeltaMessage | None</code></td>
<td>Extract reasoning from streaming delta.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/reasoning/gemma4_parser.py#L235-L272">#L235-L272</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.reasoning.gemma4_parser.gemma4reasoningparser.finalize_stream method vllm_mlx.reasoning.gemma4_parser.gemma4reasoningparser.finalize_stream() -&gt; deltamessage | none flush any buffered partial marker at the end of stream.">
<td><a href="../api/vllm_mlx/reasoning/gemma4_parser/#contract-vllm_mlx.reasoning.gemma4_parser.Gemma4ReasoningParser.finalize_stream"><code>vllm_mlx.reasoning.gemma4_parser.Gemma4ReasoningParser.finalize_stream</code></a></td>
<td>method</td>
<td><code>vllm_mlx.reasoning.gemma4_parser.Gemma4ReasoningParser.finalize_stream() -&gt; DeltaMessage | None</code></td>
<td>Flush any buffered partial marker at the end of stream.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/reasoning/gemma4_parser.py#L168-L183">#L168-L183</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.reasoning.gemma4_parser.gemma4reasoningparser.reset_state method vllm_mlx.reasoning.gemma4_parser.gemma4reasoningparser.reset_state() -&gt; not annotated reset base parsing state and buffered gemma channel markers.">
<td><a href="../api/vllm_mlx/reasoning/gemma4_parser/#contract-vllm_mlx.reasoning.gemma4_parser.Gemma4ReasoningParser.reset_state"><code>vllm_mlx.reasoning.gemma4_parser.Gemma4ReasoningParser.reset_state</code></a></td>
<td>method</td>
<td><code>vllm_mlx.reasoning.gemma4_parser.Gemma4ReasoningParser.reset_state() -&gt; not annotated</code></td>
<td>Reset base parsing state and buffered Gemma channel markers.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/reasoning/gemma4_parser.py#L135-L140">#L135-L140</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.reasoning.gemma4_parser.gemma4reasoningparser.start_token method vllm_mlx.reasoning.gemma4_parser.gemma4reasoningparser.start_token() -&gt; str return gemma&#x27;s marker for entering the thought channel.">
<td><a href="../api/vllm_mlx/reasoning/gemma4_parser/#contract-vllm_mlx.reasoning.gemma4_parser.Gemma4ReasoningParser.start_token"><code>vllm_mlx.reasoning.gemma4_parser.Gemma4ReasoningParser.start_token</code></a></td>
<td>method</td>
<td><code>vllm_mlx.reasoning.gemma4_parser.Gemma4ReasoningParser.start_token() -&gt; str</code></td>
<td>Return Gemma&#x27;s marker for entering the thought channel.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/reasoning/gemma4_parser.py#L115-L118">#L115-L118</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.reasoning.get_parser function vllm_mlx.reasoning.get_parser(name: str) -&gt; type[reasoningparser] get a reasoning parser class by name.">
<td><a href="../api/vllm_mlx/reasoning/#contract-vllm_mlx.reasoning.get_parser"><code>vllm_mlx.reasoning.get_parser</code></a></td>
<td>function</td>
<td><code>vllm_mlx.reasoning.get_parser(name: str) -&gt; type[ReasoningParser]</code></td>
<td>Get a reasoning parser class by name.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/reasoning/__init__.py#L45-L63">#L45-L63</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="class" data-symbol-search="vllm_mlx.reasoning.glm4_parser.glm4reasoningparser class vllm_mlx.reasoning.glm4_parser.glm4reasoningparser() reasoning parser for glm-4 models.">
<td><a href="../api/vllm_mlx/reasoning/glm4_parser/#contract-vllm_mlx.reasoning.glm4_parser.Glm4ReasoningParser"><code>vllm_mlx.reasoning.glm4_parser.Glm4ReasoningParser</code></a></td>
<td>class</td>
<td><code>vllm_mlx.reasoning.glm4_parser.Glm4ReasoningParser()</code></td>
<td>Reasoning parser for GLM-4 models.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/reasoning/glm4_parser.py#L27-L113">#L27-L113</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.reasoning.glm4_parser.glm4reasoningparser.end_token method vllm_mlx.reasoning.glm4_parser.glm4reasoningparser.end_token() -&gt; str return the marker that closes a glm reasoning span.">
<td><a href="../api/vllm_mlx/reasoning/glm4_parser/#contract-vllm_mlx.reasoning.glm4_parser.Glm4ReasoningParser.end_token"><code>vllm_mlx.reasoning.glm4_parser.Glm4ReasoningParser.end_token</code></a></td>
<td>method</td>
<td><code>vllm_mlx.reasoning.glm4_parser.Glm4ReasoningParser.end_token() -&gt; str</code></td>
<td>Return the marker that closes a GLM reasoning span.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/reasoning/glm4_parser.py#L56-L59">#L56-L59</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.reasoning.glm4_parser.glm4reasoningparser.extract_reasoning method vllm_mlx.reasoning.glm4_parser.glm4reasoningparser.extract_reasoning(model_output: str) -&gt; tuple[str | none, str | none] strip glm box markers and split complete reasoning from content.">
<td><a href="../api/vllm_mlx/reasoning/glm4_parser/#contract-vllm_mlx.reasoning.glm4_parser.Glm4ReasoningParser.extract_reasoning"><code>vllm_mlx.reasoning.glm4_parser.Glm4ReasoningParser.extract_reasoning</code></a></td>
<td>method</td>
<td><code>vllm_mlx.reasoning.glm4_parser.Glm4ReasoningParser.extract_reasoning(model_output: str) -&gt; tuple[str | None, str | None]</code></td>
<td>Strip GLM box markers and split complete reasoning from content.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/reasoning/glm4_parser.py#L61-L68">#L61-L68</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.reasoning.glm4_parser.glm4reasoningparser.extract_reasoning_streaming method vllm_mlx.reasoning.glm4_parser.glm4reasoningparser.extract_reasoning_streaming(previous_text: str, current_text: str, delta_text: str) -&gt; deltamessage | none extract reasoning from streaming delta.">
<td><a href="../api/vllm_mlx/reasoning/glm4_parser/#contract-vllm_mlx.reasoning.glm4_parser.Glm4ReasoningParser.extract_reasoning_streaming"><code>vllm_mlx.reasoning.glm4_parser.Glm4ReasoningParser.extract_reasoning_streaming</code></a></td>
<td>method</td>
<td><code>vllm_mlx.reasoning.glm4_parser.Glm4ReasoningParser.extract_reasoning_streaming(previous_text: str, current_text: str, delta_text: str) -&gt; DeltaMessage | None</code></td>
<td>Extract reasoning from streaming delta.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/reasoning/glm4_parser.py#L70-L113">#L70-L113</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.reasoning.glm4_parser.glm4reasoningparser.start_token method vllm_mlx.reasoning.glm4_parser.glm4reasoningparser.start_token() -&gt; str return the marker that opens a glm reasoning span.">
<td><a href="../api/vllm_mlx/reasoning/glm4_parser/#contract-vllm_mlx.reasoning.glm4_parser.Glm4ReasoningParser.start_token"><code>vllm_mlx.reasoning.glm4_parser.Glm4ReasoningParser.start_token</code></a></td>
<td>method</td>
<td><code>vllm_mlx.reasoning.glm4_parser.Glm4ReasoningParser.start_token() -&gt; str</code></td>
<td>Return the marker that opens a GLM reasoning span.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/reasoning/glm4_parser.py#L50-L53">#L50-L53</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.reasoning.gpt_oss_parser._extract_channel function vllm_mlx.reasoning.gpt_oss_parser._extract_channel(text: str, channel_name: str) -&gt; str | none extract content from a named channel.">
<td><a href="../api/vllm_mlx/reasoning/gpt_oss_parser/#contract-vllm_mlx.reasoning.gpt_oss_parser._extract_channel"><code>vllm_mlx.reasoning.gpt_oss_parser._extract_channel</code></a></td>
<td>function</td>
<td><code>vllm_mlx.reasoning.gpt_oss_parser._extract_channel(text: str, channel_name: str) -&gt; str | None</code></td>
<td>Extract content from a named channel.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/reasoning/gpt_oss_parser.py#L33-L55">#L33-L55</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="class" data-symbol-search="vllm_mlx.reasoning.gpt_oss_parser.gptossreasoningparser class vllm_mlx.reasoning.gpt_oss_parser.gptossreasoningparser() reasoning parser for gpt-oss models.">
<td><a href="../api/vllm_mlx/reasoning/gpt_oss_parser/#contract-vllm_mlx.reasoning.gpt_oss_parser.GptOssReasoningParser"><code>vllm_mlx.reasoning.gpt_oss_parser.GptOssReasoningParser</code></a></td>
<td>class</td>
<td><code>vllm_mlx.reasoning.gpt_oss_parser.GptOssReasoningParser()</code></td>
<td>Reasoning parser for GPT-OSS models.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/reasoning/gpt_oss_parser.py#L58-L214">#L58-L214</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.reasoning.gpt_oss_parser.gptossreasoningparser._detect_phase method vllm_mlx.reasoning.gpt_oss_parser.gptossreasoningparser._detect_phase(text: str) -&gt; str detect current streaming phase from accumulated text.">
<td><a href="../api/vllm_mlx/reasoning/gpt_oss_parser/#contract-vllm_mlx.reasoning.gpt_oss_parser.GptOssReasoningParser._detect_phase"><code>vllm_mlx.reasoning.gpt_oss_parser.GptOssReasoningParser._detect_phase</code></a></td>
<td>method</td>
<td><code>vllm_mlx.reasoning.gpt_oss_parser.GptOssReasoningParser._detect_phase(text: str) -&gt; str</code></td>
<td>Detect current streaming phase from accumulated text.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/reasoning/gpt_oss_parser.py#L164-L187">#L164-L187</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.reasoning.gpt_oss_parser.gptossreasoningparser._extract_content_after_marker_in_delta method vllm_mlx.reasoning.gpt_oss_parser.gptossreasoningparser._extract_content_after_marker_in_delta(current_text: str, phase: str) -&gt; str | none when phase changes, extract only the content after the phase marker that falls within the current accumulated text&#x27;s tail.">
<td><a href="../api/vllm_mlx/reasoning/gpt_oss_parser/#contract-vllm_mlx.reasoning.gpt_oss_parser.GptOssReasoningParser._extract_content_after_marker_in_delta"><code>vllm_mlx.reasoning.gpt_oss_parser.GptOssReasoningParser._extract_content_after_marker_in_delta</code></a></td>
<td>method</td>
<td><code>vllm_mlx.reasoning.gpt_oss_parser.GptOssReasoningParser._extract_content_after_marker_in_delta(current_text: str, phase: str) -&gt; str | None</code></td>
<td>When phase changes, extract only the content after the phase marker that falls within the current accumulated text&#x27;s tail.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/reasoning/gpt_oss_parser.py#L190-L209">#L190-L209</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.reasoning.gpt_oss_parser.gptossreasoningparser._strip_return method vllm_mlx.reasoning.gpt_oss_parser.gptossreasoningparser._strip_return(text: str) -&gt; str strip &lt;|return|&gt; from text.">
<td><a href="../api/vllm_mlx/reasoning/gpt_oss_parser/#contract-vllm_mlx.reasoning.gpt_oss_parser.GptOssReasoningParser._strip_return"><code>vllm_mlx.reasoning.gpt_oss_parser.GptOssReasoningParser._strip_return</code></a></td>
<td>method</td>
<td><code>vllm_mlx.reasoning.gpt_oss_parser.GptOssReasoningParser._strip_return(text: str) -&gt; str</code></td>
<td>Strip &lt;|return|&gt; from text.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/reasoning/gpt_oss_parser.py#L212-L214">#L212-L214</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.reasoning.gpt_oss_parser.gptossreasoningparser.extract_reasoning method vllm_mlx.reasoning.gpt_oss_parser.gptossreasoningparser.extract_reasoning(model_output: str) -&gt; tuple[str | none, str | none] extract reasoning and content from complete model output.">
<td><a href="../api/vllm_mlx/reasoning/gpt_oss_parser/#contract-vllm_mlx.reasoning.gpt_oss_parser.GptOssReasoningParser.extract_reasoning"><code>vllm_mlx.reasoning.gpt_oss_parser.GptOssReasoningParser.extract_reasoning</code></a></td>
<td>method</td>
<td><code>vllm_mlx.reasoning.gpt_oss_parser.GptOssReasoningParser.extract_reasoning(model_output: str) -&gt; tuple[str | None, str | None]</code></td>
<td>Extract reasoning and content from complete model output.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/reasoning/gpt_oss_parser.py#L72-L106">#L72-L106</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.reasoning.gpt_oss_parser.gptossreasoningparser.extract_reasoning_streaming method vllm_mlx.reasoning.gpt_oss_parser.gptossreasoningparser.extract_reasoning_streaming(previous_text: str, current_text: str, delta_text: str) -&gt; deltamessage | none extract reasoning from streaming delta.">
<td><a href="../api/vllm_mlx/reasoning/gpt_oss_parser/#contract-vllm_mlx.reasoning.gpt_oss_parser.GptOssReasoningParser.extract_reasoning_streaming"><code>vllm_mlx.reasoning.gpt_oss_parser.GptOssReasoningParser.extract_reasoning_streaming</code></a></td>
<td>method</td>
<td><code>vllm_mlx.reasoning.gpt_oss_parser.GptOssReasoningParser.extract_reasoning_streaming(previous_text: str, current_text: str, delta_text: str) -&gt; DeltaMessage | None</code></td>
<td>Extract reasoning from streaming delta.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/reasoning/gpt_oss_parser.py#L108-L161">#L108-L161</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="class" data-symbol-search="vllm_mlx.reasoning.harmony_parser.harmonyreasoningparser class vllm_mlx.reasoning.harmony_parser.harmonyreasoningparser(tokenizer = none) reasoning parser for gpt-oss models using harmony format.">
<td><a href="../api/vllm_mlx/reasoning/harmony_parser/#contract-vllm_mlx.reasoning.harmony_parser.HarmonyReasoningParser"><code>vllm_mlx.reasoning.harmony_parser.HarmonyReasoningParser</code></a></td>
<td>class</td>
<td><code>vllm_mlx.reasoning.harmony_parser.HarmonyReasoningParser(tokenizer = None)</code></td>
<td>Reasoning parser for GPT-OSS models using Harmony format.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/reasoning/harmony_parser.py#L35-L157">#L35-L157</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.reasoning.harmony_parser.harmonyreasoningparser.__init__ method vllm_mlx.reasoning.harmony_parser.harmonyreasoningparser.__init__(tokenizer = none) -&gt; not annotated method `harmonyreasoningparser.__init__` updates `self._current_channel`, `self._in_message`; calls `super().__init__`, `super`.">
<td><a href="../api/vllm_mlx/reasoning/harmony_parser/#contract-vllm_mlx.reasoning.harmony_parser.HarmonyReasoningParser.__init__"><code>vllm_mlx.reasoning.harmony_parser.HarmonyReasoningParser.__init__</code></a></td>
<td>method</td>
<td><code>vllm_mlx.reasoning.harmony_parser.HarmonyReasoningParser.__init__(tokenizer = None) -&gt; not annotated</code></td>
<td>Method `HarmonyReasoningParser.__init__` updates `self._current_channel`, `self._in_message`; calls `super().__init__`, `super`.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/reasoning/harmony_parser.py#L49-L52">#L49-L52</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.reasoning.harmony_parser.harmonyreasoningparser.extract_reasoning method vllm_mlx.reasoning.harmony_parser.harmonyreasoningparser.extract_reasoning(model_output: str) -&gt; tuple[str | none, str | none] extract reasoning from complete harmony output.">
<td><a href="../api/vllm_mlx/reasoning/harmony_parser/#contract-vllm_mlx.reasoning.harmony_parser.HarmonyReasoningParser.extract_reasoning"><code>vllm_mlx.reasoning.harmony_parser.HarmonyReasoningParser.extract_reasoning</code></a></td>
<td>method</td>
<td><code>vllm_mlx.reasoning.harmony_parser.HarmonyReasoningParser.extract_reasoning(model_output: str) -&gt; tuple[str | None, str | None]</code></td>
<td>Extract reasoning from complete Harmony output.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/reasoning/harmony_parser.py#L54-L78">#L54-L78</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.reasoning.harmony_parser.harmonyreasoningparser.extract_reasoning_streaming method vllm_mlx.reasoning.harmony_parser.harmonyreasoningparser.extract_reasoning_streaming(previous_text: str, current_text: str, delta_text: str) -&gt; deltamessage | none extract reasoning from streaming harmony output.">
<td><a href="../api/vllm_mlx/reasoning/harmony_parser/#contract-vllm_mlx.reasoning.harmony_parser.HarmonyReasoningParser.extract_reasoning_streaming"><code>vllm_mlx.reasoning.harmony_parser.HarmonyReasoningParser.extract_reasoning_streaming</code></a></td>
<td>method</td>
<td><code>vllm_mlx.reasoning.harmony_parser.HarmonyReasoningParser.extract_reasoning_streaming(previous_text: str, current_text: str, delta_text: str) -&gt; DeltaMessage | None</code></td>
<td>Extract reasoning from streaming Harmony output.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/reasoning/harmony_parser.py#L80-L152">#L80-L152</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.reasoning.harmony_parser.harmonyreasoningparser.reset_state method vllm_mlx.reasoning.harmony_parser.harmonyreasoningparser.reset_state() -&gt; not annotated reset streaming state for a new request.">
<td><a href="../api/vllm_mlx/reasoning/harmony_parser/#contract-vllm_mlx.reasoning.harmony_parser.HarmonyReasoningParser.reset_state"><code>vllm_mlx.reasoning.harmony_parser.HarmonyReasoningParser.reset_state</code></a></td>
<td>method</td>
<td><code>vllm_mlx.reasoning.harmony_parser.HarmonyReasoningParser.reset_state() -&gt; not annotated</code></td>
<td>Reset streaming state for a new request.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/reasoning/harmony_parser.py#L154-L157">#L154-L157</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.reasoning.list_parsers function vllm_mlx.reasoning.list_parsers() -&gt; list[str] list available parser names.">
<td><a href="../api/vllm_mlx/reasoning/#contract-vllm_mlx.reasoning.list_parsers"><code>vllm_mlx.reasoning.list_parsers</code></a></td>
<td>function</td>
<td><code>vllm_mlx.reasoning.list_parsers() -&gt; list[str]</code></td>
<td>List available parser names.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/reasoning/__init__.py#L66-L73">#L66-L73</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="class" data-symbol-search="vllm_mlx.reasoning.mistral_parser.mistralreasoningparser class vllm_mlx.reasoning.mistral_parser.mistralreasoningparser() reasoning parser for mistral/ministral reasoning models.">
<td><a href="../api/vllm_mlx/reasoning/mistral_parser/#contract-vllm_mlx.reasoning.mistral_parser.MistralReasoningParser"><code>vllm_mlx.reasoning.mistral_parser.MistralReasoningParser</code></a></td>
<td>class</td>
<td><code>vllm_mlx.reasoning.mistral_parser.MistralReasoningParser()</code></td>
<td>Reasoning parser for Mistral/Ministral reasoning models.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/reasoning/mistral_parser.py#L19-L72">#L19-L72</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.reasoning.mistral_parser.mistralreasoningparser.end_token method vllm_mlx.reasoning.mistral_parser.mistralreasoningparser.end_token() -&gt; str return the mistral reasoning closing marker.">
<td><a href="../api/vllm_mlx/reasoning/mistral_parser/#contract-vllm_mlx.reasoning.mistral_parser.MistralReasoningParser.end_token"><code>vllm_mlx.reasoning.mistral_parser.MistralReasoningParser.end_token</code></a></td>
<td>method</td>
<td><code>vllm_mlx.reasoning.mistral_parser.MistralReasoningParser.end_token() -&gt; str</code></td>
<td>Return the Mistral reasoning closing marker.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/reasoning/mistral_parser.py#L46-L49">#L46-L49</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.reasoning.mistral_parser.mistralreasoningparser.extract_reasoning method vllm_mlx.reasoning.mistral_parser.mistralreasoningparser.extract_reasoning(model_output: str) -&gt; tuple[str | none, str | none] extract reasoning from mistral/ministral output.">
<td><a href="../api/vllm_mlx/reasoning/mistral_parser/#contract-vllm_mlx.reasoning.mistral_parser.MistralReasoningParser.extract_reasoning"><code>vllm_mlx.reasoning.mistral_parser.MistralReasoningParser.extract_reasoning</code></a></td>
<td>method</td>
<td><code>vllm_mlx.reasoning.mistral_parser.MistralReasoningParser.extract_reasoning(model_output: str) -&gt; tuple[str | None, str | None]</code></td>
<td>Extract reasoning from Mistral/Ministral output.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/reasoning/mistral_parser.py#L51-L72">#L51-L72</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.reasoning.mistral_parser.mistralreasoningparser.start_token method vllm_mlx.reasoning.mistral_parser.mistralreasoningparser.start_token() -&gt; str return the mistral reasoning opening marker.">
<td><a href="../api/vllm_mlx/reasoning/mistral_parser/#contract-vllm_mlx.reasoning.mistral_parser.MistralReasoningParser.start_token"><code>vllm_mlx.reasoning.mistral_parser.MistralReasoningParser.start_token</code></a></td>
<td>method</td>
<td><code>vllm_mlx.reasoning.mistral_parser.MistralReasoningParser.start_token() -&gt; str</code></td>
<td>Return the Mistral reasoning opening marker.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/reasoning/mistral_parser.py#L40-L43">#L40-L43</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="class" data-symbol-search="vllm_mlx.reasoning.poolside_v1_parser.poolsidev1reasoningparser class vllm_mlx.reasoning.poolside_v1_parser.poolsidev1reasoningparser() parse laguna&#x27;s template-injected ``&lt;think&gt;`` reasoning boundary.">
<td><a href="../api/vllm_mlx/reasoning/poolside_v1_parser/#contract-vllm_mlx.reasoning.poolside_v1_parser.PoolsideV1ReasoningParser"><code>vllm_mlx.reasoning.poolside_v1_parser.PoolsideV1ReasoningParser</code></a></td>
<td>class</td>
<td><code>vllm_mlx.reasoning.poolside_v1_parser.PoolsideV1ReasoningParser()</code></td>
<td>Parse Laguna&#x27;s template-injected ``&lt;think&gt;`` reasoning boundary.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/reasoning/poolside_v1_parser.py#L7-L13">#L7-L13</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="class" data-symbol-search="vllm_mlx.reasoning.qwen3_parser.qwen3reasoningparser class vllm_mlx.reasoning.qwen3_parser.qwen3reasoningparser() reasoning parser for qwen3 models.">
<td><a href="../api/vllm_mlx/reasoning/qwen3_parser/#contract-vllm_mlx.reasoning.qwen3_parser.Qwen3ReasoningParser"><code>vllm_mlx.reasoning.qwen3_parser.Qwen3ReasoningParser</code></a></td>
<td>class</td>
<td><code>vllm_mlx.reasoning.qwen3_parser.Qwen3ReasoningParser()</code></td>
<td>Reasoning parser for Qwen3 models.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/reasoning/qwen3_parser.py#L15-L68">#L15-L68</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.reasoning.qwen3_parser.qwen3reasoningparser.end_token method vllm_mlx.reasoning.qwen3_parser.qwen3reasoningparser.end_token() -&gt; str return the qwen3 reasoning closing marker.">
<td><a href="../api/vllm_mlx/reasoning/qwen3_parser/#contract-vllm_mlx.reasoning.qwen3_parser.Qwen3ReasoningParser.end_token"><code>vllm_mlx.reasoning.qwen3_parser.Qwen3ReasoningParser.end_token</code></a></td>
<td>method</td>
<td><code>vllm_mlx.reasoning.qwen3_parser.Qwen3ReasoningParser.end_token() -&gt; str</code></td>
<td>Return the Qwen3 reasoning closing marker.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/reasoning/qwen3_parser.py#L42-L45">#L42-L45</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.reasoning.qwen3_parser.qwen3reasoningparser.extract_reasoning method vllm_mlx.reasoning.qwen3_parser.qwen3reasoningparser.extract_reasoning(model_output: str) -&gt; tuple[str | none, str | none] extract reasoning from qwen3 output.">
<td><a href="../api/vllm_mlx/reasoning/qwen3_parser/#contract-vllm_mlx.reasoning.qwen3_parser.Qwen3ReasoningParser.extract_reasoning"><code>vllm_mlx.reasoning.qwen3_parser.Qwen3ReasoningParser.extract_reasoning</code></a></td>
<td>method</td>
<td><code>vllm_mlx.reasoning.qwen3_parser.Qwen3ReasoningParser.extract_reasoning(model_output: str) -&gt; tuple[str | None, str | None]</code></td>
<td>Extract reasoning from Qwen3 output.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/reasoning/qwen3_parser.py#L47-L68">#L47-L68</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.reasoning.qwen3_parser.qwen3reasoningparser.start_token method vllm_mlx.reasoning.qwen3_parser.qwen3reasoningparser.start_token() -&gt; str return the qwen3 reasoning opening marker.">
<td><a href="../api/vllm_mlx/reasoning/qwen3_parser/#contract-vllm_mlx.reasoning.qwen3_parser.Qwen3ReasoningParser.start_token"><code>vllm_mlx.reasoning.qwen3_parser.Qwen3ReasoningParser.start_token</code></a></td>
<td>method</td>
<td><code>vllm_mlx.reasoning.qwen3_parser.Qwen3ReasoningParser.start_token() -&gt; str</code></td>
<td>Return the Qwen3 reasoning opening marker.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/reasoning/qwen3_parser.py#L36-L39">#L36-L39</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.reasoning.register_parser function vllm_mlx.reasoning.register_parser(name: str, parser_class: type[reasoningparser]) -&gt; none register a reasoning parser.">
<td><a href="../api/vllm_mlx/reasoning/#contract-vllm_mlx.reasoning.register_parser"><code>vllm_mlx.reasoning.register_parser</code></a></td>
<td>function</td>
<td><code>vllm_mlx.reasoning.register_parser(name: str, parser_class: type[ReasoningParser]) -&gt; None</code></td>
<td>Register a reasoning parser.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/reasoning/__init__.py#L34-L42">#L34-L42</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="class" data-symbol-search="vllm_mlx.reasoning.think_parser.basethinkingreasoningparser class vllm_mlx.reasoning.think_parser.basethinkingreasoningparser(tokenizer = none) base parser for models using &lt;think&gt;...&lt;/think&gt; style tags.">
<td><a href="../api/vllm_mlx/reasoning/think_parser/#contract-vllm_mlx.reasoning.think_parser.BaseThinkingReasoningParser"><code>vllm_mlx.reasoning.think_parser.BaseThinkingReasoningParser</code></a></td>
<td>class</td>
<td><code>vllm_mlx.reasoning.think_parser.BaseThinkingReasoningParser(tokenizer = None)</code></td>
<td>Base parser for models using &lt;think&gt;...&lt;/think&gt; style tags.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/reasoning/think_parser.py#L29-L462">#L29-L462</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.reasoning.think_parser.basethinkingreasoningparser.__init__ method vllm_mlx.reasoning.think_parser.basethinkingreasoningparser.__init__(tokenizer = none) -&gt; not annotated method `basethinkingreasoningparser.__init__` updates `self._phase`, `self._content_started`, `self._content_buffer`, `self._in_tool_call`; calls `super().__init__`, `super`.">
<td><a href="../api/vllm_mlx/reasoning/think_parser/#contract-vllm_mlx.reasoning.think_parser.BaseThinkingReasoningParser.__init__"><code>vllm_mlx.reasoning.think_parser.BaseThinkingReasoningParser.__init__</code></a></td>
<td>method</td>
<td><code>vllm_mlx.reasoning.think_parser.BaseThinkingReasoningParser.__init__(tokenizer = None) -&gt; not annotated</code></td>
<td>Method `BaseThinkingReasoningParser.__init__` updates `self._phase`, `self._content_started`, `self._content_buffer`, `self._in_tool_call`; calls `super().__init__`, `super`.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/reasoning/think_parser.py#L63-L71">#L63-L71</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.reasoning.think_parser.basethinkingreasoningparser._content_delta method vllm_mlx.reasoning.think_parser.basethinkingreasoningparser._content_delta(delta_text: str) -&gt; deltamessage | none emit content after consuming repeated leading think blocks.">
<td><a href="../api/vllm_mlx/reasoning/think_parser/#contract-vllm_mlx.reasoning.think_parser.BaseThinkingReasoningParser._content_delta"><code>vllm_mlx.reasoning.think_parser.BaseThinkingReasoningParser._content_delta</code></a></td>
<td>method</td>
<td><code>vllm_mlx.reasoning.think_parser.BaseThinkingReasoningParser._content_delta(delta_text: str) -&gt; DeltaMessage | None</code></td>
<td>Emit content after consuming repeated leading think blocks.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/reasoning/think_parser.py#L278-L325">#L278-L325</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.reasoning.think_parser.basethinkingreasoningparser._extract_complete_reasoning method vllm_mlx.reasoning.think_parser.basethinkingreasoningparser._extract_complete_reasoning(text: str) -&gt; tuple[str | none, str | none] split complete output into leading reasoning spans and final content.">
<td><a href="../api/vllm_mlx/reasoning/think_parser/#contract-vllm_mlx.reasoning.think_parser.BaseThinkingReasoningParser._extract_complete_reasoning"><code>vllm_mlx.reasoning.think_parser.BaseThinkingReasoningParser._extract_complete_reasoning</code></a></td>
<td>method</td>
<td><code>vllm_mlx.reasoning.think_parser.BaseThinkingReasoningParser._extract_complete_reasoning(text: str) -&gt; tuple[str | None, str | None]</code></td>
<td>Split complete output into leading reasoning spans and final content.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/reasoning/think_parser.py#L226-L260">#L226-L260</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.reasoning.think_parser.basethinkingreasoningparser._promote_tool_calls method vllm_mlx.reasoning.think_parser.basethinkingreasoningparser._promote_tool_calls(reasoning: str | none, content: str | none) -&gt; tuple[str | none, str | none] method `basethinkingreasoningparser._promote_tool_calls` calls `cls._tool_call_closed_re.sub`, `cls._tool_call_unclosed_re.search`, `unclosed_match.group`, `unclosed_match.start`; has 2 explicit return paths.">
<td><a href="../api/vllm_mlx/reasoning/think_parser/#contract-vllm_mlx.reasoning.think_parser.BaseThinkingReasoningParser._promote_tool_calls"><code>vllm_mlx.reasoning.think_parser.BaseThinkingReasoningParser._promote_tool_calls</code></a></td>
<td>method</td>
<td><code>vllm_mlx.reasoning.think_parser.BaseThinkingReasoningParser._promote_tool_calls(reasoning: str | None, content: str | None) -&gt; tuple[str | None, str | None]</code></td>
<td>Method `BaseThinkingReasoningParser._promote_tool_calls` calls `cls._TOOL_CALL_CLOSED_RE.sub`, `cls._TOOL_CALL_UNCLOSED_RE.search`, `unclosed_match.group`, `unclosed_match.start`; has 2 explicit return paths.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/reasoning/think_parser.py#L409-L462">#L409-L462</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="nested function" data-symbol-search="vllm_mlx.reasoning.think_parser.basethinkingreasoningparser._promote_tool_calls._collect_closed nested function vllm_mlx.reasoning.think_parser.basethinkingreasoningparser._promote_tool_calls._collect_closed(match) -&gt; not annotated nested function `basethinkingreasoningparser._promote_tool_calls._collect_closed` calls `closed.append`, `match.group`; returns `&#x27;&#x27;`.">
<td><a href="../api/vllm_mlx/reasoning/think_parser/#contract-vllm_mlx.reasoning.think_parser.BaseThinkingReasoningParser._promote_tool_calls._collect_closed"><code>vllm_mlx.reasoning.think_parser.BaseThinkingReasoningParser._promote_tool_calls._collect_closed</code></a></td>
<td>nested function</td>
<td><code>vllm_mlx.reasoning.think_parser.BaseThinkingReasoningParser._promote_tool_calls._collect_closed(match) -&gt; not annotated</code></td>
<td>Nested Function `BaseThinkingReasoningParser._promote_tool_calls._collect_closed` calls `closed.append`, `match.group`; returns `&#x27;&#x27;`.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/reasoning/think_parser.py#L419-L421">#L419-L421</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.reasoning.think_parser.basethinkingreasoningparser._thinking_tool_call method vllm_mlx.reasoning.think_parser.basethinkingreasoningparser._thinking_tool_call(previous_text: str, current_text: str, delta_text: str) -&gt; deltamessage | none handle streaming while inside a &lt;tool_call&gt; during thinking phase.">
<td><a href="../api/vllm_mlx/reasoning/think_parser/#contract-vllm_mlx.reasoning.think_parser.BaseThinkingReasoningParser._thinking_tool_call"><code>vllm_mlx.reasoning.think_parser.BaseThinkingReasoningParser._thinking_tool_call</code></a></td>
<td>method</td>
<td><code>vllm_mlx.reasoning.think_parser.BaseThinkingReasoningParser._thinking_tool_call(previous_text: str, current_text: str, delta_text: str) -&gt; DeltaMessage | None</code></td>
<td>Handle streaming while inside a &lt;tool_call&gt; during thinking phase.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/reasoning/think_parser.py#L327-L396">#L327-L396</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.reasoning.think_parser.basethinkingreasoningparser._transition_to_content method vllm_mlx.reasoning.think_parser.basethinkingreasoningparser._transition_to_content(reasoning: str | none, content: str | none) -&gt; deltamessage | none return a delta while suppressing leading post-transition think blocks.">
<td><a href="../api/vllm_mlx/reasoning/think_parser/#contract-vllm_mlx.reasoning.think_parser.BaseThinkingReasoningParser._transition_to_content"><code>vllm_mlx.reasoning.think_parser.BaseThinkingReasoningParser._transition_to_content</code></a></td>
<td>method</td>
<td><code>vllm_mlx.reasoning.think_parser.BaseThinkingReasoningParser._transition_to_content(reasoning: str | None, content: str | None) -&gt; DeltaMessage | None</code></td>
<td>Return a delta while suppressing leading post-transition think blocks.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/reasoning/think_parser.py#L262-L276">#L262-L276</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.reasoning.think_parser.basethinkingreasoningparser.end_token method vllm_mlx.reasoning.think_parser.basethinkingreasoningparser.end_token() -&gt; str the token/tag that ends reasoning content (e.g., &#x27;&lt;/think&gt;&#x27;).">
<td><a href="../api/vllm_mlx/reasoning/think_parser/#contract-vllm_mlx.reasoning.think_parser.BaseThinkingReasoningParser.end_token"><code>vllm_mlx.reasoning.think_parser.BaseThinkingReasoningParser.end_token</code></a></td>
<td>method</td>
<td><code>vllm_mlx.reasoning.think_parser.BaseThinkingReasoningParser.end_token() -&gt; str</code></td>
<td>The token/tag that ends reasoning content (e.g., &#x27;&lt;/think&gt;&#x27;).</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/reasoning/think_parser.py#L55-L56">#L55-L56</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.reasoning.think_parser.basethinkingreasoningparser.extract_reasoning method vllm_mlx.reasoning.think_parser.basethinkingreasoningparser.extract_reasoning(model_output: str) -&gt; tuple[str | none, str | none] extract reasoning from complete output.">
<td><a href="../api/vllm_mlx/reasoning/think_parser/#contract-vllm_mlx.reasoning.think_parser.BaseThinkingReasoningParser.extract_reasoning"><code>vllm_mlx.reasoning.think_parser.BaseThinkingReasoningParser.extract_reasoning</code></a></td>
<td>method</td>
<td><code>vllm_mlx.reasoning.think_parser.BaseThinkingReasoningParser.extract_reasoning(model_output: str) -&gt; tuple[str | None, str | None]</code></td>
<td>Extract reasoning from complete output.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/reasoning/think_parser.py#L81-L110">#L81-L110</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.reasoning.think_parser.basethinkingreasoningparser.extract_reasoning_streaming method vllm_mlx.reasoning.think_parser.basethinkingreasoningparser.extract_reasoning_streaming(previous_text: str, current_text: str, delta_text: str) -&gt; deltamessage | none extract reasoning from a streaming delta using state-machine tracking.">
<td><a href="../api/vllm_mlx/reasoning/think_parser/#contract-vllm_mlx.reasoning.think_parser.BaseThinkingReasoningParser.extract_reasoning_streaming"><code>vllm_mlx.reasoning.think_parser.BaseThinkingReasoningParser.extract_reasoning_streaming</code></a></td>
<td>method</td>
<td><code>vllm_mlx.reasoning.think_parser.BaseThinkingReasoningParser.extract_reasoning_streaming(previous_text: str, current_text: str, delta_text: str) -&gt; DeltaMessage | None</code></td>
<td>Extract reasoning from a streaming delta using state-machine tracking.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/reasoning/think_parser.py#L112-L224">#L112-L224</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.reasoning.think_parser.basethinkingreasoningparser.finalize_stream method vllm_mlx.reasoning.think_parser.basethinkingreasoningparser.finalize_stream() -&gt; deltamessage | none flush any buffered tool call text at end of stream.">
<td><a href="../api/vllm_mlx/reasoning/think_parser/#contract-vllm_mlx.reasoning.think_parser.BaseThinkingReasoningParser.finalize_stream"><code>vllm_mlx.reasoning.think_parser.BaseThinkingReasoningParser.finalize_stream</code></a></td>
<td>method</td>
<td><code>vllm_mlx.reasoning.think_parser.BaseThinkingReasoningParser.finalize_stream() -&gt; DeltaMessage | None</code></td>
<td>Flush any buffered tool call text at end of stream.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/reasoning/think_parser.py#L398-L406">#L398-L406</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.reasoning.think_parser.basethinkingreasoningparser.reset_state method vllm_mlx.reasoning.think_parser.basethinkingreasoningparser.reset_state() -&gt; not annotated reset state machine for a new streaming request.">
<td><a href="../api/vllm_mlx/reasoning/think_parser/#contract-vllm_mlx.reasoning.think_parser.BaseThinkingReasoningParser.reset_state"><code>vllm_mlx.reasoning.think_parser.BaseThinkingReasoningParser.reset_state</code></a></td>
<td>method</td>
<td><code>vllm_mlx.reasoning.think_parser.BaseThinkingReasoningParser.reset_state() -&gt; not annotated</code></td>
<td>Reset state machine for a new streaming request.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/reasoning/think_parser.py#L73-L79">#L73-L79</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.reasoning.think_parser.basethinkingreasoningparser.start_token method vllm_mlx.reasoning.think_parser.basethinkingreasoningparser.start_token() -&gt; str the token/tag that starts reasoning content (e.g., &#x27;&lt;think&gt;&#x27;).">
<td><a href="../api/vllm_mlx/reasoning/think_parser/#contract-vllm_mlx.reasoning.think_parser.BaseThinkingReasoningParser.start_token"><code>vllm_mlx.reasoning.think_parser.BaseThinkingReasoningParser.start_token</code></a></td>
<td>method</td>
<td><code>vllm_mlx.reasoning.think_parser.BaseThinkingReasoningParser.start_token() -&gt; str</code></td>
<td>The token/tag that starts reasoning content (e.g., &#x27;&lt;think&gt;&#x27;).</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/reasoning/think_parser.py#L50-L51">#L50-L51</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="class" data-symbol-search="vllm_mlx.request.request class vllm_mlx.request.request(request_id: str, prompt: union[str, list[int]], sampling_params: samplingparams, arrival_time: float = field(default_factory=time.time), priority: int = 0, prompt_token_ids: optional[list[int]] = none, num_prompt_tokens: int = 0, status: requeststatus = requeststatus.waiting, num_computed_tokens: int = 0, output_token_ids: list[int] = field(default_factory=list), output_text: str = &#x27;&#x27;, batch_uid: optional[int] = none, prompt_cache: optional[list[any]] = none, cached_tokens: int = 0, remaining_tokens: optional[list[int]] = none, prefix_boundary: int = 0, block_table: optional[&#x27;blocktable&#x27;] = none, shared_prefix_blocks: int = 0, images: optional[list[any]] = none, videos: optional[list[any]] = none, pixel_values: optional[any] = none, image_grid_thw: optional[any] = none, attention_mask: optional[any] = none, multimodal_kwargs: optional[dict[str, any]] = none, is_multimodal: bool = false, finish_reason: optional[str] = none, first_token_time: optional[float] = none, cache_hit_type: optional[str] = none) represents a single inference request in the scheduling system.">
<td><a href="../api/vllm_mlx/request/#contract-vllm_mlx.request.Request"><code>vllm_mlx.request.Request</code></a></td>
<td>class</td>
<td><code>vllm_mlx.request.Request(request_id: str, prompt: Union[str, List[int]], sampling_params: SamplingParams, arrival_time: float = field(default_factory=time.time), priority: int = 0, prompt_token_ids: Optional[List[int]] = None, num_prompt_tokens: int = 0, status: RequestStatus = RequestStatus.WAITING, num_computed_tokens: int = 0, output_token_ids: List[int] = field(default_factory=list), output_text: str = &#x27;&#x27;, batch_uid: Optional[int] = None, prompt_cache: Optional[List[Any]] = None, cached_tokens: int = 0, remaining_tokens: Optional[List[int]] = None, prefix_boundary: int = 0, block_table: Optional[&#x27;BlockTable&#x27;] = None, shared_prefix_blocks: int = 0, images: Optional[List[Any]] = None, videos: Optional[List[Any]] = None, pixel_values: Optional[Any] = None, image_grid_thw: Optional[Any] = None, attention_mask: Optional[Any] = None, multimodal_kwargs: Optional[Dict[str, Any]] = None, is_multimodal: bool = False, finish_reason: Optional[str] = None, first_token_time: Optional[float] = None, cache_hit_type: Optional[str] = None)</code></td>
<td>Represents a single inference request in the scheduling system.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/request.py#L77-L192">#L77-L192</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.request.request.__eq__ method vllm_mlx.request.request.__eq__(other: object) -&gt; bool method `request.__eq__` calls `isinstance`; has 2 explicit return paths.">
<td><a href="../api/vllm_mlx/request/#contract-vllm_mlx.request.Request.__eq__"><code>vllm_mlx.request.Request.__eq__</code></a></td>
<td>method</td>
<td><code>vllm_mlx.request.Request.__eq__(other: object) -&gt; bool</code></td>
<td>Method `Request.__eq__` calls `isinstance`; has 2 explicit return paths.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/request.py#L189-L192">#L189-L192</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.request.request.__hash__ method vllm_mlx.request.request.__hash__() -&gt; int method `request.__hash__` calls `hash`; returns `hash(self.request_id)`.">
<td><a href="../api/vllm_mlx/request/#contract-vllm_mlx.request.Request.__hash__"><code>vllm_mlx.request.Request.__hash__</code></a></td>
<td>method</td>
<td><code>vllm_mlx.request.Request.__hash__() -&gt; int</code></td>
<td>Method `Request.__hash__` calls `hash`; returns `hash(self.request_id)`.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/request.py#L186-L187">#L186-L187</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.request.request.__lt__ method vllm_mlx.request.request.__lt__(other: &#x27;request&#x27;) -&gt; bool compare requests for priority queue ordering.">
<td><a href="../api/vllm_mlx/request/#contract-vllm_mlx.request.Request.__lt__"><code>vllm_mlx.request.Request.__lt__</code></a></td>
<td>method</td>
<td><code>vllm_mlx.request.Request.__lt__(other: &#x27;Request&#x27;) -&gt; bool</code></td>
<td>Compare requests for priority queue ordering.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/request.py#L180-L184">#L180-L184</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.request.request.append_output_token method vllm_mlx.request.request.append_output_token(token_id: int) -&gt; none append a generated token to the output.">
<td><a href="../api/vllm_mlx/request/#contract-vllm_mlx.request.Request.append_output_token"><code>vllm_mlx.request.Request.append_output_token</code></a></td>
<td>method</td>
<td><code>vllm_mlx.request.Request.append_output_token(token_id: int) -&gt; None</code></td>
<td>Append a generated token to the output.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/request.py#L170-L173">#L170-L173</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.request.request.get_finish_reason method vllm_mlx.request.request.get_finish_reason() -&gt; optional[str] get the finish reason if finished.">
<td><a href="../api/vllm_mlx/request/#contract-vllm_mlx.request.Request.get_finish_reason"><code>vllm_mlx.request.Request.get_finish_reason</code></a></td>
<td>method</td>
<td><code>vllm_mlx.request.Request.get_finish_reason() -&gt; Optional[str]</code></td>
<td>Get the finish reason if finished.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/request.py#L164-L168">#L164-L168</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.request.request.is_finished method vllm_mlx.request.request.is_finished() -&gt; bool check if request has finished.">
<td><a href="../api/vllm_mlx/request/#contract-vllm_mlx.request.Request.is_finished"><code>vllm_mlx.request.Request.is_finished</code></a></td>
<td>method</td>
<td><code>vllm_mlx.request.Request.is_finished() -&gt; bool</code></td>
<td>Check if request has finished.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/request.py#L160-L162">#L160-L162</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.request.request.max_tokens method vllm_mlx.request.request.max_tokens() -&gt; int maximum output tokens for this request.">
<td><a href="../api/vllm_mlx/request/#contract-vllm_mlx.request.Request.max_tokens"><code>vllm_mlx.request.Request.max_tokens</code></a></td>
<td>method</td>
<td><code>vllm_mlx.request.Request.max_tokens() -&gt; int</code></td>
<td>Maximum output tokens for this request.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/request.py#L156-L158">#L156-L158</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.request.request.num_output_tokens method vllm_mlx.request.request.num_output_tokens() -&gt; int number of output tokens generated so far.">
<td><a href="../api/vllm_mlx/request/#contract-vllm_mlx.request.Request.num_output_tokens"><code>vllm_mlx.request.Request.num_output_tokens</code></a></td>
<td>method</td>
<td><code>vllm_mlx.request.Request.num_output_tokens() -&gt; int</code></td>
<td>Number of output tokens generated so far.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/request.py#L146-L148">#L146-L148</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.request.request.num_tokens method vllm_mlx.request.request.num_tokens() -&gt; int total number of tokens (prompt + output).">
<td><a href="../api/vllm_mlx/request/#contract-vllm_mlx.request.Request.num_tokens"><code>vllm_mlx.request.Request.num_tokens</code></a></td>
<td>method</td>
<td><code>vllm_mlx.request.Request.num_tokens() -&gt; int</code></td>
<td>Total number of tokens (prompt + output).</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/request.py#L151-L153">#L151-L153</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.request.request.set_finished method vllm_mlx.request.request.set_finished(status: requeststatus, reason: optional[str] = none) -&gt; none mark the request as finished.">
<td><a href="../api/vllm_mlx/request/#contract-vllm_mlx.request.Request.set_finished"><code>vllm_mlx.request.Request.set_finished</code></a></td>
<td>method</td>
<td><code>vllm_mlx.request.Request.set_finished(status: RequestStatus, reason: Optional[str] = None) -&gt; None</code></td>
<td>Mark the request as finished.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/request.py#L175-L178">#L175-L178</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="class" data-symbol-search="vllm_mlx.request.requestoutput class vllm_mlx.request.requestoutput(request_id: str, new_token_ids: list[int] = field(default_factory=list), new_text: str = &#x27;&#x27;, output_token_ids: list[int] = field(default_factory=list), output_text: str = &#x27;&#x27;, finished: bool = false, finish_reason: optional[str] = none, prompt_tokens: int = 0, completion_tokens: int = 0, mtp_drafts: int = 0, mtp_accepted: int = 0) output for a single request after a generation step.">
<td><a href="../api/vllm_mlx/request/#contract-vllm_mlx.request.RequestOutput"><code>vllm_mlx.request.RequestOutput</code></a></td>
<td>class</td>
<td><code>vllm_mlx.request.RequestOutput(request_id: str, new_token_ids: List[int] = field(default_factory=list), new_text: str = &#x27;&#x27;, output_token_ids: List[int] = field(default_factory=list), output_text: str = &#x27;&#x27;, finished: bool = False, finish_reason: Optional[str] = None, prompt_tokens: int = 0, completion_tokens: int = 0, mtp_drafts: int = 0, mtp_accepted: int = 0)</code></td>
<td>Output for a single request after a generation step.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/request.py#L196-L227">#L196-L227</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.request.requestoutput.usage method vllm_mlx.request.requestoutput.usage() -&gt; dict[str, int] return usage statistics compatible with openai api.">
<td><a href="../api/vllm_mlx/request/#contract-vllm_mlx.request.RequestOutput.usage"><code>vllm_mlx.request.RequestOutput.usage</code></a></td>
<td>method</td>
<td><code>vllm_mlx.request.RequestOutput.usage() -&gt; Dict[str, int]</code></td>
<td>Return usage statistics compatible with OpenAI API.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/request.py#L221-L227">#L221-L227</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="class" data-symbol-search="vllm_mlx.request.requeststatus class vllm_mlx.request.requeststatus() status of a request in the scheduling system.">
<td><a href="../api/vllm_mlx/request/#contract-vllm_mlx.request.RequestStatus"><code>vllm_mlx.request.RequestStatus</code></a></td>
<td>class</td>
<td><code>vllm_mlx.request.RequestStatus()</code></td>
<td>Status of a request in the scheduling system.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/request.py#L18-L48">#L18-L48</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.request.requeststatus.get_finish_reason method vllm_mlx.request.requeststatus.get_finish_reason(status: &#x27;requeststatus&#x27;) -&gt; optional[str] get the finish reason string for a finished status.">
<td><a href="../api/vllm_mlx/request/#contract-vllm_mlx.request.RequestStatus.get_finish_reason"><code>vllm_mlx.request.RequestStatus.get_finish_reason</code></a></td>
<td>method</td>
<td><code>vllm_mlx.request.RequestStatus.get_finish_reason(status: &#x27;RequestStatus&#x27;) -&gt; Optional[str]</code></td>
<td>Get the finish reason string for a finished status.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/request.py#L40-L48">#L40-L48</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.request.requeststatus.is_finished method vllm_mlx.request.requeststatus.is_finished(status: &#x27;requeststatus&#x27;) -&gt; bool check if the status indicates a finished request.">
<td><a href="../api/vllm_mlx/request/#contract-vllm_mlx.request.RequestStatus.is_finished"><code>vllm_mlx.request.RequestStatus.is_finished</code></a></td>
<td>method</td>
<td><code>vllm_mlx.request.RequestStatus.is_finished(status: &#x27;RequestStatus&#x27;) -&gt; bool</code></td>
<td>Check if the status indicates a finished request.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/request.py#L35-L37">#L35-L37</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="class" data-symbol-search="vllm_mlx.request.samplingparams class vllm_mlx.request.samplingparams(max_tokens: int = 256, temperature: float = 0.7, top_p: float = 0.9, top_k: int = 0, min_p: float = 0.0, presence_penalty: float = 0.0, repetition_penalty: float = 1.0, stop: optional[list[str]] = none, stop_token_ids: optional[list[int]] = none, logits_processors: optional[list[callable]] = none) sampling parameters for text generation.">
<td><a href="../api/vllm_mlx/request/#contract-vllm_mlx.request.SamplingParams"><code>vllm_mlx.request.SamplingParams</code></a></td>
<td>class</td>
<td><code>vllm_mlx.request.SamplingParams(max_tokens: int = 256, temperature: float = 0.7, top_p: float = 0.9, top_k: int = 0, min_p: float = 0.0, presence_penalty: float = 0.0, repetition_penalty: float = 1.0, stop: Optional[List[str]] = None, stop_token_ids: Optional[List[int]] = None, logits_processors: Optional[List[Callable]] = None)</code></td>
<td>Sampling parameters for text generation.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/request.py#L52-L73">#L52-L73</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.request.samplingparams.__post_init__ method vllm_mlx.request.samplingparams.__post_init__() -&gt; not annotated method `samplingparams.__post_init__` updates `self.stop`, `self.stop_token_ids`.">
<td><a href="../api/vllm_mlx/request/#contract-vllm_mlx.request.SamplingParams.__post_init__"><code>vllm_mlx.request.SamplingParams.__post_init__</code></a></td>
<td>method</td>
<td><code>vllm_mlx.request.SamplingParams.__post_init__() -&gt; not annotated</code></td>
<td>Method `SamplingParams.__post_init__` updates `self.stop`, `self.stop_token_ids`.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/request.py#L69-L73">#L69-L73</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.rerank._build_classifier_model function vllm_mlx.rerank._build_classifier_model(model_type, config, weights, num_labels) -&gt; not annotated build an mlx sequence classification model from config and weights.">
<td><a href="../api/vllm_mlx/rerank/#contract-vllm_mlx.rerank._build_classifier_model"><code>vllm_mlx.rerank._build_classifier_model</code></a></td>
<td>function</td>
<td><code>vllm_mlx.rerank._build_classifier_model(model_type, config, weights, num_labels) -&gt; not annotated</code></td>
<td>Build an MLX sequence classification model from config and weights.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/rerank.py#L341-L349">#L341-L349</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="class" data-symbol-search="vllm_mlx.rerank._classifieroutput class vllm_mlx.rerank._classifieroutput(logits: mx.array) simple container for classifier output logits.">
<td><a href="../api/vllm_mlx/rerank/#contract-vllm_mlx.rerank._ClassifierOutput"><code>vllm_mlx.rerank._ClassifierOutput</code></a></td>
<td>class</td>
<td><code>vllm_mlx.rerank._ClassifierOutput(logits: mx.array)</code></td>
<td>Simple container for classifier output logits.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/rerank.py#L394-L398">#L394-L398</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.rerank._classifieroutput.__init__ method vllm_mlx.rerank._classifieroutput.__init__(logits: mx.array) -&gt; not annotated method `_classifieroutput.__init__` updates `self.logits`.">
<td><a href="../api/vllm_mlx/rerank/#contract-vllm_mlx.rerank._ClassifierOutput.__init__"><code>vllm_mlx.rerank._ClassifierOutput.__init__</code></a></td>
<td>method</td>
<td><code>vllm_mlx.rerank._ClassifierOutput.__init__(logits: mx.array) -&gt; not annotated</code></td>
<td>Method `_ClassifierOutput.__init__` updates `self.logits`.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/rerank.py#L397-L398">#L397-L398</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="class" data-symbol-search="vllm_mlx.rerank._mlxclassifierwrapper class vllm_mlx.rerank._mlxclassifierwrapper(config: dict, weights: dict, num_labels: int) minimal mlx wrapper for sequence classification models.">
<td><a href="../api/vllm_mlx/rerank/#contract-vllm_mlx.rerank._MLXClassifierWrapper"><code>vllm_mlx.rerank._MLXClassifierWrapper</code></a></td>
<td>class</td>
<td><code>vllm_mlx.rerank._MLXClassifierWrapper(config: dict, weights: dict, num_labels: int)</code></td>
<td>Minimal MLX wrapper for sequence classification models.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/rerank.py#L352-L391">#L352-L391</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.rerank._mlxclassifierwrapper.__call__ method vllm_mlx.rerank._mlxclassifierwrapper.__call__(input_ids: mx.array, attention_mask: mx.array = none) -&gt; not annotated forward pass through the classifier.">
<td><a href="../api/vllm_mlx/rerank/#contract-vllm_mlx.rerank._MLXClassifierWrapper.__call__"><code>vllm_mlx.rerank._MLXClassifierWrapper.__call__</code></a></td>
<td>method</td>
<td><code>vllm_mlx.rerank._MLXClassifierWrapper.__call__(input_ids: mx.array, attention_mask: mx.array = None) -&gt; not annotated</code></td>
<td>Forward pass through the classifier.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/rerank.py#L371-L391">#L371-L391</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.rerank._mlxclassifierwrapper.__init__ method vllm_mlx.rerank._mlxclassifierwrapper.__init__(config: dict, weights: dict, num_labels: int) -&gt; not annotated method `_mlxclassifierwrapper.__init__` updates `self.config`, `self.weights`, `self.num_labels`, `self._params`; calls `list`, `weights.values`.">
<td><a href="../api/vllm_mlx/rerank/#contract-vllm_mlx.rerank._MLXClassifierWrapper.__init__"><code>vllm_mlx.rerank._MLXClassifierWrapper.__init__</code></a></td>
<td>method</td>
<td><code>vllm_mlx.rerank._MLXClassifierWrapper.__init__(config: dict, weights: dict, num_labels: int) -&gt; not annotated</code></td>
<td>Method `_MLXClassifierWrapper.__init__` updates `self.config`, `self.weights`, `self.num_labels`, `self._params`; calls `list`, `weights.values`.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/rerank.py#L361-L365">#L361-L365</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.rerank._mlxclassifierwrapper.parameters method vllm_mlx.rerank._mlxclassifierwrapper.parameters() -&gt; not annotated return model parameters for mx.eval.">
<td><a href="../api/vllm_mlx/rerank/#contract-vllm_mlx.rerank._MLXClassifierWrapper.parameters"><code>vllm_mlx.rerank._MLXClassifierWrapper.parameters</code></a></td>
<td>method</td>
<td><code>vllm_mlx.rerank._MLXClassifierWrapper.parameters() -&gt; not annotated</code></td>
<td>Return model parameters for mx.eval.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/rerank.py#L367-L369">#L367-L369</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.rerank.get_adapter function vllm_mlx.rerank.get_adapter(model_name: str) -&gt; rerankadapter return the appropriate adapter for a model.">
<td><a href="../api/vllm_mlx/rerank/#contract-vllm_mlx.rerank.get_adapter"><code>vllm_mlx.rerank.get_adapter</code></a></td>
<td>function</td>
<td><code>vllm_mlx.rerank.get_adapter(model_name: str) -&gt; RerankAdapter</code></td>
<td>Return the appropriate adapter for a model.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/rerank.py#L124-L133">#L124-L133</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="class" data-symbol-search="vllm_mlx.rerank.rerankadapter class vllm_mlx.rerank.rerankadapter() per-family adapter for reranker models.">
<td><a href="../api/vllm_mlx/rerank/#contract-vllm_mlx.rerank.RerankAdapter"><code>vllm_mlx.rerank.RerankAdapter</code></a></td>
<td>class</td>
<td><code>vllm_mlx.rerank.RerankAdapter()</code></td>
<td>Per-family adapter for reranker models.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/rerank.py#L29-L80">#L29-L80</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.rerank.rerankadapter.extract_score method vllm_mlx.rerank.rerankadapter.extract_score(logits) -&gt; float extract a raw relevance score from model output logits.">
<td><a href="../api/vllm_mlx/rerank/#contract-vllm_mlx.rerank.RerankAdapter.extract_score"><code>vllm_mlx.rerank.RerankAdapter.extract_score</code></a></td>
<td>method</td>
<td><code>vllm_mlx.rerank.RerankAdapter.extract_score(logits) -&gt; float</code></td>
<td>Extract a raw relevance score from model output logits.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/rerank.py#L57-L67">#L57-L67</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.rerank.rerankadapter.normalize method vllm_mlx.rerank.rerankadapter.normalize(raw_score: float) -&gt; float normalize a raw score to [0, 1] range.">
<td><a href="../api/vllm_mlx/rerank/#contract-vllm_mlx.rerank.RerankAdapter.normalize"><code>vllm_mlx.rerank.RerankAdapter.normalize</code></a></td>
<td>method</td>
<td><code>vllm_mlx.rerank.RerankAdapter.normalize(raw_score: float) -&gt; float</code></td>
<td>Normalize a raw score to [0, 1] range.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/rerank.py#L70-L80">#L70-L80</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.rerank.rerankadapter.tokenize_pair method vllm_mlx.rerank.rerankadapter.tokenize_pair(tokenizer, query: str, document: str, max_length: int) -&gt; dict tokenize a (query, document) pair for the cross-encoder.">
<td><a href="../api/vllm_mlx/rerank/#contract-vllm_mlx.rerank.RerankAdapter.tokenize_pair"><code>vllm_mlx.rerank.RerankAdapter.tokenize_pair</code></a></td>
<td>method</td>
<td><code>vllm_mlx.rerank.RerankAdapter.tokenize_pair(tokenizer, query: str, document: str, max_length: int) -&gt; dict</code></td>
<td>Tokenize a (query, document) pair for the cross-encoder.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/rerank.py#L39-L54">#L39-L54</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="class" data-symbol-search="vllm_mlx.rerank.rerankengine class vllm_mlx.rerank.rerankengine(model_name: str, token_budget: int = 4096, max_concurrency: int = 1) reranker engine for cross-encoder sequence classification models.">
<td><a href="../api/vllm_mlx/rerank/#contract-vllm_mlx.rerank.RerankEngine"><code>vllm_mlx.rerank.RerankEngine</code></a></td>
<td>class</td>
<td><code>vllm_mlx.rerank.RerankEngine(model_name: str, token_budget: int = 4096, max_concurrency: int = 1)</code></td>
<td>Reranker engine for cross-encoder sequence classification models.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/rerank.py#L136-L338">#L136-L338</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.rerank.rerankengine.__init__ method vllm_mlx.rerank.rerankengine.__init__(model_name: str, token_budget: int = 4096, max_concurrency: int = 1) -&gt; not annotated method `rerankengine.__init__` updates `self.model_name`, `self.token_budget`, `self.max_concurrency`, `self._semaphore`; calls `asyncio.semaphore`.">
<td><a href="../api/vllm_mlx/rerank/#contract-vllm_mlx.rerank.RerankEngine.__init__"><code>vllm_mlx.rerank.RerankEngine.__init__</code></a></td>
<td>method</td>
<td><code>vllm_mlx.rerank.RerankEngine.__init__(model_name: str, token_budget: int = 4096, max_concurrency: int = 1) -&gt; not annotated</code></td>
<td>Method `RerankEngine.__init__` updates `self.model_name`, `self.token_budget`, `self.max_concurrency`, `self._semaphore`; calls `asyncio.Semaphore`.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/rerank.py#L147-L159">#L147-L159</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.rerank.rerankengine._ensure_loaded method vllm_mlx.rerank.rerankengine._ensure_loaded() -&gt; none method `rerankengine._ensure_loaded` calls `self.load`.">
<td><a href="../api/vllm_mlx/rerank/#contract-vllm_mlx.rerank.RerankEngine._ensure_loaded"><code>vllm_mlx.rerank.RerankEngine._ensure_loaded</code></a></td>
<td>method</td>
<td><code>vllm_mlx.rerank.RerankEngine._ensure_loaded() -&gt; None</code></td>
<td>Method `RerankEngine._ensure_loaded` calls `self.load`.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/rerank.py#L232-L234">#L232-L234</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.rerank.rerankengine._load_mlx_model method vllm_mlx.rerank.rerankengine._load_mlx_model(model_name: str) -&gt; not annotated load an mlx cross-encoder model from huggingface hub.">
<td><a href="../api/vllm_mlx/rerank/#contract-vllm_mlx.rerank.RerankEngine._load_mlx_model"><code>vllm_mlx.rerank.RerankEngine._load_mlx_model</code></a></td>
<td>method</td>
<td><code>vllm_mlx.rerank.RerankEngine._load_mlx_model(model_name: str) -&gt; not annotated</code></td>
<td>Load an MLX cross-encoder model from HuggingFace Hub.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/rerank.py#L187-L230">#L187-L230</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.rerank.rerankengine.is_loaded method vllm_mlx.rerank.rerankengine.is_loaded() -&gt; bool return whether the reranking model has been loaded.">
<td><a href="../api/vllm_mlx/rerank/#contract-vllm_mlx.rerank.RerankEngine.is_loaded"><code>vllm_mlx.rerank.RerankEngine.is_loaded</code></a></td>
<td>method</td>
<td><code>vllm_mlx.rerank.RerankEngine.is_loaded() -&gt; bool</code></td>
<td>Return whether the reranking model has been loaded.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/rerank.py#L162-L165">#L162-L165</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.rerank.rerankengine.load method vllm_mlx.rerank.rerankengine.load() -&gt; none load the cross-encoder model and tokenizer.">
<td><a href="../api/vllm_mlx/rerank/#contract-vllm_mlx.rerank.RerankEngine.load"><code>vllm_mlx.rerank.RerankEngine.load</code></a></td>
<td>method</td>
<td><code>vllm_mlx.rerank.RerankEngine.load() -&gt; None</code></td>
<td>Load the cross-encoder model and tokenizer.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/rerank.py#L167-L184">#L167-L184</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.rerank.rerankengine.score_pairs method vllm_mlx.rerank.rerankengine.score_pairs(query: str, documents: list[str]) -&gt; tuple[list[float], int] score each (query, document) pair and return normalized relevance scores.">
<td><a href="../api/vllm_mlx/rerank/#contract-vllm_mlx.rerank.RerankEngine.score_pairs"><code>vllm_mlx.rerank.RerankEngine.score_pairs</code></a></td>
<td>method</td>
<td><code>vllm_mlx.rerank.RerankEngine.score_pairs(query: str, documents: list[str]) -&gt; tuple[list[float], int]</code></td>
<td>Score each (query, document) pair and return normalized relevance scores.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/rerank.py#L236-L338">#L236-L338</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="class" data-symbol-search="vllm_mlx.rerank.sigmoidadapter class vllm_mlx.rerank.sigmoidadapter() default adapter for single-logit sigmoid rerankers.">
<td><a href="../api/vllm_mlx/rerank/#contract-vllm_mlx.rerank.SigmoidAdapter"><code>vllm_mlx.rerank.SigmoidAdapter</code></a></td>
<td>class</td>
<td><code>vllm_mlx.rerank.SigmoidAdapter()</code></td>
<td>Default adapter for single-logit sigmoid rerankers.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/rerank.py#L83-L111">#L83-L111</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.rerank.sigmoidadapter.extract_score method vllm_mlx.rerank.sigmoidadapter.extract_score(logits) -&gt; float extract the first logit as the relevance score.">
<td><a href="../api/vllm_mlx/rerank/#contract-vllm_mlx.rerank.SigmoidAdapter.extract_score"><code>vllm_mlx.rerank.SigmoidAdapter.extract_score</code></a></td>
<td>method</td>
<td><code>vllm_mlx.rerank.SigmoidAdapter.extract_score(logits) -&gt; float</code></td>
<td>Extract the first logit as the relevance score.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/rerank.py#L105-L107">#L105-L107</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.rerank.sigmoidadapter.normalize method vllm_mlx.rerank.sigmoidadapter.normalize(raw_score: float) -&gt; float apply sigmoid normalization.">
<td><a href="../api/vllm_mlx/rerank/#contract-vllm_mlx.rerank.SigmoidAdapter.normalize"><code>vllm_mlx.rerank.SigmoidAdapter.normalize</code></a></td>
<td>method</td>
<td><code>vllm_mlx.rerank.SigmoidAdapter.normalize(raw_score: float) -&gt; float</code></td>
<td>Apply sigmoid normalization.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/rerank.py#L109-L111">#L109-L111</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.rerank.sigmoidadapter.tokenize_pair method vllm_mlx.rerank.sigmoidadapter.tokenize_pair(tokenizer, query: str, document: str, max_length: int) -&gt; dict tokenize as a sentence pair (query, document).">
<td><a href="../api/vllm_mlx/rerank/#contract-vllm_mlx.rerank.SigmoidAdapter.tokenize_pair"><code>vllm_mlx.rerank.SigmoidAdapter.tokenize_pair</code></a></td>
<td>method</td>
<td><code>vllm_mlx.rerank.SigmoidAdapter.tokenize_pair(tokenizer, query: str, document: str, max_length: int) -&gt; dict</code></td>
<td>Tokenize as a sentence pair (query, document).</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/rerank.py#L92-L103">#L92-L103</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.rerank_forward._apply_hidden_activation function vllm_mlx.rerank_forward._apply_hidden_activation(x: mx.array, config: dict) -&gt; mx.array apply the configured encoder hidden activation.">
<td><a href="../api/vllm_mlx/rerank_forward/#contract-vllm_mlx.rerank_forward._apply_hidden_activation"><code>vllm_mlx.rerank_forward._apply_hidden_activation</code></a></td>
<td>function</td>
<td><code>vllm_mlx.rerank_forward._apply_hidden_activation(x: mx.array, config: dict) -&gt; mx.array</code></td>
<td>Apply the configured encoder hidden activation.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/rerank_forward.py#L240-L265">#L240-L265</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.rerank_forward._classification_head_forward function vllm_mlx.rerank_forward._classification_head_forward(pooled: mx.array, weights: dict[str, mx.array]) -&gt; mx.array run bert flat or xlm-roberta two-layer sequence-classification head.">
<td><a href="../api/vllm_mlx/rerank_forward/#contract-vllm_mlx.rerank_forward._classification_head_forward"><code>vllm_mlx.rerank_forward._classification_head_forward</code></a></td>
<td>function</td>
<td><code>vllm_mlx.rerank_forward._classification_head_forward(pooled: mx.array, weights: dict[str, mx.array]) -&gt; mx.array</code></td>
<td>Run BERT flat or XLM-RoBERTa two-layer sequence-classification head.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/rerank_forward.py#L108-L122">#L108-L122</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.rerank_forward._detect_prefix function vllm_mlx.rerank_forward._detect_prefix(weights: dict) -&gt; str detect the model weight prefix (bert, roberta, xlm-roberta).">
<td><a href="../api/vllm_mlx/rerank_forward/#contract-vllm_mlx.rerank_forward._detect_prefix"><code>vllm_mlx.rerank_forward._detect_prefix</code></a></td>
<td>function</td>
<td><code>vllm_mlx.rerank_forward._detect_prefix(weights: dict) -&gt; str</code></td>
<td>Detect the model weight prefix (bert, roberta, xlm-roberta).</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/rerank_forward.py#L125-L135">#L125-L135</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.rerank_forward._encoder_layer function vllm_mlx.rerank_forward._encoder_layer(hidden: mx.array, ext_mask: mx.array | none, weights: dict, prefix: str, num_heads: int, head_dim: int, eps: float, config: dict) -&gt; mx.array run one bert encoder layer (self-attention + ffn).">
<td><a href="../api/vllm_mlx/rerank_forward/#contract-vllm_mlx.rerank_forward._encoder_layer"><code>vllm_mlx.rerank_forward._encoder_layer</code></a></td>
<td>function</td>
<td><code>vllm_mlx.rerank_forward._encoder_layer(hidden: mx.array, ext_mask: mx.array | None, weights: dict, prefix: str, num_heads: int, head_dim: int, eps: float, config: dict) -&gt; mx.array</code></td>
<td>Run one BERT encoder layer (self-attention + FFN).</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/rerank_forward.py#L145-L217">#L145-L217</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.rerank_forward._gelu function vllm_mlx.rerank_forward._gelu(x: mx.array) -&gt; mx.array gelu activation (exact form).">
<td><a href="../api/vllm_mlx/rerank_forward/#contract-vllm_mlx.rerank_forward._gelu"><code>vllm_mlx.rerank_forward._gelu</code></a></td>
<td>function</td>
<td><code>vllm_mlx.rerank_forward._gelu(x: mx.array) -&gt; mx.array</code></td>
<td>GELU activation (exact form).</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/rerank_forward.py#L220-L222">#L220-L222</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.rerank_forward._gelu_new function vllm_mlx.rerank_forward._gelu_new(x: mx.array) -&gt; mx.array bert gelu approximation used by transformers gelu_new.">
<td><a href="../api/vllm_mlx/rerank_forward/#contract-vllm_mlx.rerank_forward._gelu_new"><code>vllm_mlx.rerank_forward._gelu_new</code></a></td>
<td>function</td>
<td><code>vllm_mlx.rerank_forward._gelu_new(x: mx.array) -&gt; mx.array</code></td>
<td>BERT GELU approximation used by transformers gelu_new.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/rerank_forward.py#L225-L227">#L225-L227</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.rerank_forward._layer_norm function vllm_mlx.rerank_forward._layer_norm(x: mx.array, weight: mx.array, bias: mx.array, eps: float) -&gt; mx.array apply layer normalization.">
<td><a href="../api/vllm_mlx/rerank_forward/#contract-vllm_mlx.rerank_forward._layer_norm"><code>vllm_mlx.rerank_forward._layer_norm</code></a></td>
<td>function</td>
<td><code>vllm_mlx.rerank_forward._layer_norm(x: mx.array, weight: mx.array, bias: mx.array, eps: float) -&gt; mx.array</code></td>
<td>Apply layer normalization.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/rerank_forward.py#L138-L142">#L138-L142</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.rerank_forward._position_ids_for_config function vllm_mlx.rerank_forward._position_ids_for_config(config: dict, input_ids: mx.array, attention_mask: mx.array | none) -&gt; mx.array build bert or roberta-family absolute position ids.">
<td><a href="../api/vllm_mlx/rerank_forward/#contract-vllm_mlx.rerank_forward._position_ids_for_config"><code>vllm_mlx.rerank_forward._position_ids_for_config</code></a></td>
<td>function</td>
<td><code>vllm_mlx.rerank_forward._position_ids_for_config(config: dict, input_ids: mx.array, attention_mask: mx.array | None) -&gt; mx.array</code></td>
<td>Build BERT or RoBERTa-family absolute position IDs.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/rerank_forward.py#L88-L105">#L88-L105</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.rerank_forward._relu function vllm_mlx.rerank_forward._relu(x: mx.array) -&gt; mx.array relu activation.">
<td><a href="../api/vllm_mlx/rerank_forward/#contract-vllm_mlx.rerank_forward._relu"><code>vllm_mlx.rerank_forward._relu</code></a></td>
<td>function</td>
<td><code>vllm_mlx.rerank_forward._relu(x: mx.array) -&gt; mx.array</code></td>
<td>ReLU activation.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/rerank_forward.py#L230-L232">#L230-L232</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.rerank_forward._silu function vllm_mlx.rerank_forward._silu(x: mx.array) -&gt; mx.array silu/swish activation.">
<td><a href="../api/vllm_mlx/rerank_forward/#contract-vllm_mlx.rerank_forward._silu"><code>vllm_mlx.rerank_forward._silu</code></a></td>
<td>function</td>
<td><code>vllm_mlx.rerank_forward._silu(x: mx.array) -&gt; mx.array</code></td>
<td>SiLU/swish activation.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/rerank_forward.py#L235-L237">#L235-L237</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.rerank_forward.classifier_forward function vllm_mlx.rerank_forward.classifier_forward(input_ids: mx.array, attention_mask: mx.array, weights: dict[str, mx.array], config: dict) -&gt; mx.array run a bert-family classifier forward pass on mlx.">
<td><a href="../api/vllm_mlx/rerank_forward/#contract-vllm_mlx.rerank_forward.classifier_forward"><code>vllm_mlx.rerank_forward.classifier_forward</code></a></td>
<td>function</td>
<td><code>vllm_mlx.rerank_forward.classifier_forward(input_ids: mx.array, attention_mask: mx.array, weights: dict[str, mx.array], config: dict) -&gt; mx.array</code></td>
<td>Run a BERT-family classifier forward pass on MLX.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/rerank_forward.py#L16-L85">#L16-L85</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.scheduler._configure_chunked_prefill function vllm_mlx.scheduler._configure_chunked_prefill(scheduler: &#x27;scheduler&#x27;, batch_gen: &#x27;batchgenerator&#x27;, budget: int, prompt_cache_save) -&gt; none enable the matching legacy or native mlx-lm chunked-prefill api.">
<td><a href="../api/vllm_mlx/scheduler/#contract-vllm_mlx.scheduler._configure_chunked_prefill"><code>vllm_mlx.scheduler._configure_chunked_prefill</code></a></td>
<td>function</td>
<td><code>vllm_mlx.scheduler._configure_chunked_prefill(scheduler: &#x27;Scheduler&#x27;, batch_gen: &#x27;BatchGenerator&#x27;, budget: int, prompt_cache_save) -&gt; None</code></td>
<td>Enable the matching legacy or native mlx-lm chunked-prefill API.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/scheduler.py#L722-L777">#L722-L777</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.scheduler._install_chunked_prefill function vllm_mlx.scheduler._install_chunked_prefill(batch_gen: &#x27;batchgenerator&#x27;, budget: int, mid_prefill_save = none, prompt_cache_save = none, pending_abort_ids: optional[set[str]] = none, uid_to_request_id: optional[dict[int, str]] = none, requests: optional[dict[str, any]] = none) -&gt; none monkey-patch a batchgenerator instance so that large prefills are broken into chunks of at most *budget* tokens each.">
<td><a href="../api/vllm_mlx/scheduler/#contract-vllm_mlx.scheduler._install_chunked_prefill"><code>vllm_mlx.scheduler._install_chunked_prefill</code></a></td>
<td>function</td>
<td><code>vllm_mlx.scheduler._install_chunked_prefill(batch_gen: &#x27;BatchGenerator&#x27;, budget: int, mid_prefill_save = None, prompt_cache_save = None, pending_abort_ids: Optional[Set[str]] = None, uid_to_request_id: Optional[Dict[int, str]] = None, requests: Optional[Dict[str, Any]] = None) -&gt; None</code></td>
<td>Monkey-patch a BatchGenerator instance so that large prefills are broken into chunks of at most *budget* tokens each.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/scheduler.py#L190-L697">#L190-L697</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="nested class" data-symbol-search="vllm_mlx.scheduler._install_chunked_prefill._batch_cls nested class vllm_mlx.scheduler._install_chunked_prefill._batch_cls(uids: list[int], y: any, logprobs: list[any], max_tokens: list[int], num_tokens: list[int], cache: list[any], samplers: list[any], logits_processors: list[any], tokens: list[any]) nested class `_install_chunked_prefill._batch_cls` declares 4 direct member(s).">
<td><a href="../api/vllm_mlx/scheduler/#contract-vllm_mlx.scheduler._install_chunked_prefill._batch_cls"><code>vllm_mlx.scheduler._install_chunked_prefill._batch_cls</code></a></td>
<td>nested class</td>
<td><code>vllm_mlx.scheduler._install_chunked_prefill._batch_cls(uids: List[int], y: Any, logprobs: List[Any], max_tokens: List[int], num_tokens: List[int], cache: List[Any], samplers: List[Any], logits_processors: List[Any], tokens: List[Any])</code></td>
<td>Nested Class `_install_chunked_prefill._batch_cls` declares 4 direct member(s).</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/scheduler.py#L233-L273">#L233-L273</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="nested function" data-symbol-search="vllm_mlx.scheduler._install_chunked_prefill._batch_cls.__len__ nested function vllm_mlx.scheduler._install_chunked_prefill._batch_cls.__len__() -&gt; not annotated nested function `_install_chunked_prefill._batch_cls.__len__` calls `len`; returns `len(self.uids)`.">
<td><a href="../api/vllm_mlx/scheduler/#contract-vllm_mlx.scheduler._install_chunked_prefill._batch_cls.__len__"><code>vllm_mlx.scheduler._install_chunked_prefill._batch_cls.__len__</code></a></td>
<td>nested function</td>
<td><code>vllm_mlx.scheduler._install_chunked_prefill._batch_cls.__len__() -&gt; not annotated</code></td>
<td>Nested Function `_install_chunked_prefill._batch_cls.__len__` calls `len`; returns `len(self.uids)`.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/scheduler.py#L244-L245">#L244-L245</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="nested function" data-symbol-search="vllm_mlx.scheduler._install_chunked_prefill._batch_cls.extend nested function vllm_mlx.scheduler._install_chunked_prefill._batch_cls.extend(other) -&gt; not annotated nested function `_install_chunked_prefill._batch_cls.extend` updates `self.y`; calls `self.uids.extend`, `mx.concatenate`, `self.logprobs.extend`, `self.num_tokens.extend`.">
<td><a href="../api/vllm_mlx/scheduler/#contract-vllm_mlx.scheduler._install_chunked_prefill._batch_cls.extend"><code>vllm_mlx.scheduler._install_chunked_prefill._batch_cls.extend</code></a></td>
<td>nested function</td>
<td><code>vllm_mlx.scheduler._install_chunked_prefill._batch_cls.extend(other) -&gt; not annotated</code></td>
<td>Nested Function `_install_chunked_prefill._batch_cls.extend` updates `self.y`; calls `self.uids.extend`, `mx.concatenate`, `self.logprobs.extend`, `self.num_tokens.extend`.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/scheduler.py#L260-L270">#L260-L270</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="nested function" data-symbol-search="vllm_mlx.scheduler._install_chunked_prefill._batch_cls.extract_cache nested function vllm_mlx.scheduler._install_chunked_prefill._batch_cls.extract_cache(idx) -&gt; not annotated nested function `_install_chunked_prefill._batch_cls.extract_cache` calls `c.extract`; returns `[c.extract(idx) for c in self.cache]`.">
<td><a href="../api/vllm_mlx/scheduler/#contract-vllm_mlx.scheduler._install_chunked_prefill._batch_cls.extract_cache"><code>vllm_mlx.scheduler._install_chunked_prefill._batch_cls.extract_cache</code></a></td>
<td>nested function</td>
<td><code>vllm_mlx.scheduler._install_chunked_prefill._batch_cls.extract_cache(idx) -&gt; not annotated</code></td>
<td>Nested Function `_install_chunked_prefill._batch_cls.extract_cache` calls `c.extract`; returns `[c.extract(idx) for c in self.cache]`.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/scheduler.py#L272-L273">#L272-L273</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="nested function" data-symbol-search="vllm_mlx.scheduler._install_chunked_prefill._batch_cls.filter nested function vllm_mlx.scheduler._install_chunked_prefill._batch_cls.filter(keep_idx: list[int]) -&gt; not annotated nested function `_install_chunked_prefill._batch_cls.filter` updates `self.uids`, `self.logprobs`, `self.max_tokens`, `self.num_tokens`; calls `mx.array`, `c.filter`.">
<td><a href="../api/vllm_mlx/scheduler/#contract-vllm_mlx.scheduler._install_chunked_prefill._batch_cls.filter"><code>vllm_mlx.scheduler._install_chunked_prefill._batch_cls.filter</code></a></td>
<td>nested function</td>
<td><code>vllm_mlx.scheduler._install_chunked_prefill._batch_cls.filter(keep_idx: List[int]) -&gt; not annotated</code></td>
<td>Nested Function `_install_chunked_prefill._batch_cls.filter` updates `self.uids`, `self.logprobs`, `self.max_tokens`, `self.num_tokens`; calls `mx.array`, `c.filter`.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/scheduler.py#L247-L258">#L247-L258</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="nested function" data-symbol-search="vllm_mlx.scheduler._install_chunked_prefill._chunked_next nested function vllm_mlx.scheduler._install_chunked_prefill._chunked_next() -&gt; not annotated replacement for _next() that chunks large prefills.">
<td><a href="../api/vllm_mlx/scheduler/#contract-vllm_mlx.scheduler._install_chunked_prefill._chunked_next"><code>vllm_mlx.scheduler._install_chunked_prefill._chunked_next</code></a></td>
<td>nested function</td>
<td><code>vllm_mlx.scheduler._install_chunked_prefill._chunked_next() -&gt; not annotated</code></td>
<td>Replacement for _next() that chunks large prefills.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/scheduler.py#L362-L678">#L362-L678</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="nested function" data-symbol-search="vllm_mlx.scheduler._install_chunked_prefill._generation_step nested function vllm_mlx.scheduler._install_chunked_prefill._generation_step() -&gt; not annotated run one generation step on the active batch.">
<td><a href="../api/vllm_mlx/scheduler/#contract-vllm_mlx.scheduler._install_chunked_prefill._generation_step"><code>vllm_mlx.scheduler._install_chunked_prefill._generation_step</code></a></td>
<td>nested function</td>
<td><code>vllm_mlx.scheduler._install_chunked_prefill._generation_step() -&gt; not annotated</code></td>
<td>Run one generation step on the active batch.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/scheduler.py#L303-L360">#L303-L360</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="nested function" data-symbol-search="vllm_mlx.scheduler._install_chunked_prefill._lazy_extract_cache nested function vllm_mlx.scheduler._install_chunked_prefill._lazy_extract_cache(cache, idx) -&gt; not annotated nested function `_install_chunked_prefill._lazy_extract_cache` calls `c.extract`; returns `(c.extract(idx) for c in cache)`.">
<td><a href="../api/vllm_mlx/scheduler/#contract-vllm_mlx.scheduler._install_chunked_prefill._lazy_extract_cache"><code>vllm_mlx.scheduler._install_chunked_prefill._lazy_extract_cache</code></a></td>
<td>nested function</td>
<td><code>vllm_mlx.scheduler._install_chunked_prefill._lazy_extract_cache(cache, idx) -&gt; not annotated</code></td>
<td>Nested Function `_install_chunked_prefill._lazy_extract_cache` calls `c.extract`; returns `(c.extract(idx) for c in cache)`.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/scheduler.py#L225-L226">#L225-L226</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="nested function" data-symbol-search="vllm_mlx.scheduler._install_chunked_prefill._patched_process_prompts nested function vllm_mlx.scheduler._install_chunked_prefill._patched_process_prompts(prompts, _self = batch_gen) -&gt; not annotated nested function `_install_chunked_prefill._patched_process_prompts` calls `_orig_process_prompts`, `enumerate`, `prompt_cache_save`, `batch.extract_cache`; returns `batch`.">
<td><a href="../api/vllm_mlx/scheduler/#contract-vllm_mlx.scheduler._install_chunked_prefill._patched_process_prompts"><code>vllm_mlx.scheduler._install_chunked_prefill._patched_process_prompts</code></a></td>
<td>nested function</td>
<td><code>vllm_mlx.scheduler._install_chunked_prefill._patched_process_prompts(prompts, _self = batch_gen) -&gt; not annotated</code></td>
<td>Nested Function `_install_chunked_prefill._patched_process_prompts` calls `_orig_process_prompts`, `enumerate`, `prompt_cache_save`, `batch.extract_cache`; returns `batch`.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/scheduler.py#L291-L299">#L291-L299</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="nested function" data-symbol-search="vllm_mlx.scheduler._install_chunked_prefill._patched_remove nested function vllm_mlx.scheduler._install_chunked_prefill._patched_remove(uids_to_remove, _self = batch_gen) -&gt; not annotated clear partial state if aborted request is being prefilled.">
<td><a href="../api/vllm_mlx/scheduler/#contract-vllm_mlx.scheduler._install_chunked_prefill._patched_remove"><code>vllm_mlx.scheduler._install_chunked_prefill._patched_remove</code></a></td>
<td>nested function</td>
<td><code>vllm_mlx.scheduler._install_chunked_prefill._patched_remove(uids_to_remove, _self = batch_gen) -&gt; not annotated</code></td>
<td>Clear partial state if aborted request is being prefilled.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/scheduler.py#L680-L691">#L680-L691</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.scheduler._install_mtp function vllm_mlx.scheduler._install_mtp(batch_gen: &#x27;batchgenerator&#x27;, model: any, num_draft_tokens: int = 1, optimistic: bool = false, stats_state: optional[&#x27;_mtpstatsstate&#x27;] = none) -&gt; none monkey-patch a batchgenerator to use mtp (multi-token prediction) with always-advance strategy for hybrid mambacache + kvcache.">
<td><a href="../api/vllm_mlx/scheduler/#contract-vllm_mlx.scheduler._install_mtp"><code>vllm_mlx.scheduler._install_mtp</code></a></td>
<td>function</td>
<td><code>vllm_mlx.scheduler._install_mtp(batch_gen: &#x27;BatchGenerator&#x27;, model: Any, num_draft_tokens: int = 1, optimistic: bool = False, stats_state: Optional[&#x27;_MTPStatsState&#x27;] = None) -&gt; None</code></td>
<td>Monkey-patch a BatchGenerator to use MTP (Multi-Token Prediction) with always-advance strategy for hybrid MambaCache + KVCache.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/scheduler.py#L780-L1262">#L780-L1262</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="nested function" data-symbol-search="vllm_mlx.scheduler._install_mtp._get_mtp_stats nested function vllm_mlx.scheduler._install_mtp._get_mtp_stats() -&gt; dict[str, any] nested function `_install_mtp._get_mtp_stats` calls `dict`; returns `{&#x27;enabled&#x27;: true, &#x27;requested_draft_tokens&#x27;: num_draft_tokens, &#x27;effective_draft_tokens&#x27;: 1, &#x27;mode&#x27;: &#x27;always_advance_opti…`.">
<td><a href="../api/vllm_mlx/scheduler/#contract-vllm_mlx.scheduler._install_mtp._get_mtp_stats"><code>vllm_mlx.scheduler._install_mtp._get_mtp_stats</code></a></td>
<td>nested function</td>
<td><code>vllm_mlx.scheduler._install_mtp._get_mtp_stats() -&gt; Dict[str, Any]</code></td>
<td>Nested Function `_install_mtp._get_mtp_stats` calls `dict`; returns `{&#x27;enabled&#x27;: True, &#x27;requested_draft_tokens&#x27;: num_draft_tokens, &#x27;effective_draft_tokens&#x27;: 1, &#x27;mode&#x27;: &#x27;always_advance_opti…`.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/scheduler.py#L823-L845">#L823-L845</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="nested function" data-symbol-search="vllm_mlx.scheduler._install_mtp._mtp_bypass_reasons nested function vllm_mlx.scheduler._install_mtp._mtp_bypass_reasons(input_tokens, prompt_cache) -&gt; not annotated nested function `_install_mtp._mtp_bypass_reasons` calls `reasons.append`; returns `reasons`.">
<td><a href="../api/vllm_mlx/scheduler/#contract-vllm_mlx.scheduler._install_mtp._mtp_bypass_reasons"><code>vllm_mlx.scheduler._install_mtp._mtp_bypass_reasons</code></a></td>
<td>nested function</td>
<td><code>vllm_mlx.scheduler._install_mtp._mtp_bypass_reasons(input_tokens, prompt_cache) -&gt; not annotated</code></td>
<td>Nested Function `_install_mtp._mtp_bypass_reasons` calls `reasons.append`; returns `reasons`.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/scheduler.py#L849-L857">#L849-L857</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="nested function" data-symbol-search="vllm_mlx.scheduler._install_mtp._mtp_next nested function vllm_mlx.scheduler._install_mtp._mtp_next() -&gt; not annotated wrapper around _next that emits deferred mtp draft tokens.">
<td><a href="../api/vllm_mlx/scheduler/#contract-vllm_mlx.scheduler._install_mtp._mtp_next"><code>vllm_mlx.scheduler._install_mtp._mtp_next</code></a></td>
<td>nested function</td>
<td><code>vllm_mlx.scheduler._install_mtp._mtp_next() -&gt; not annotated</code></td>
<td>Wrapper around _next that emits deferred MTP draft tokens.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/scheduler.py#L1147-L1247">#L1147-L1247</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="nested function" data-symbol-search="vllm_mlx.scheduler._install_mtp._mtp_step nested function vllm_mlx.scheduler._install_mtp._mtp_step(input_tokens, prompt_cache, samplers, logits_processors, tokens) -&gt; not annotated extended _step with mtp always-advance strategy.">
<td><a href="../api/vllm_mlx/scheduler/#contract-vllm_mlx.scheduler._install_mtp._mtp_step"><code>vllm_mlx.scheduler._install_mtp._mtp_step</code></a></td>
<td>nested function</td>
<td><code>vllm_mlx.scheduler._install_mtp._mtp_step(input_tokens, prompt_cache, samplers, logits_processors, tokens) -&gt; not annotated</code></td>
<td>Extended _step with MTP always-advance strategy.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/scheduler.py#L864-L1138">#L864-L1138</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="nested function" data-symbol-search="vllm_mlx.scheduler._install_mtp._record_mtp_bypass nested function vllm_mlx.scheduler._install_mtp._record_mtp_bypass(reasons) -&gt; none nested function `_install_mtp._record_mtp_bypass` contains no state mutation, call, raise, return, await, or yield.">
<td><a href="../api/vllm_mlx/scheduler/#contract-vllm_mlx.scheduler._install_mtp._record_mtp_bypass"><code>vllm_mlx.scheduler._install_mtp._record_mtp_bypass</code></a></td>
<td>nested function</td>
<td><code>vllm_mlx.scheduler._install_mtp._record_mtp_bypass(reasons) -&gt; None</code></td>
<td>Nested Function `_install_mtp._record_mtp_bypass` contains no state mutation, call, raise, return, await, or yield.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/scheduler.py#L859-L862">#L859-L862</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.scheduler._install_prompt_cache_save function vllm_mlx.scheduler._install_prompt_cache_save(batch_gen: &#x27;batchgenerator&#x27;, prompt_cache_save) -&gt; none monkey-patch ``_process_prompts`` to capture prompt-only cache state.">
<td><a href="../api/vllm_mlx/scheduler/#contract-vllm_mlx.scheduler._install_prompt_cache_save"><code>vllm_mlx.scheduler._install_prompt_cache_save</code></a></td>
<td>function</td>
<td><code>vllm_mlx.scheduler._install_prompt_cache_save(batch_gen: &#x27;BatchGenerator&#x27;, prompt_cache_save) -&gt; None</code></td>
<td>Monkey-patch ``_process_prompts`` to capture prompt-only cache state.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/scheduler.py#L163-L187">#L163-L187</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="nested function" data-symbol-search="vllm_mlx.scheduler._install_prompt_cache_save._patched_process_prompts nested function vllm_mlx.scheduler._install_prompt_cache_save._patched_process_prompts(prompts, _self = batch_gen) -&gt; not annotated nested function `_install_prompt_cache_save._patched_process_prompts` calls `_orig_process_prompts`, `enumerate`, `prompt_cache_save`, `batch.extract_cache`; returns `batch`.">
<td><a href="../api/vllm_mlx/scheduler/#contract-vllm_mlx.scheduler._install_prompt_cache_save._patched_process_prompts"><code>vllm_mlx.scheduler._install_prompt_cache_save._patched_process_prompts</code></a></td>
<td>nested function</td>
<td><code>vllm_mlx.scheduler._install_prompt_cache_save._patched_process_prompts(prompts, _self = batch_gen) -&gt; not annotated</code></td>
<td>Nested Function `_install_prompt_cache_save._patched_process_prompts` calls `_orig_process_prompts`, `enumerate`, `prompt_cache_save`, `batch.extract_cache`; returns `batch`.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/scheduler.py#L177-L185">#L177-L185</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.scheduler._mtp_status_snapshot function vllm_mlx.scheduler._mtp_status_snapshot(batch_generator) -&gt; dict[str, any] function `_mtp_status_snapshot` calls `getattr`, `callable`, `get_mtp_stats`; has 2 explicit return paths.">
<td><a href="../api/vllm_mlx/scheduler/#contract-vllm_mlx.scheduler._mtp_status_snapshot"><code>vllm_mlx.scheduler._mtp_status_snapshot</code></a></td>
<td>function</td>
<td><code>vllm_mlx.scheduler._mtp_status_snapshot(batch_generator) -&gt; Dict[str, Any]</code></td>
<td>Function `_mtp_status_snapshot` calls `getattr`, `callable`, `get_mtp_stats`; has 2 explicit return paths.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/scheduler.py#L1265-L1269">#L1265-L1269</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="class" data-symbol-search="vllm_mlx.scheduler._mtpstatsstate class vllm_mlx.scheduler._mtpstatsstate(counters: dict[str, int] = field(default_factory=lambda: {&#x27;attempted&#x27;: 0, &#x27;accepted&#x27;: 0, &#x27;rejected&#x27;: 0, &#x27;errors&#x27;: 0}), bypass_counts: dict[str, int] = field(default_factory=lambda: {&#x27;prefill&#x27;: 0, &#x27;no_active_batch&#x27;: 0, &#x27;cache_mismatch&#x27;: 0}), lock: any = field(default_factory=lock)) cumulative native-mtp counters shared across generator instances.">
<td><a href="../api/vllm_mlx/scheduler/#contract-vllm_mlx.scheduler._MTPStatsState"><code>vllm_mlx.scheduler._MTPStatsState</code></a></td>
<td>class</td>
<td><code>vllm_mlx.scheduler._MTPStatsState(counters: Dict[str, int] = field(default_factory=lambda: {&#x27;attempted&#x27;: 0, &#x27;accepted&#x27;: 0, &#x27;rejected&#x27;: 0, &#x27;errors&#x27;: 0}), bypass_counts: Dict[str, int] = field(default_factory=lambda: {&#x27;prefill&#x27;: 0, &#x27;no_active_batch&#x27;: 0, &#x27;cache_mismatch&#x27;: 0}), lock: Any = field(default_factory=Lock))</code></td>
<td>Cumulative native-MTP counters shared across generator instances.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/scheduler.py#L701-L719">#L701-L719</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.scheduler._normalize_logits_processors function vllm_mlx.scheduler._normalize_logits_processors(logits_processors) -&gt; not annotated normalize empty per-sequence processor slots to lists.">
<td><a href="../api/vllm_mlx/scheduler/#contract-vllm_mlx.scheduler._normalize_logits_processors"><code>vllm_mlx.scheduler._normalize_logits_processors</code></a></td>
<td>function</td>
<td><code>vllm_mlx.scheduler._normalize_logits_processors(logits_processors) -&gt; not annotated</code></td>
<td>Normalize empty per-sequence processor slots to lists.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/scheduler.py#L46-L50">#L46-L50</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.scheduler._sanitize_batch_generator_logits_processors function vllm_mlx.scheduler._sanitize_batch_generator_logits_processors(batch_generator) -&gt; none sanitize stale batchgenerator processor state before decode.">
<td><a href="../api/vllm_mlx/scheduler/#contract-vllm_mlx.scheduler._sanitize_batch_generator_logits_processors"><code>vllm_mlx.scheduler._sanitize_batch_generator_logits_processors</code></a></td>
<td>function</td>
<td><code>vllm_mlx.scheduler._sanitize_batch_generator_logits_processors(batch_generator) -&gt; None</code></td>
<td>Sanitize stale BatchGenerator processor state before decode.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/scheduler.py#L53-L65">#L53-L65</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="class" data-symbol-search="vllm_mlx.scheduler.scheduler class vllm_mlx.scheduler.scheduler(model: any, tokenizer: any, config: optional[schedulerconfig] = none) scheduler for continuous batching using mlx-lm batchgenerator.">
<td><a href="../api/vllm_mlx/scheduler/#contract-vllm_mlx.scheduler.Scheduler"><code>vllm_mlx.scheduler.Scheduler</code></a></td>
<td>class</td>
<td><code>vllm_mlx.scheduler.Scheduler(model: Any, tokenizer: Any, config: Optional[SchedulerConfig] = None)</code></td>
<td>Scheduler for continuous batching using mlx-lm BatchGenerator.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/scheduler.py#L1272-L3518">#L1272-L3518</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.scheduler.scheduler.__init__ method vllm_mlx.scheduler.scheduler.__init__(model: any, tokenizer: any, config: optional[schedulerconfig] = none) -&gt; not annotated initialize the scheduler.">
<td><a href="../api/vllm_mlx/scheduler/#contract-vllm_mlx.scheduler.Scheduler.__init__"><code>vllm_mlx.scheduler.Scheduler.__init__</code></a></td>
<td>method</td>
<td><code>vllm_mlx.scheduler.Scheduler.__init__(model: Any, tokenizer: Any, config: Optional[SchedulerConfig] = None) -&gt; not annotated</code></td>
<td>Initialize the scheduler.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/scheduler.py#L1286-L1402">#L1286-L1402</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.scheduler.scheduler._cache_coverage method vllm_mlx.scheduler.scheduler._cache_coverage(cache: any) -&gt; int | none how many tokens the live cache actually holds.">
<td><a href="../api/vllm_mlx/scheduler/#contract-vllm_mlx.scheduler.Scheduler._cache_coverage"><code>vllm_mlx.scheduler.Scheduler._cache_coverage</code></a></td>
<td>method</td>
<td><code>vllm_mlx.scheduler.Scheduler._cache_coverage(cache: Any) -&gt; int | None</code></td>
<td>How many tokens the live cache actually holds.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/scheduler.py#L2383-L2409">#L2383-L2409</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="nested function" data-symbol-search="vllm_mlx.scheduler.scheduler._cache_coverage._offset_of nested function vllm_mlx.scheduler.scheduler._cache_coverage._offset_of(layer: any) -&gt; int | none nested function `scheduler._cache_coverage._offset_of` calls `getattr`, `isinstance`, `_offset_of`; has 3 explicit return paths.">
<td><a href="../api/vllm_mlx/scheduler/#contract-vllm_mlx.scheduler.Scheduler._cache_coverage._offset_of"><code>vllm_mlx.scheduler.Scheduler._cache_coverage._offset_of</code></a></td>
<td>nested function</td>
<td><code>vllm_mlx.scheduler.Scheduler._cache_coverage._offset_of(layer: Any) -&gt; int | None</code></td>
<td>Nested Function `Scheduler._cache_coverage._offset_of` calls `getattr`, `isinstance`, `_offset_of`; has 3 explicit return paths.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/scheduler.py#L2393-L2403">#L2393-L2403</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.scheduler.scheduler._cache_key_for_snapshot method vllm_mlx.scheduler.scheduler._cache_key_for_snapshot(request: any, response: any, raw_cache: any) -&gt; list[int] | none key the entry by the tokens the cache covers, not by the prompt.">
<td><a href="../api/vllm_mlx/scheduler/#contract-vllm_mlx.scheduler.Scheduler._cache_key_for_snapshot"><code>vllm_mlx.scheduler.Scheduler._cache_key_for_snapshot</code></a></td>
<td>method</td>
<td><code>vllm_mlx.scheduler.Scheduler._cache_key_for_snapshot(request: Any, response: Any, raw_cache: Any) -&gt; list[int] | None</code></td>
<td>Key the entry by the tokens the cache covers, not by the prompt.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/scheduler.py#L2411-L2468">#L2411-L2468</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.scheduler.scheduler._cleanup_detokenizer method vllm_mlx.scheduler.scheduler._cleanup_detokenizer(request_id: str) -&gt; none remove the streaming detokenizer for a finished request.">
<td><a href="../api/vllm_mlx/scheduler/#contract-vllm_mlx.scheduler.Scheduler._cleanup_detokenizer"><code>vllm_mlx.scheduler.Scheduler._cleanup_detokenizer</code></a></td>
<td>method</td>
<td><code>vllm_mlx.scheduler.Scheduler._cleanup_detokenizer(request_id: str) -&gt; None</code></td>
<td>Remove the streaming detokenizer for a finished request.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/scheduler.py#L1433-L1435">#L1433-L1435</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.scheduler.scheduler._cleanup_finished method vllm_mlx.scheduler.scheduler._cleanup_finished(finished_ids: set[str]) -&gt; none clean up finished requests and store caches for reuse.">
<td><a href="../api/vllm_mlx/scheduler/#contract-vllm_mlx.scheduler.Scheduler._cleanup_finished"><code>vllm_mlx.scheduler.Scheduler._cleanup_finished</code></a></td>
<td>method</td>
<td><code>vllm_mlx.scheduler.Scheduler._cleanup_finished(finished_ids: Set[str]) -&gt; None</code></td>
<td>Clean up finished requests and store caches for reuse.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/scheduler.py#L2712-L2865">#L2712-L2865</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.scheduler.scheduler._close_batch_generator method vllm_mlx.scheduler.scheduler._close_batch_generator() -&gt; none properly close batchgenerator to restore wired_limit.">
<td><a href="../api/vllm_mlx/scheduler/#contract-vllm_mlx.scheduler.Scheduler._close_batch_generator"><code>vllm_mlx.scheduler.Scheduler._close_batch_generator</code></a></td>
<td>method</td>
<td><code>vllm_mlx.scheduler.Scheduler._close_batch_generator() -&gt; None</code></td>
<td>Properly close BatchGenerator to restore wired_limit.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/scheduler.py#L1657-L1665">#L1657-L1665</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.scheduler.scheduler._copy_cache_state method vllm_mlx.scheduler.scheduler._copy_cache_state(value: any) -&gt; any deep-copy a cache ``state`` payload.">
<td><a href="../api/vllm_mlx/scheduler/#contract-vllm_mlx.scheduler.Scheduler._copy_cache_state"><code>vllm_mlx.scheduler.Scheduler._copy_cache_state</code></a></td>
<td>method</td>
<td><code>vllm_mlx.scheduler.Scheduler._copy_cache_state(value: Any) -&gt; Any</code></td>
<td>Deep-copy a cache ``state`` payload.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/scheduler.py#L2279-L2295">#L2279-L2295</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.scheduler.scheduler._create_batch_generator method vllm_mlx.scheduler.scheduler._create_batch_generator(sampling_params: samplingparams) -&gt; batchgenerator create a batchgenerator with the given sampling parameters.">
<td><a href="../api/vllm_mlx/scheduler/#contract-vllm_mlx.scheduler.Scheduler._create_batch_generator"><code>vllm_mlx.scheduler.Scheduler._create_batch_generator</code></a></td>
<td>method</td>
<td><code>vllm_mlx.scheduler.Scheduler._create_batch_generator(sampling_params: SamplingParams) -&gt; BatchGenerator</code></td>
<td>Create a BatchGenerator with the given sampling parameters.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/scheduler.py#L1457-L1539">#L1457-L1539</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="nested function" data-symbol-search="vllm_mlx.scheduler.scheduler._create_batch_generator._prefill_progress nested function vllm_mlx.scheduler.scheduler._create_batch_generator._prefill_progress(progress_list) -&gt; not annotated log prefill progress for each uid chunk.">
<td><a href="../api/vllm_mlx/scheduler/#contract-vllm_mlx.scheduler.Scheduler._create_batch_generator._prefill_progress"><code>vllm_mlx.scheduler.Scheduler._create_batch_generator._prefill_progress</code></a></td>
<td>nested function</td>
<td><code>vllm_mlx.scheduler.Scheduler._create_batch_generator._prefill_progress(progress_list) -&gt; not annotated</code></td>
<td>Log prefill progress for each uid chunk.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/scheduler.py#L1472-L1479">#L1472-L1479</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.scheduler.scheduler._decode_tokens method vllm_mlx.scheduler.scheduler._decode_tokens(token_ids: list[int]) -&gt; str decode token ids to text, handling both tokenizers and processors.">
<td><a href="../api/vllm_mlx/scheduler/#contract-vllm_mlx.scheduler.Scheduler._decode_tokens"><code>vllm_mlx.scheduler.Scheduler._decode_tokens</code></a></td>
<td>method</td>
<td><code>vllm_mlx.scheduler.Scheduler._decode_tokens(token_ids: List[int]) -&gt; str</code></td>
<td>Decode token IDs to text, handling both tokenizers and processors.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/scheduler.py#L1420-L1424">#L1420-L1424</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.scheduler.scheduler._do_abort_request method vllm_mlx.scheduler.scheduler._do_abort_request(request_id: str) -&gt; bool actually abort a request.">
<td><a href="../api/vllm_mlx/scheduler/#contract-vllm_mlx.scheduler.Scheduler._do_abort_request"><code>vllm_mlx.scheduler.Scheduler._do_abort_request</code></a></td>
<td>method</td>
<td><code>vllm_mlx.scheduler.Scheduler._do_abort_request(request_id: str) -&gt; bool</code></td>
<td>Actually abort a request.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/scheduler.py#L2022-L2087">#L2022-L2087</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.scheduler.scheduler._ensure_batch_generator method vllm_mlx.scheduler.scheduler._ensure_batch_generator(sampling_params: samplingparams) -&gt; none ensure batchgenerator exists with compatible settings.">
<td><a href="../api/vllm_mlx/scheduler/#contract-vllm_mlx.scheduler.Scheduler._ensure_batch_generator"><code>vllm_mlx.scheduler.Scheduler._ensure_batch_generator</code></a></td>
<td>method</td>
<td><code>vllm_mlx.scheduler.Scheduler._ensure_batch_generator(sampling_params: SamplingParams) -&gt; None</code></td>
<td>Ensure BatchGenerator exists with compatible settings.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/scheduler.py#L1667-L1709">#L1667-L1709</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.scheduler.scheduler._extract_cache_for_uid method vllm_mlx.scheduler.scheduler._extract_cache_for_uid(uid: int) -&gt; any pull one sequence&#x27;s cache out of the live batchgenerator batch.">
<td><a href="../api/vllm_mlx/scheduler/#contract-vllm_mlx.scheduler.Scheduler._extract_cache_for_uid"><code>vllm_mlx.scheduler.Scheduler._extract_cache_for_uid</code></a></td>
<td>method</td>
<td><code>vllm_mlx.scheduler.Scheduler._extract_cache_for_uid(uid: int) -&gt; Any</code></td>
<td>Pull one sequence&#x27;s cache out of the live BatchGenerator batch.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/scheduler.py#L2319-L2336">#L2319-L2336</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.scheduler.scheduler._extract_cache_states method vllm_mlx.scheduler.scheduler._extract_cache_states(raw_cache: list[any]) -&gt; list[dict[str, any]] extract actual tensor state from each layer cache.">
<td><a href="../api/vllm_mlx/scheduler/#contract-vllm_mlx.scheduler.Scheduler._extract_cache_states"><code>vllm_mlx.scheduler.Scheduler._extract_cache_states</code></a></td>
<td>method</td>
<td><code>vllm_mlx.scheduler.Scheduler._extract_cache_states(raw_cache: List[Any]) -&gt; List[Dict[str, Any]]</code></td>
<td>Extract actual tensor state from each layer cache.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/scheduler.py#L1771-L1806">#L1771-L1806</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.scheduler.scheduler._get_actual_tokenizer method vllm_mlx.scheduler.scheduler._get_actual_tokenizer(tokenizer: any) -&gt; any get the actual tokenizer from a processor or tokenizer.">
<td><a href="../api/vllm_mlx/scheduler/#contract-vllm_mlx.scheduler.Scheduler._get_actual_tokenizer"><code>vllm_mlx.scheduler.Scheduler._get_actual_tokenizer</code></a></td>
<td>method</td>
<td><code>vllm_mlx.scheduler.Scheduler._get_actual_tokenizer(tokenizer: Any) -&gt; Any</code></td>
<td>Get the actual tokenizer from a processor or tokenizer.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/scheduler.py#L1404-L1418">#L1404-L1418</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.scheduler.scheduler._get_detokenizer method vllm_mlx.scheduler.scheduler._get_detokenizer(request_id: str) -&gt; any get or create a streaming detokenizer for a request.">
<td><a href="../api/vllm_mlx/scheduler/#contract-vllm_mlx.scheduler.Scheduler._get_detokenizer"><code>vllm_mlx.scheduler.Scheduler._get_detokenizer</code></a></td>
<td>method</td>
<td><code>vllm_mlx.scheduler.Scheduler._get_detokenizer(request_id: str) -&gt; Any</code></td>
<td>Get or create a streaming detokenizer for a request.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/scheduler.py#L1426-L1431">#L1426-L1431</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.scheduler.scheduler._get_stop_tokens method vllm_mlx.scheduler.scheduler._get_stop_tokens() -&gt; set[int] get stop token ids from tokenizer or processor.">
<td><a href="../api/vllm_mlx/scheduler/#contract-vllm_mlx.scheduler.Scheduler._get_stop_tokens"><code>vllm_mlx.scheduler.Scheduler._get_stop_tokens</code></a></td>
<td>method</td>
<td><code>vllm_mlx.scheduler.Scheduler._get_stop_tokens() -&gt; Set[int]</code></td>
<td>Get stop token IDs from tokenizer or processor.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/scheduler.py#L1437-L1455">#L1437-L1455</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.scheduler.scheduler._is_cache_corruption_error method vllm_mlx.scheduler.scheduler._is_cache_corruption_error(error: exception) -&gt; bool check if an error indicates cache corruption.">
<td><a href="../api/vllm_mlx/scheduler/#contract-vllm_mlx.scheduler.Scheduler._is_cache_corruption_error"><code>vllm_mlx.scheduler.Scheduler._is_cache_corruption_error</code></a></td>
<td>method</td>
<td><code>vllm_mlx.scheduler.Scheduler._is_cache_corruption_error(error: Exception) -&gt; bool</code></td>
<td>Check if an error indicates cache corruption.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/scheduler.py#L2867-L2870">#L2867-L2870</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.scheduler.scheduler._is_stream_thread_error method vllm_mlx.scheduler.scheduler._is_stream_thread_error(error: exception) -&gt; bool check if an error indicates mlx stream/thread ownership mismatch.">
<td><a href="../api/vllm_mlx/scheduler/#contract-vllm_mlx.scheduler.Scheduler._is_stream_thread_error"><code>vllm_mlx.scheduler.Scheduler._is_stream_thread_error</code></a></td>
<td>method</td>
<td><code>vllm_mlx.scheduler.Scheduler._is_stream_thread_error(error: Exception) -&gt; bool</code></td>
<td>Check if an error indicates MLX stream/thread ownership mismatch.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/scheduler.py#L2872-L2875">#L2872-L2875</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.scheduler.scheduler._make_mid_prefill_save_callback method vllm_mlx.scheduler.scheduler._make_mid_prefill_save_callback(save_interval: int) -&gt; not annotated create a callback for saving intermediate kv cache during chunked prefill.">
<td><a href="../api/vllm_mlx/scheduler/#contract-vllm_mlx.scheduler.Scheduler._make_mid_prefill_save_callback"><code>vllm_mlx.scheduler.Scheduler._make_mid_prefill_save_callback</code></a></td>
<td>method</td>
<td><code>vllm_mlx.scheduler.Scheduler._make_mid_prefill_save_callback(save_interval: int) -&gt; not annotated</code></td>
<td>Create a callback for saving intermediate KV cache during chunked prefill.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/scheduler.py#L1587-L1655">#L1587-L1655</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="nested function" data-symbol-search="vllm_mlx.scheduler.scheduler._make_mid_prefill_save_callback._mid_prefill_save nested function vllm_mlx.scheduler.scheduler._make_mid_prefill_save_callback._mid_prefill_save(uid, processed_tokens, prompt_cache) -&gt; not annotated nested function `scheduler._make_mid_prefill_save_callback._mid_prefill_save` calls `self.uid_to_request_id.get`, `self.requests.get`, `getattr`, `self._extract_cache_states`; returns `none`.">
<td><a href="../api/vllm_mlx/scheduler/#contract-vllm_mlx.scheduler.Scheduler._make_mid_prefill_save_callback._mid_prefill_save"><code>vllm_mlx.scheduler.Scheduler._make_mid_prefill_save_callback._mid_prefill_save</code></a></td>
<td>nested function</td>
<td><code>vllm_mlx.scheduler.Scheduler._make_mid_prefill_save_callback._mid_prefill_save(uid, processed_tokens, prompt_cache) -&gt; not annotated</code></td>
<td>Nested Function `Scheduler._make_mid_prefill_save_callback._mid_prefill_save` calls `self.uid_to_request_id.get`, `self.requests.get`, `getattr`, `self._extract_cache_states`; returns `None`.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/scheduler.py#L1598-L1653">#L1598-L1653</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.scheduler.scheduler._make_prompt_cache_save_callback method vllm_mlx.scheduler.scheduler._make_prompt_cache_save_callback() -&gt; not annotated create a callback that stores prompt-only kv/mamba cache.">
<td><a href="../api/vllm_mlx/scheduler/#contract-vllm_mlx.scheduler.Scheduler._make_prompt_cache_save_callback"><code>vllm_mlx.scheduler.Scheduler._make_prompt_cache_save_callback</code></a></td>
<td>method</td>
<td><code>vllm_mlx.scheduler.Scheduler._make_prompt_cache_save_callback() -&gt; not annotated</code></td>
<td>Create a callback that stores prompt-only KV/Mamba cache.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/scheduler.py#L1541-L1585">#L1541-L1585</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="nested function" data-symbol-search="vllm_mlx.scheduler.scheduler._make_prompt_cache_save_callback._prompt_cache_save nested function vllm_mlx.scheduler.scheduler._make_prompt_cache_save_callback._prompt_cache_save(uid, extracted_cache) -&gt; not annotated nested function `scheduler._make_prompt_cache_save_callback._prompt_cache_save` calls `self.uid_to_request_id.get`, `self.requests.get`, `list`, `_trim_cache_offset`; returns `none`.">
<td><a href="../api/vllm_mlx/scheduler/#contract-vllm_mlx.scheduler.Scheduler._make_prompt_cache_save_callback._prompt_cache_save"><code>vllm_mlx.scheduler.Scheduler._make_prompt_cache_save_callback._prompt_cache_save</code></a></td>
<td>nested function</td>
<td><code>vllm_mlx.scheduler.Scheduler._make_prompt_cache_save_callback._prompt_cache_save(uid, extracted_cache) -&gt; not annotated</code></td>
<td>Nested Function `Scheduler._make_prompt_cache_save_callback._prompt_cache_save` calls `self.uid_to_request_id.get`, `self.requests.get`, `list`, `_trim_cache_offset`; returns `None`.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/scheduler.py#L1554-L1583">#L1554-L1583</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.scheduler.scheduler._make_snapshot_destination method vllm_mlx.scheduler.scheduler._make_snapshot_destination(live_cache: any) -&gt; any build a destination cache with the same topology as the live one.">
<td><a href="../api/vllm_mlx/scheduler/#contract-vllm_mlx.scheduler.Scheduler._make_snapshot_destination"><code>vllm_mlx.scheduler.Scheduler._make_snapshot_destination</code></a></td>
<td>method</td>
<td><code>vllm_mlx.scheduler.Scheduler._make_snapshot_destination(live_cache: Any) -&gt; Any</code></td>
<td>Build a destination cache with the same topology as the live one.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/scheduler.py#L2338-L2380">#L2338-L2380</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="nested function" data-symbol-search="vllm_mlx.scheduler.scheduler._make_snapshot_destination._mirror nested function vllm_mlx.scheduler.scheduler._make_snapshot_destination._mirror(layer: any) -&gt; any nested function `scheduler._make_snapshot_destination._mirror` calls `getattr`, `_mirror`, `copy.copy`, `type(children)`; has 2 explicit return paths.">
<td><a href="../api/vllm_mlx/scheduler/#contract-vllm_mlx.scheduler.Scheduler._make_snapshot_destination._mirror"><code>vllm_mlx.scheduler.Scheduler._make_snapshot_destination._mirror</code></a></td>
<td>nested function</td>
<td><code>vllm_mlx.scheduler.Scheduler._make_snapshot_destination._mirror(layer: Any) -&gt; Any</code></td>
<td>Nested Function `Scheduler._make_snapshot_destination._mirror` calls `getattr`, `_mirror`, `copy.copy`, `type(children)`; has 2 explicit return paths.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/scheduler.py#L2360-L2370">#L2360-L2370</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.scheduler.scheduler._process_batch_responses method vllm_mlx.scheduler.scheduler._process_batch_responses(responses: list[any]) -&gt; tuple[list[requestoutput], set[str]] process responses from batchgenerator.">
<td><a href="../api/vllm_mlx/scheduler/#contract-vllm_mlx.scheduler.Scheduler._process_batch_responses"><code>vllm_mlx.scheduler.Scheduler._process_batch_responses</code></a></td>
<td>method</td>
<td><code>vllm_mlx.scheduler.Scheduler._process_batch_responses(responses: List[Any]) -&gt; Tuple[List[RequestOutput], Set[str]]</code></td>
<td>Process responses from BatchGenerator.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/scheduler.py#L2583-L2710">#L2583-L2710</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.scheduler.scheduler._process_pending_aborts method vllm_mlx.scheduler.scheduler._process_pending_aborts() -&gt; none drain and process pending abort requests.">
<td><a href="../api/vllm_mlx/scheduler/#contract-vllm_mlx.scheduler.Scheduler._process_pending_aborts"><code>vllm_mlx.scheduler.Scheduler._process_pending_aborts</code></a></td>
<td>method</td>
<td><code>vllm_mlx.scheduler.Scheduler._process_pending_aborts() -&gt; None</code></td>
<td>Drain and process pending abort requests.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/scheduler.py#L2016-L2020">#L2016-L2020</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.scheduler.scheduler._prompt_output_entry_is_useless method vllm_mlx.scheduler.scheduler._prompt_output_entry_is_useless(cache: any) -&gt; bool would a prompt+output entry built from this cache ever be reusable?">
<td><a href="../api/vllm_mlx/scheduler/#contract-vllm_mlx.scheduler.Scheduler._prompt_output_entry_is_useless"><code>vllm_mlx.scheduler.Scheduler._prompt_output_entry_is_useless</code></a></td>
<td>method</td>
<td><code>vllm_mlx.scheduler.Scheduler._prompt_output_entry_is_useless(cache: Any) -&gt; bool</code></td>
<td>Would a prompt+output entry built from this cache ever be reusable?</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/scheduler.py#L2303-L2317">#L2303-L2317</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.scheduler.scheduler._reconstruct_cache_from_states method vllm_mlx.scheduler.scheduler._reconstruct_cache_from_states(extracted_states: list[dict[str, any]]) -&gt; optional[list[any]] reconstruct cache objects from extracted cache states.">
<td><a href="../api/vllm_mlx/scheduler/#contract-vllm_mlx.scheduler.Scheduler._reconstruct_cache_from_states"><code>vllm_mlx.scheduler.Scheduler._reconstruct_cache_from_states</code></a></td>
<td>method</td>
<td><code>vllm_mlx.scheduler.Scheduler._reconstruct_cache_from_states(extracted_states: List[Dict[str, Any]]) -&gt; Optional[List[Any]]</code></td>
<td>Reconstruct cache objects from extracted cache states.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/scheduler.py#L1808-L1872">#L1808-L1872</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.scheduler.scheduler._reconstruct_ssd_layers method vllm_mlx.scheduler.scheduler._reconstruct_ssd_layers(layer_dicts: list[dict]) -&gt; list | none reconstruct cache objects from deserialized layer dicts.">
<td><a href="../api/vllm_mlx/scheduler/#contract-vllm_mlx.scheduler.Scheduler._reconstruct_ssd_layers"><code>vllm_mlx.scheduler.Scheduler._reconstruct_ssd_layers</code></a></td>
<td>method</td>
<td><code>vllm_mlx.scheduler.Scheduler._reconstruct_ssd_layers(layer_dicts: list[dict]) -&gt; list | None</code></td>
<td>Reconstruct cache objects from deserialized layer dicts.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/scheduler.py#L3462-L3518">#L3462-L3518</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="nested function" data-symbol-search="vllm_mlx.scheduler.scheduler._reconstruct_ssd_layers._mx_dtype_from_name nested function vllm_mlx.scheduler.scheduler._reconstruct_ssd_layers._mx_dtype_from_name(name: str) -&gt; not annotated nested function `scheduler._reconstruct_ssd_layers._mx_dtype_from_name` calls `getattr`; returns `getattr(mx, name, none)`.">
<td><a href="../api/vllm_mlx/scheduler/#contract-vllm_mlx.scheduler.Scheduler._reconstruct_ssd_layers._mx_dtype_from_name"><code>vllm_mlx.scheduler.Scheduler._reconstruct_ssd_layers._mx_dtype_from_name</code></a></td>
<td>nested function</td>
<td><code>vllm_mlx.scheduler.Scheduler._reconstruct_ssd_layers._mx_dtype_from_name(name: str) -&gt; not annotated</code></td>
<td>Nested Function `Scheduler._reconstruct_ssd_layers._mx_dtype_from_name` calls `getattr`; returns `getattr(mx, name, None)`.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/scheduler.py#L3473-L3474">#L3473-L3474</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.scheduler.scheduler._recover_from_cache_error method vllm_mlx.scheduler.scheduler._recover_from_cache_error() -&gt; none recover from cache corruption error.">
<td><a href="../api/vllm_mlx/scheduler/#contract-vllm_mlx.scheduler.Scheduler._recover_from_cache_error"><code>vllm_mlx.scheduler.Scheduler._recover_from_cache_error</code></a></td>
<td>method</td>
<td><code>vllm_mlx.scheduler.Scheduler._recover_from_cache_error() -&gt; None</code></td>
<td>Recover from cache corruption error.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/scheduler.py#L2877-L2895">#L2877-L2895</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.scheduler.scheduler._recover_from_generation_error method vllm_mlx.scheduler.scheduler._recover_from_generation_error() -&gt; set[str] recover from fatal generation error (oom, metal crash).">
<td><a href="../api/vllm_mlx/scheduler/#contract-vllm_mlx.scheduler.Scheduler._recover_from_generation_error"><code>vllm_mlx.scheduler.Scheduler._recover_from_generation_error</code></a></td>
<td>method</td>
<td><code>vllm_mlx.scheduler.Scheduler._recover_from_generation_error() -&gt; Set[str]</code></td>
<td>Recover from fatal generation error (OOM, Metal crash).</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/scheduler.py#L2897-L2933">#L2897-L2933</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.scheduler.scheduler._reschedule_running_requests method vllm_mlx.scheduler.scheduler._reschedule_running_requests() -&gt; none move running requests back to waiting queue for retry.">
<td><a href="../api/vllm_mlx/scheduler/#contract-vllm_mlx.scheduler.Scheduler._reschedule_running_requests"><code>vllm_mlx.scheduler.Scheduler._reschedule_running_requests</code></a></td>
<td>method</td>
<td><code>vllm_mlx.scheduler.Scheduler._reschedule_running_requests() -&gt; None</code></td>
<td>Move running requests back to waiting queue for retry.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/scheduler.py#L2935-L2951">#L2935-L2951</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.scheduler.scheduler._schedule_waiting method vllm_mlx.scheduler.scheduler._schedule_waiting() -&gt; list[request] move requests from waiting queue to running.">
<td><a href="../api/vllm_mlx/scheduler/#contract-vllm_mlx.scheduler.Scheduler._schedule_waiting"><code>vllm_mlx.scheduler.Scheduler._schedule_waiting</code></a></td>
<td>method</td>
<td><code>vllm_mlx.scheduler.Scheduler._schedule_waiting() -&gt; List[Request]</code></td>
<td>Move requests from waiting queue to running.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/scheduler.py#L2101-L2276">#L2101-L2276</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.scheduler.scheduler._store_prompt_only_cache method vllm_mlx.scheduler.scheduler._store_prompt_only_cache(request: any, response: any) -&gt; none store the post-prefill cache under the prompt tokens alone.">
<td><a href="../api/vllm_mlx/scheduler/#contract-vllm_mlx.scheduler.Scheduler._store_prompt_only_cache"><code>vllm_mlx.scheduler.Scheduler._store_prompt_only_cache</code></a></td>
<td>method</td>
<td><code>vllm_mlx.scheduler.Scheduler._store_prompt_only_cache(request: Any, response: Any) -&gt; None</code></td>
<td>Store the post-prefill cache under the prompt tokens alone.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/scheduler.py#L2470-L2581">#L2470-L2581</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.scheduler.scheduler._try_promote_ssd_pending method vllm_mlx.scheduler.scheduler._try_promote_ssd_pending() -&gt; none attempt synchronous ssd promotion for waiting requests tagged ssd_pending.">
<td><a href="../api/vllm_mlx/scheduler/#contract-vllm_mlx.scheduler.Scheduler._try_promote_ssd_pending"><code>vllm_mlx.scheduler.Scheduler._try_promote_ssd_pending</code></a></td>
<td>method</td>
<td><code>vllm_mlx.scheduler.Scheduler._try_promote_ssd_pending() -&gt; None</code></td>
<td>Attempt synchronous SSD promotion for waiting requests tagged ssd_pending.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/scheduler.py#L3315-L3395">#L3315-L3395</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.scheduler.scheduler._validate_cache method vllm_mlx.scheduler.scheduler._validate_cache(cache: any) -&gt; bool validate that a cache object is usable.">
<td><a href="../api/vllm_mlx/scheduler/#contract-vllm_mlx.scheduler.Scheduler._validate_cache"><code>vllm_mlx.scheduler.Scheduler._validate_cache</code></a></td>
<td>method</td>
<td><code>vllm_mlx.scheduler.Scheduler._validate_cache(cache: Any) -&gt; bool</code></td>
<td>Validate that a cache object is usable.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/scheduler.py#L1711-L1769">#L1711-L1769</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.scheduler.scheduler.abort_request method vllm_mlx.scheduler.scheduler.abort_request(request_id: str) -&gt; bool queue request for abort.">
<td><a href="../api/vllm_mlx/scheduler/#contract-vllm_mlx.scheduler.Scheduler.abort_request"><code>vllm_mlx.scheduler.Scheduler.abort_request</code></a></td>
<td>method</td>
<td><code>vllm_mlx.scheduler.Scheduler.abort_request(request_id: str) -&gt; bool</code></td>
<td>Queue request for abort.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/scheduler.py#L1999-L2014">#L1999-L2014</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.scheduler.scheduler.add_request method vllm_mlx.scheduler.scheduler.add_request(request: request) -&gt; none add a new request to the scheduler.">
<td><a href="../api/vllm_mlx/scheduler/#contract-vllm_mlx.scheduler.Scheduler.add_request"><code>vllm_mlx.scheduler.Scheduler.add_request</code></a></td>
<td>method</td>
<td><code>vllm_mlx.scheduler.Scheduler.add_request(request: Request) -&gt; None</code></td>
<td>Add a new request to the scheduler.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/scheduler.py#L1874-L1997">#L1874-L1997</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.scheduler.scheduler.clear_prefix_cache method vllm_mlx.scheduler.scheduler.clear_prefix_cache() -&gt; none clear the in-memory prefix cache (keeps disk cache untouched).">
<td><a href="../api/vllm_mlx/scheduler/#contract-vllm_mlx.scheduler.Scheduler.clear_prefix_cache"><code>vllm_mlx.scheduler.Scheduler.clear_prefix_cache</code></a></td>
<td>method</td>
<td><code>vllm_mlx.scheduler.Scheduler.clear_prefix_cache() -&gt; None</code></td>
<td>Clear the in-memory prefix cache (keeps disk cache untouched).</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/scheduler.py#L3296-L3306">#L3296-L3306</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.scheduler.scheduler.clear_runtime_caches method vllm_mlx.scheduler.scheduler.clear_runtime_caches() -&gt; dict[str, bool] clear prefix-cache state without resetting scheduler/request state.">
<td><a href="../api/vllm_mlx/scheduler/#contract-vllm_mlx.scheduler.Scheduler.clear_runtime_caches"><code>vllm_mlx.scheduler.Scheduler.clear_runtime_caches</code></a></td>
<td>method</td>
<td><code>vllm_mlx.scheduler.Scheduler.clear_runtime_caches() -&gt; Dict[str, bool]</code></td>
<td>Clear prefix-cache state without resetting scheduler/request state.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/scheduler.py#L3205-L3221">#L3205-L3221</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.scheduler.scheduler.close_ssd_tier method vllm_mlx.scheduler.scheduler.close_ssd_tier() -&gt; none shut down the ssd cache tier if present.">
<td><a href="../api/vllm_mlx/scheduler/#contract-vllm_mlx.scheduler.Scheduler.close_ssd_tier"><code>vllm_mlx.scheduler.Scheduler.close_ssd_tier</code></a></td>
<td>method</td>
<td><code>vllm_mlx.scheduler.Scheduler.close_ssd_tier() -&gt; None</code></td>
<td>Shut down the SSD cache tier if present.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/scheduler.py#L3308-L3313">#L3308-L3313</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.scheduler.scheduler.deep_reset method vllm_mlx.scheduler.scheduler.deep_reset() -&gt; none deep reset that clears all cache state including model-level caches.">
<td><a href="../api/vllm_mlx/scheduler/#contract-vllm_mlx.scheduler.Scheduler.deep_reset"><code>vllm_mlx.scheduler.Scheduler.deep_reset</code></a></td>
<td>method</td>
<td><code>vllm_mlx.scheduler.Scheduler.deep_reset() -&gt; None</code></td>
<td>Deep reset that clears ALL cache state including model-level caches.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/scheduler.py#L3248-L3276">#L3248-L3276</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.scheduler.scheduler.get_cache_stats method vllm_mlx.scheduler.scheduler.get_cache_stats() -&gt; optional[dict[str, any]] get cache statistics.">
<td><a href="../api/vllm_mlx/scheduler/#contract-vllm_mlx.scheduler.Scheduler.get_cache_stats"><code>vllm_mlx.scheduler.Scheduler.get_cache_stats</code></a></td>
<td>method</td>
<td><code>vllm_mlx.scheduler.Scheduler.get_cache_stats() -&gt; Optional[Dict[str, Any]]</code></td>
<td>Get cache statistics.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/scheduler.py#L3195-L3203">#L3195-L3203</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.scheduler.scheduler.get_num_running method vllm_mlx.scheduler.scheduler.get_num_running() -&gt; int get number of running requests.">
<td><a href="../api/vllm_mlx/scheduler/#contract-vllm_mlx.scheduler.Scheduler.get_num_running"><code>vllm_mlx.scheduler.Scheduler.get_num_running</code></a></td>
<td>method</td>
<td><code>vllm_mlx.scheduler.Scheduler.get_num_running() -&gt; int</code></td>
<td>Get number of running requests.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/scheduler.py#L2097-L2099">#L2097-L2099</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.scheduler.scheduler.get_num_waiting method vllm_mlx.scheduler.scheduler.get_num_waiting() -&gt; int get number of waiting requests.">
<td><a href="../api/vllm_mlx/scheduler/#contract-vllm_mlx.scheduler.Scheduler.get_num_waiting"><code>vllm_mlx.scheduler.Scheduler.get_num_waiting</code></a></td>
<td>method</td>
<td><code>vllm_mlx.scheduler.Scheduler.get_num_waiting() -&gt; int</code></td>
<td>Get number of waiting requests.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/scheduler.py#L2093-L2095">#L2093-L2095</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.scheduler.scheduler.get_request method vllm_mlx.scheduler.scheduler.get_request(request_id: str) -&gt; optional[request] get a request by id.">
<td><a href="../api/vllm_mlx/scheduler/#contract-vllm_mlx.scheduler.Scheduler.get_request"><code>vllm_mlx.scheduler.Scheduler.get_request</code></a></td>
<td>method</td>
<td><code>vllm_mlx.scheduler.Scheduler.get_request(request_id: str) -&gt; Optional[Request]</code></td>
<td>Get a request by ID.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/scheduler.py#L3091-L3093">#L3091-L3093</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.scheduler.scheduler.get_running_requests_info method vllm_mlx.scheduler.scheduler.get_running_requests_info() -&gt; list[dict[str, any]] per-request details for status endpoint.">
<td><a href="../api/vllm_mlx/scheduler/#contract-vllm_mlx.scheduler.Scheduler.get_running_requests_info"><code>vllm_mlx.scheduler.Scheduler.get_running_requests_info</code></a></td>
<td>method</td>
<td><code>vllm_mlx.scheduler.Scheduler.get_running_requests_info() -&gt; List[Dict[str, Any]]</code></td>
<td>Per-request details for status endpoint.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/scheduler.py#L3099-L3165">#L3099-L3165</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.scheduler.scheduler.get_stats method vllm_mlx.scheduler.scheduler.get_stats() -&gt; dict[str, any] get scheduler statistics.">
<td><a href="../api/vllm_mlx/scheduler/#contract-vllm_mlx.scheduler.Scheduler.get_stats"><code>vllm_mlx.scheduler.Scheduler.get_stats</code></a></td>
<td>method</td>
<td><code>vllm_mlx.scheduler.Scheduler.get_stats() -&gt; Dict[str, Any]</code></td>
<td>Get scheduler statistics.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/scheduler.py#L3167-L3193">#L3167-L3193</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.scheduler.scheduler.has_requests method vllm_mlx.scheduler.scheduler.has_requests() -&gt; bool check if there are any pending or running requests.">
<td><a href="../api/vllm_mlx/scheduler/#contract-vllm_mlx.scheduler.Scheduler.has_requests"><code>vllm_mlx.scheduler.Scheduler.has_requests</code></a></td>
<td>method</td>
<td><code>vllm_mlx.scheduler.Scheduler.has_requests() -&gt; bool</code></td>
<td>Check if there are any pending or running requests.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/scheduler.py#L2089-L2091">#L2089-L2091</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.scheduler.scheduler.load_cache_from_disk method vllm_mlx.scheduler.scheduler.load_cache_from_disk(cache_dir: str) -&gt; int load prefix cache from disk.">
<td><a href="../api/vllm_mlx/scheduler/#contract-vllm_mlx.scheduler.Scheduler.load_cache_from_disk"><code>vllm_mlx.scheduler.Scheduler.load_cache_from_disk</code></a></td>
<td>method</td>
<td><code>vllm_mlx.scheduler.Scheduler.load_cache_from_disk(cache_dir: str) -&gt; int</code></td>
<td>Load prefix cache from disk.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/scheduler.py#L3289-L3294">#L3289-L3294</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.scheduler.scheduler.promote_from_ssd method async vllm_mlx.scheduler.scheduler.promote_from_ssd(request) -&gt; bool promote a cold-tier cache entry for a request (async version).">
<td><a href="../api/vllm_mlx/scheduler/#contract-vllm_mlx.scheduler.Scheduler.promote_from_ssd"><code>vllm_mlx.scheduler.Scheduler.promote_from_ssd</code></a></td>
<td>method</td>
<td><code>async vllm_mlx.scheduler.Scheduler.promote_from_ssd(request) -&gt; bool</code></td>
<td>Promote a cold-tier cache entry for a request (async version).</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/scheduler.py#L3397-L3460">#L3397-L3460</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="nested function" data-symbol-search="vllm_mlx.scheduler.scheduler.promote_from_ssd.release_budget nested function vllm_mlx.scheduler.scheduler.promote_from_ssd.release_budget(nbytes: int) -&gt; none release tentatively reserved budget on failure.">
<td><a href="../api/vllm_mlx/scheduler/#contract-vllm_mlx.scheduler.Scheduler.promote_from_ssd.release_budget"><code>vllm_mlx.scheduler.Scheduler.promote_from_ssd.release_budget</code></a></td>
<td>nested function</td>
<td><code>vllm_mlx.scheduler.Scheduler.promote_from_ssd.release_budget(nbytes: int) -&gt; None</code></td>
<td>Release tentatively reserved budget on failure.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/scheduler.py#L3418-L3421">#L3418-L3421</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="nested function" data-symbol-search="vllm_mlx.scheduler.scheduler.promote_from_ssd.reserve_budget nested function vllm_mlx.scheduler.scheduler.promote_from_ssd.reserve_budget(nbytes: int) -&gt; bool tentatively reserve ram budget for promotion.">
<td><a href="../api/vllm_mlx/scheduler/#contract-vllm_mlx.scheduler.Scheduler.promote_from_ssd.reserve_budget"><code>vllm_mlx.scheduler.Scheduler.promote_from_ssd.reserve_budget</code></a></td>
<td>nested function</td>
<td><code>vllm_mlx.scheduler.Scheduler.promote_from_ssd.reserve_budget(nbytes: int) -&gt; bool</code></td>
<td>Tentatively reserve RAM budget for promotion.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/scheduler.py#L3412-L3416">#L3412-L3416</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.scheduler.scheduler.remove_finished_request method vllm_mlx.scheduler.scheduler.remove_finished_request(request_id: str) -&gt; optional[request] remove a finished request from tracking.">
<td><a href="../api/vllm_mlx/scheduler/#contract-vllm_mlx.scheduler.Scheduler.remove_finished_request"><code>vllm_mlx.scheduler.Scheduler.remove_finished_request</code></a></td>
<td>method</td>
<td><code>vllm_mlx.scheduler.Scheduler.remove_finished_request(request_id: str) -&gt; Optional[Request]</code></td>
<td>Remove a finished request from tracking.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/scheduler.py#L3095-L3097">#L3095-L3097</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.scheduler.scheduler.reset method vllm_mlx.scheduler.scheduler.reset() -&gt; none reset the scheduler state.">
<td><a href="../api/vllm_mlx/scheduler/#contract-vllm_mlx.scheduler.Scheduler.reset"><code>vllm_mlx.scheduler.Scheduler.reset</code></a></td>
<td>method</td>
<td><code>vllm_mlx.scheduler.Scheduler.reset() -&gt; None</code></td>
<td>Reset the scheduler state.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/scheduler.py#L3223-L3246">#L3223-L3246</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.scheduler.scheduler.save_cache_to_disk method vllm_mlx.scheduler.scheduler.save_cache_to_disk(cache_dir: str) -&gt; bool save prefix cache to disk for persistence across restarts.">
<td><a href="../api/vllm_mlx/scheduler/#contract-vllm_mlx.scheduler.Scheduler.save_cache_to_disk"><code>vllm_mlx.scheduler.Scheduler.save_cache_to_disk</code></a></td>
<td>method</td>
<td><code>vllm_mlx.scheduler.Scheduler.save_cache_to_disk(cache_dir: str) -&gt; bool</code></td>
<td>Save prefix cache to disk for persistence across restarts.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/scheduler.py#L3282-L3287">#L3282-L3287</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.scheduler.scheduler.step method vllm_mlx.scheduler.scheduler.step(max_retries: int = 1) -&gt; scheduleroutput execute one scheduling step with automatic error recovery.">
<td><a href="../api/vllm_mlx/scheduler/#contract-vllm_mlx.scheduler.Scheduler.step"><code>vllm_mlx.scheduler.Scheduler.step</code></a></td>
<td>method</td>
<td><code>vllm_mlx.scheduler.Scheduler.step(max_retries: int = 1) -&gt; SchedulerOutput</code></td>
<td>Execute one scheduling step with automatic error recovery.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/scheduler.py#L2953-L3089">#L2953-L3089</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="class" data-symbol-search="vllm_mlx.scheduler.schedulerconfig class vllm_mlx.scheduler.schedulerconfig(max_num_seqs: int = 256, max_num_batched_tokens: int = 8192, policy: schedulingpolicy = schedulingpolicy.fcfs, prefill_batch_size: int = 8, completion_batch_size: int = 32, prefill_step_size: int = 2048, mllm_prefill_step_size: optional[int] = none, enable_prefix_cache: bool = true, prefix_cache_size: int = 100, use_memory_aware_cache: bool = true, cache_memory_mb: optional[int] = none, cache_memory_percent: float = 0.2, kv_cache_quantization: bool = false, kv_cache_quantization_bits: int = 8, kv_cache_quantization_group_size: int = 64, kv_cache_min_quantize_tokens: int = 256, use_paged_cache: bool = false, paged_cache_block_size: int = 64, max_cache_blocks: int = 1000, chunked_prefill_tokens: int = 0, mid_prefill_save_interval: int = 8192, ssd_cache_dir: optional[str] = none, ssd_cache_max_gb: float = 10.0, max_kv_size: int = 0, enable_mtp: bool = false, mtp_num_draft_tokens: int = 1, mtp_optimistic: bool = false) configuration for the scheduler.">
<td><a href="../api/vllm_mlx/scheduler/#contract-vllm_mlx.scheduler.SchedulerConfig"><code>vllm_mlx.scheduler.SchedulerConfig</code></a></td>
<td>class</td>
<td><code>vllm_mlx.scheduler.SchedulerConfig(max_num_seqs: int = 256, max_num_batched_tokens: int = 8192, policy: SchedulingPolicy = SchedulingPolicy.FCFS, prefill_batch_size: int = 8, completion_batch_size: int = 32, prefill_step_size: int = 2048, mllm_prefill_step_size: Optional[int] = None, enable_prefix_cache: bool = True, prefix_cache_size: int = 100, use_memory_aware_cache: bool = True, cache_memory_mb: Optional[int] = None, cache_memory_percent: float = 0.2, kv_cache_quantization: bool = False, kv_cache_quantization_bits: int = 8, kv_cache_quantization_group_size: int = 64, kv_cache_min_quantize_tokens: int = 256, use_paged_cache: bool = False, paged_cache_block_size: int = 64, max_cache_blocks: int = 1000, chunked_prefill_tokens: int = 0, mid_prefill_save_interval: int = 8192, ssd_cache_dir: Optional[str] = None, ssd_cache_max_gb: float = 10.0, max_kv_size: int = 0, enable_mtp: bool = False, mtp_num_draft_tokens: int = 1, mtp_optimistic: bool = False)</code></td>
<td>Configuration for the scheduler.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/scheduler.py#L76-L140">#L76-L140</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.scheduler.schedulerconfig.__post_init__ method vllm_mlx.scheduler.schedulerconfig.__post_init__() -&gt; none method `schedulerconfig.__post_init__` calls `valueerror`; can raise `valueerror`.">
<td><a href="../api/vllm_mlx/scheduler/#contract-vllm_mlx.scheduler.SchedulerConfig.__post_init__"><code>vllm_mlx.scheduler.SchedulerConfig.__post_init__</code></a></td>
<td>method</td>
<td><code>vllm_mlx.scheduler.SchedulerConfig.__post_init__() -&gt; None</code></td>
<td>Method `SchedulerConfig.__post_init__` calls `ValueError`; can raise `ValueError`.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/scheduler.py#L138-L140">#L138-L140</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="class" data-symbol-search="vllm_mlx.scheduler.scheduleroutput class vllm_mlx.scheduler.scheduleroutput(scheduled_request_ids: list[str] = field(default_factory=list), num_scheduled_tokens: int = 0, finished_request_ids: set[str] = field(default_factory=set), outputs: list[requestoutput] = field(default_factory=list), has_work: bool = false) output from a scheduling step.">
<td><a href="../api/vllm_mlx/scheduler/#contract-vllm_mlx.scheduler.SchedulerOutput"><code>vllm_mlx.scheduler.SchedulerOutput</code></a></td>
<td>class</td>
<td><code>vllm_mlx.scheduler.SchedulerOutput(scheduled_request_ids: List[str] = field(default_factory=list), num_scheduled_tokens: int = 0, finished_request_ids: Set[str] = field(default_factory=set), outputs: List[RequestOutput] = field(default_factory=list), has_work: bool = False)</code></td>
<td>Output from a scheduling step.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/scheduler.py#L144-L160">#L144-L160</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="class" data-symbol-search="vllm_mlx.scheduler.schedulingpolicy class vllm_mlx.scheduler.schedulingpolicy() scheduling policy for request ordering.">
<td><a href="../api/vllm_mlx/scheduler/#contract-vllm_mlx.scheduler.SchedulingPolicy"><code>vllm_mlx.scheduler.SchedulingPolicy</code></a></td>
<td>class</td>
<td><code>vllm_mlx.scheduler.SchedulingPolicy()</code></td>
<td>Scheduling policy for request ordering.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/scheduler.py#L68-L72">#L68-L72</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.server._acquire_default_engine function async vllm_mlx.server._acquire_default_engine(*, count_activity: bool = true) -&gt; baseengine acquire the default engine, auto-loading via the residency manager if needed.">
<td><a href="../api/vllm_mlx/server/#contract-vllm_mlx.server._acquire_default_engine"><code>vllm_mlx.server._acquire_default_engine</code></a></td>
<td>function</td>
<td><code>async vllm_mlx.server._acquire_default_engine(*, count_activity: bool = True) -&gt; BaseEngine</code></td>
<td>Acquire the default engine, auto-loading via the residency manager if needed.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/server.py#L1436-L1451">#L1436-L1451</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.server._acquire_default_engine_for_request function async vllm_mlx.server._acquire_default_engine_for_request(raw_request: request, *, total_timeout: float, deadline: float, count_activity: bool = true, model: str | none = none) -&gt; baseengine | none acquire the engine for a request, using the model registry when active.">
<td><a href="../api/vllm_mlx/server/#contract-vllm_mlx.server._acquire_default_engine_for_request"><code>vllm_mlx.server._acquire_default_engine_for_request</code></a></td>
<td>function</td>
<td><code>async vllm_mlx.server._acquire_default_engine_for_request(raw_request: Request, *, total_timeout: float, deadline: float, count_activity: bool = True, model: str | None = None) -&gt; BaseEngine | None</code></td>
<td>Acquire the engine for a request, using the model registry when active.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/server.py#L4661-L4719">#L4661-L4719</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="nested function" data-symbol-search="vllm_mlx.server._acquire_default_engine_for_request._registry_acquire nested function async vllm_mlx.server._acquire_default_engine_for_request._registry_acquire() -&gt; not annotated nested function `_acquire_default_engine_for_request._registry_acquire` calls `_acquire_request_model`, `id`; awaits asynchronous work; returns `ctx.engine`.">
<td><a href="../api/vllm_mlx/server/#contract-vllm_mlx.server._acquire_default_engine_for_request._registry_acquire"><code>vllm_mlx.server._acquire_default_engine_for_request._registry_acquire</code></a></td>
<td>nested function</td>
<td><code>async vllm_mlx.server._acquire_default_engine_for_request._registry_acquire() -&gt; not annotated</code></td>
<td>Nested Function `_acquire_default_engine_for_request._registry_acquire` calls `_acquire_request_model`, `id`; awaits asynchronous work; returns `ctx.engine`.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/server.py#L4681-L4685">#L4681-L4685</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="nested function" data-symbol-search="vllm_mlx.server._acquire_default_engine_for_request._registry_cleanup nested function async vllm_mlx.server._acquire_default_engine_for_request._registry_cleanup(_result) -&gt; not annotated nested function `_acquire_default_engine_for_request._registry_cleanup` calls `_active_request_contexts.pop`, `id`, `ctx.release`; awaits asynchronous work.">
<td><a href="../api/vllm_mlx/server/#contract-vllm_mlx.server._acquire_default_engine_for_request._registry_cleanup"><code>vllm_mlx.server._acquire_default_engine_for_request._registry_cleanup</code></a></td>
<td>nested function</td>
<td><code>async vllm_mlx.server._acquire_default_engine_for_request._registry_cleanup(_result) -&gt; not annotated</code></td>
<td>Nested Function `_acquire_default_engine_for_request._registry_cleanup` calls `_active_request_contexts.pop`, `id`, `ctx.release`; awaits asynchronous work.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/server.py#L4687-L4690">#L4687-L4690</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.server._acquire_request_model function async vllm_mlx.server._acquire_request_model(request_model: str) -&gt; requestmodelcontext acquire the model/engine that should serve this request.">
<td><a href="../api/vllm_mlx/server/#contract-vllm_mlx.server._acquire_request_model"><code>vllm_mlx.server._acquire_request_model</code></a></td>
<td>function</td>
<td><code>async vllm_mlx.server._acquire_request_model(request_model: str) -&gt; RequestModelContext</code></td>
<td>Acquire the model/engine that should serve this request.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/server.py#L1070-L1094">#L1070-L1094</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.server._activate_engine function vllm_mlx.server._activate_engine(engine: baseengine | none) -&gt; baseengine | none set the global engine pointer and refresh parser-sensitive state.">
<td><a href="../api/vllm_mlx/server/#contract-vllm_mlx.server._activate_engine"><code>vllm_mlx.server._activate_engine</code></a></td>
<td>function</td>
<td><code>vllm_mlx.server._activate_engine(engine: BaseEngine | None) -&gt; BaseEngine | None</code></td>
<td>Set the global engine pointer and refresh parser-sensitive state.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/server.py#L1365-L1375">#L1365-L1375</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.server._apply_forced_tool_choice function vllm_mlx.server._apply_forced_tool_choice(tool_choice, tools, messages, chat_kwargs = none) -&gt; not annotated apply forced tool_choice by filtering tools and injecting instructions.">
<td><a href="../api/vllm_mlx/server/#contract-vllm_mlx.server._apply_forced_tool_choice"><code>vllm_mlx.server._apply_forced_tool_choice</code></a></td>
<td>function</td>
<td><code>vllm_mlx.server._apply_forced_tool_choice(tool_choice, tools, messages, chat_kwargs = None) -&gt; not annotated</code></td>
<td>Apply forced tool_choice by filtering tools and injecting instructions.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/server.py#L5233-L5279">#L5233-L5279</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.server._apply_response_format_or_raise function vllm_mlx.server._apply_response_format_or_raise(text: str, response_format: object, *, ensure_ascii: bool = false) -&gt; str return validated json content or fail before returning a success response.">
<td><a href="../api/vllm_mlx/server/#contract-vllm_mlx.server._apply_response_format_or_raise"><code>vllm_mlx.server._apply_response_format_or_raise</code></a></td>
<td>function</td>
<td><code>vllm_mlx.server._apply_response_format_or_raise(text: str, response_format: object, *, ensure_ascii: bool = False) -&gt; str</code></td>
<td>Return validated JSON content or fail before returning a success response.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/server.py#L1933-L1952">#L1933-L1952</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.server._attach_logit_bias_processor function vllm_mlx.server._attach_logit_bias_processor(chat_kwargs: dict, logit_bias: dict[str, float] | none) -&gt; not annotated function `_attach_logit_bias_processor` calls `make_logits_processors`, `_coerce_logit_bias`, `chat_kwargs.get`, `list`; returns `none`.">
<td><a href="../api/vllm_mlx/server/#contract-vllm_mlx.server._attach_logit_bias_processor"><code>vllm_mlx.server._attach_logit_bias_processor</code></a></td>
<td>function</td>
<td><code>vllm_mlx.server._attach_logit_bias_processor(chat_kwargs: dict, logit_bias: dict[str, float] | None) -&gt; not annotated</code></td>
<td>Function `_attach_logit_bias_processor` calls `make_logits_processors`, `_coerce_logit_bias`, `chat_kwargs.get`, `list`; returns `None`.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/server.py#L733-L744">#L733-L744</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.server._attach_response_format_logits_processor function vllm_mlx.server._attach_response_format_logits_processor(chat_kwargs: dict, json_logits_processor: object) -&gt; object attach response_format constraints and keep thinking disabled.">
<td><a href="../api/vllm_mlx/server/#contract-vllm_mlx.server._attach_response_format_logits_processor"><code>vllm_mlx.server._attach_response_format_logits_processor</code></a></td>
<td>function</td>
<td><code>vllm_mlx.server._attach_response_format_logits_processor(chat_kwargs: dict, json_logits_processor: object) -&gt; object</code></td>
<td>Attach response_format constraints and keep thinking disabled.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/server.py#L700-L717">#L700-L717</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.server._build_engine function vllm_mlx.server._build_engine(spec: modelspec) -&gt; baseengine construct an engine instance from a model spec without starting it.">
<td><a href="../api/vllm_mlx/server/#contract-vllm_mlx.server._build_engine"><code>vllm_mlx.server._build_engine</code></a></td>
<td>function</td>
<td><code>vllm_mlx.server._build_engine(spec: ModelSpec) -&gt; BaseEngine</code></td>
<td>Construct an engine instance from a model spec without starting it.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/server.py#L1293-L1323">#L1293-L1323</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.server._build_reasoning_parser function vllm_mlx.server._build_reasoning_parser(engine: baseengine | none = none) -&gt; not annotated create a fresh reasoning parser instance for a single request/stream.">
<td><a href="../api/vllm_mlx/server/#contract-vllm_mlx.server._build_reasoning_parser"><code>vllm_mlx.server._build_reasoning_parser</code></a></td>
<td>function</td>
<td><code>vllm_mlx.server._build_reasoning_parser(engine: BaseEngine | None = None) -&gt; not annotated</code></td>
<td>Create a fresh reasoning parser instance for a single request/stream.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/server.py#L1126-L1140">#L1126-L1140</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.server._build_response_object function vllm_mlx.server._build_response_object(request: responsesrequest, output_items: list[responsemessageitem | responsereasoningitem | responsefunctioncallitem], prompt_tokens: int, completion_tokens: int, finish_reason: str | none, response_id: str | none = none) -&gt; responseobject build a full responses api object.">
<td><a href="../api/vllm_mlx/server/#contract-vllm_mlx.server._build_response_object"><code>vllm_mlx.server._build_response_object</code></a></td>
<td>function</td>
<td><code>vllm_mlx.server._build_response_object(request: ResponsesRequest, output_items: list[ResponseMessageItem | ResponseReasoningItem | ResponseFunctionCallItem], prompt_tokens: int, completion_tokens: int, finish_reason: str | None, response_id: str | None = None) -&gt; ResponseObject</code></td>
<td>Build a full Responses API object.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/server.py#L2328-L2367">#L2328-L2367</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.server._build_responses_output_items function vllm_mlx.server._build_responses_output_items(text: str | none, reasoning: str | none, tool_calls: list[toolcall] | none) -&gt; list[responsemessageitem | responsereasoningitem | responsefunctioncallitem] convert parsed assistant output into responses api output items.">
<td><a href="../api/vllm_mlx/server/#contract-vllm_mlx.server._build_responses_output_items"><code>vllm_mlx.server._build_responses_output_items</code></a></td>
<td>function</td>
<td><code>vllm_mlx.server._build_responses_output_items(text: str | None, reasoning: str | None, tool_calls: list[ToolCall] | None) -&gt; list[ResponseMessageItem | ResponseReasoningItem | ResponseFunctionCallItem]</code></td>
<td>Convert parsed assistant output into Responses API output items.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/server.py#L2256-L2293">#L2256-L2293</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.server._build_thinking_processor function vllm_mlx.server._build_thinking_processor(engine: baseengine, thinking_token_budget: int, *, inner: object | none = none, prompt_has_think_tag: bool = true) -&gt; object | none build a thinkingawarelogitsprocessor if the tokenizer has think tokens.">
<td><a href="../api/vllm_mlx/server/#contract-vllm_mlx.server._build_thinking_processor"><code>vllm_mlx.server._build_thinking_processor</code></a></td>
<td>function</td>
<td><code>vllm_mlx.server._build_thinking_processor(engine: BaseEngine, thinking_token_budget: int, *, inner: object | None = None, prompt_has_think_tag: bool = True) -&gt; object | None</code></td>
<td>Build a ThinkingAwareLogitsProcessor if the tokenizer has think tokens.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/server.py#L500-L554">#L500-L554</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.server._build_tool_parser function vllm_mlx.server._build_tool_parser(engine: baseengine | none) -&gt; not annotated create a fresh tool parser instance for a single request/stream.">
<td><a href="../api/vllm_mlx/server/#contract-vllm_mlx.server._build_tool_parser"><code>vllm_mlx.server._build_tool_parser</code></a></td>
<td>function</td>
<td><code>vllm_mlx.server._build_tool_parser(engine: BaseEngine | None) -&gt; not annotated</code></td>
<td>Create a fresh tool parser instance for a single request/stream.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/server.py#L1109-L1123">#L1109-L1123</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.server._coerce_logit_bias function vllm_mlx.server._coerce_logit_bias(logit_bias: dict[str, float]) -&gt; dict[int, float] function `_coerce_logit_bias` calls `logit_bias.items`, `int`, `float`, `httpexception`; can raise `httpexception`; returns `coerced`.">
<td><a href="../api/vllm_mlx/server/#contract-vllm_mlx.server._coerce_logit_bias"><code>vllm_mlx.server._coerce_logit_bias</code></a></td>
<td>function</td>
<td><code>vllm_mlx.server._coerce_logit_bias(logit_bias: dict[str, float]) -&gt; dict[int, float]</code></td>
<td>Function `_coerce_logit_bias` calls `logit_bias.items`, `int`, `float`, `HTTPException`; can raise `HTTPException`; returns `coerced`.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/server.py#L720-L730">#L720-L730</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.server._coerce_tool_arguments function vllm_mlx.server._coerce_tool_arguments(arguments_json: str, tool_name: str, tools: list[dict] | none) -&gt; str coerce tool call arguments to match the tool schema.">
<td><a href="../api/vllm_mlx/server/#contract-vllm_mlx.server._coerce_tool_arguments"><code>vllm_mlx.server._coerce_tool_arguments</code></a></td>
<td>function</td>
<td><code>vllm_mlx.server._coerce_tool_arguments(arguments_json: str, tool_name: str, tools: list[dict] | None) -&gt; str</code></td>
<td>Coerce tool call arguments to match the tool schema.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/server.py#L1752-L1796">#L1752-L1796</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.server._convert_anthropic_stop_reason function vllm_mlx.server._convert_anthropic_stop_reason(openai_reason: str | none) -&gt; str convert openai finish_reason to anthropic stop_reason.">
<td><a href="../api/vllm_mlx/server/#contract-vllm_mlx.server._convert_anthropic_stop_reason"><code>vllm_mlx.server._convert_anthropic_stop_reason</code></a></td>
<td>function</td>
<td><code>vllm_mlx.server._convert_anthropic_stop_reason(openai_reason: str | None) -&gt; str</code></td>
<td>Convert OpenAI finish_reason to Anthropic stop_reason.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/server.py#L5327-L5335">#L5327-L5335</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.server._detect_harmony_rendering function vllm_mlx.server._detect_harmony_rendering() -&gt; bool detect whether the harmony rendering path should handle prompt building.">
<td><a href="../api/vllm_mlx/server/#contract-vllm_mlx.server._detect_harmony_rendering"><code>vllm_mlx.server._detect_harmony_rendering</code></a></td>
<td>function</td>
<td><code>vllm_mlx.server._detect_harmony_rendering() -&gt; bool</code></td>
<td>Detect whether the harmony rendering path should handle prompt building.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/server.py#L2986-L3019">#L2986-L3019</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.server._detect_native_tool_support function vllm_mlx.server._detect_native_tool_support() -&gt; bool detect if the active tool parser supports native tool format.">
<td><a href="../api/vllm_mlx/server/#contract-vllm_mlx.server._detect_native_tool_support"><code>vllm_mlx.server._detect_native_tool_support</code></a></td>
<td>function</td>
<td><code>vllm_mlx.server._detect_native_tool_support() -&gt; bool</code></td>
<td>Detect if the active tool parser supports native tool format.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/server.py#L2954-L2983">#L2954-L2983</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.server._disconnect_guard function async vllm_mlx.server._disconnect_guard(generator: asynciterator[str], raw_request: request, poll_interval: float = 0.5, heartbeat_interval: float = 5.0, cleanup = none, timeout: float | none = none) -&gt; asynciterator[str] wrap streaming generator to abort on client disconnect.">
<td><a href="../api/vllm_mlx/server/#contract-vllm_mlx.server._disconnect_guard"><code>vllm_mlx.server._disconnect_guard</code></a></td>
<td>function</td>
<td><code>async vllm_mlx.server._disconnect_guard(generator: AsyncIterator[str], raw_request: Request, poll_interval: float = 0.5, heartbeat_interval: float = 5.0, cleanup = None, timeout: float | None = None) -&gt; AsyncIterator[str]</code></td>
<td>Wrap streaming generator to abort on client disconnect.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/server.py#L4377-L4546">#L4377-L4546</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="nested function" data-symbol-search="vllm_mlx.server._disconnect_guard._deferred_generator_close nested function async vllm_mlx.server._disconnect_guard._deferred_generator_close() -&gt; not annotated nested function `_disconnect_guard._deferred_generator_close` calls `asyncio.sleep`, `_gen_to_close.aclose`, `logger.debug`, `type`; awaits asynchronous work.">
<td><a href="../api/vllm_mlx/server/#contract-vllm_mlx.server._disconnect_guard._deferred_generator_close"><code>vllm_mlx.server._disconnect_guard._deferred_generator_close</code></a></td>
<td>nested function</td>
<td><code>async vllm_mlx.server._disconnect_guard._deferred_generator_close() -&gt; not annotated</code></td>
<td>Nested Function `_disconnect_guard._deferred_generator_close` calls `asyncio.sleep`, `_gen_to_close.aclose`, `logger.debug`, `type`; awaits asynchronous work.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/server.py#L4528-L4536">#L4528-L4536</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="nested function" data-symbol-search="vllm_mlx.server._disconnect_guard._elapsed nested function vllm_mlx.server._disconnect_guard._elapsed() -&gt; not annotated nested function `_disconnect_guard._elapsed` calls `_time.monotonic`; returns `f&#x27;{_time.monotonic() - _t0:.1f}s&#x27;`.">
<td><a href="../api/vllm_mlx/server/#contract-vllm_mlx.server._disconnect_guard._elapsed"><code>vllm_mlx.server._disconnect_guard._elapsed</code></a></td>
<td>nested function</td>
<td><code>vllm_mlx.server._disconnect_guard._elapsed() -&gt; not annotated</code></td>
<td>Nested Function `_disconnect_guard._elapsed` calls `_time.monotonic`; returns `f&#x27;{_time.monotonic() - _t0:.1f}s&#x27;`.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/server.py#L4407-L4408">#L4407-L4408</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="nested function" data-symbol-search="vllm_mlx.server._disconnect_guard._wait_disconnect nested function async vllm_mlx.server._disconnect_guard._wait_disconnect() -&gt; not annotated nested function `_disconnect_guard._wait_disconnect` calls `asyncio.sleep`, `_is_client_disconnected`, `logger.info`, `_elapsed`; awaits asynchronous work; returns `none`.">
<td><a href="../api/vllm_mlx/server/#contract-vllm_mlx.server._disconnect_guard._wait_disconnect"><code>vllm_mlx.server._disconnect_guard._wait_disconnect</code></a></td>
<td>nested function</td>
<td><code>async vllm_mlx.server._disconnect_guard._wait_disconnect() -&gt; not annotated</code></td>
<td>Nested Function `_disconnect_guard._wait_disconnect` calls `asyncio.sleep`, `_is_client_disconnected`, `logger.info`, `_elapsed`; awaits asynchronous work; returns `None`.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/server.py#L4417-L4429">#L4417-L4429</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.server._emit_content_pieces function vllm_mlx.server._emit_content_pieces(pieces: list[tuple[str, str]], current_block_type: str | none, block_index: int) -&gt; tuple[list[str], str | none, int] emit anthropic sse events for content pieces from the think router.">
<td><a href="../api/vllm_mlx/server/#contract-vllm_mlx.server._emit_content_pieces"><code>vllm_mlx.server._emit_content_pieces</code></a></td>
<td>function</td>
<td><code>vllm_mlx.server._emit_content_pieces(pieces: list[tuple[str, str]], current_block_type: str | None, block_index: int) -&gt; tuple[list[str], str | None, int]</code></td>
<td>Emit Anthropic SSE events for content pieces from the think router.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/server.py#L5669-L5719">#L5669-L5719</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.server._engine_factory function async vllm_mlx.server._engine_factory(spec: modelspec) -&gt; baseengine async engine factory used by the residency manager.">
<td><a href="../api/vllm_mlx/server/#contract-vllm_mlx.server._engine_factory"><code>vllm_mlx.server._engine_factory</code></a></td>
<td>function</td>
<td><code>async vllm_mlx.server._engine_factory(spec: ModelSpec) -&gt; BaseEngine</code></td>
<td>Async engine factory used by the residency manager.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/server.py#L1326-L1328">#L1326-L1328</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.server._ensure_sse_terminal function async vllm_mlx.server._ensure_sse_terminal(generator: asynciterator[str], terminal_frame: str) -&gt; asynciterator[str] guarantee that *terminal_frame* is emitted exactly once at the end of *generator*, even if the generator raises mid-stream.">
<td><a href="../api/vllm_mlx/server/#contract-vllm_mlx.server._ensure_sse_terminal"><code>vllm_mlx.server._ensure_sse_terminal</code></a></td>
<td>function</td>
<td><code>async vllm_mlx.server._ensure_sse_terminal(generator: AsyncIterator[str], terminal_frame: str) -&gt; AsyncIterator[str]</code></td>
<td>Guarantee that *terminal_frame* is emitted exactly once at the end of *generator*, even if the generator raises mid-stream.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/server.py#L4275-L4296">#L4275-L4296</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.server._extract_reasoning_and_tool_calls function vllm_mlx.server._extract_reasoning_and_tool_calls(output_text: str, request: chatcompletionrequest | none = none, *, allow_reasoning: bool = true, engine: baseengine | none = none) -&gt; tuple[str | none, str | none, list[toolcall] | none] extract reasoning first, then parse tool calls from the cleaned content.">
<td><a href="../api/vllm_mlx/server/#contract-vllm_mlx.server._extract_reasoning_and_tool_calls"><code>vllm_mlx.server._extract_reasoning_and_tool_calls</code></a></td>
<td>function</td>
<td><code>vllm_mlx.server._extract_reasoning_and_tool_calls(output_text: str, request: ChatCompletionRequest | None = None, *, allow_reasoning: bool = True, engine: BaseEngine | None = None) -&gt; tuple[str | None, str | None, list[ToolCall] | None]</code></td>
<td>Extract reasoning first, then parse tool calls from the cleaned content.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/server.py#L2895-L2951">#L2895-L2951</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.server._extract_streaming_tool_delta function vllm_mlx.server._extract_streaming_tool_delta(parser, previous_text: str, delta_text: str, request_context: dict) -&gt; tuple[str, dict | none] parse one request-local streaming delta and return new accumulated text.">
<td><a href="../api/vllm_mlx/server/#contract-vllm_mlx.server._extract_streaming_tool_delta"><code>vllm_mlx.server._extract_streaming_tool_delta</code></a></td>
<td>function</td>
<td><code>vllm_mlx.server._extract_streaming_tool_delta(parser, previous_text: str, delta_text: str, request_context: dict) -&gt; tuple[str, dict | None]</code></td>
<td>Parse one request-local streaming delta and return new accumulated text.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/server.py#L3074-L3088">#L3074-L3088</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.server._find_uvicorn_cycle function vllm_mlx.server._find_uvicorn_cycle(obj, depth = 0, visited = none) -&gt; not annotated walk through middleware wrappers to find uvicorn&#x27;s requestresponsecycle.">
<td><a href="../api/vllm_mlx/server/#contract-vllm_mlx.server._find_uvicorn_cycle"><code>vllm_mlx.server._find_uvicorn_cycle</code></a></td>
<td>function</td>
<td><code>vllm_mlx.server._find_uvicorn_cycle(obj, depth = 0, visited = None) -&gt; not annotated</code></td>
<td>Walk through middleware wrappers to find uvicorn&#x27;s RequestResponseCycle.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/server.py#L4299-L4346">#L4299-L4346</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.server._generation_metadata function vllm_mlx.server._generation_metadata(thinking_processor: object | none) -&gt; generationmetadata | none function `_generation_metadata` calls `generationmetadata`, `getattr`, `bool`; has 2 explicit return paths.">
<td><a href="../api/vllm_mlx/server/#contract-vllm_mlx.server._generation_metadata"><code>vllm_mlx.server._generation_metadata</code></a></td>
<td>function</td>
<td><code>vllm_mlx.server._generation_metadata(thinking_processor: object | None) -&gt; GenerationMetadata | None</code></td>
<td>Function `_generation_metadata` calls `GenerationMetadata`, `getattr`, `bool`; has 2 explicit return paths.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/server.py#L571-L583">#L571-L583</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.server._get_cache_dir function vllm_mlx.server._get_cache_dir() -&gt; str get cache persistence directory based on actual model path.">
<td><a href="../api/vllm_mlx/server/#contract-vllm_mlx.server._get_cache_dir"><code>vllm_mlx.server._get_cache_dir</code></a></td>
<td>function</td>
<td><code>vllm_mlx.server._get_cache_dir() -&gt; str</code></td>
<td>Get cache persistence directory based on actual model path.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/server.py#L1274-L1290">#L1274-L1290</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.server._get_engine_tokenizer function vllm_mlx.server._get_engine_tokenizer(engine: baseengine | none) -&gt; object | none return tokenizer-like parser state from the active engine.">
<td><a href="../api/vllm_mlx/server/#contract-vllm_mlx.server._get_engine_tokenizer"><code>vllm_mlx.server._get_engine_tokenizer</code></a></td>
<td>function</td>
<td><code>vllm_mlx.server._get_engine_tokenizer(engine: BaseEngine | None) -&gt; object | None</code></td>
<td>Return tokenizer-like parser state from the active engine.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/server.py#L1821-L1828">#L1821-L1828</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.server._get_engine_tokenizer function vllm_mlx.server._get_engine_tokenizer(engine) -&gt; object | none return the tokenizer backing ``engine``, if exposed.">
<td><a href="../api/vllm_mlx/server/#contract-vllm_mlx.server._get_engine_tokenizer"><code>vllm_mlx.server._get_engine_tokenizer</code></a></td>
<td>function</td>
<td><code>vllm_mlx.server._get_engine_tokenizer(engine) -&gt; object | None</code></td>
<td>Return the tokenizer backing ``engine``, if exposed.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/server.py#L5175-L5187">#L5175-L5187</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.server._get_forced_tool_name function vllm_mlx.server._get_forced_tool_name(tool_choice) -&gt; str | none extract forced tool name from tool_choice, if any.">
<td><a href="../api/vllm_mlx/server/#contract-vllm_mlx.server._get_forced_tool_name"><code>vllm_mlx.server._get_forced_tool_name</code></a></td>
<td>function</td>
<td><code>vllm_mlx.server._get_forced_tool_name(tool_choice) -&gt; str | None</code></td>
<td>Extract forced tool name from tool_choice, if any.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/server.py#L5217-L5230">#L5217-L5230</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.server._get_idle_unload_event function vllm_mlx.server._get_idle_unload_event() -&gt; asyncio.event return the idle-unload gate event, creating it on first use.">
<td><a href="../api/vllm_mlx/server/#contract-vllm_mlx.server._get_idle_unload_event"><code>vllm_mlx.server._get_idle_unload_event</code></a></td>
<td>function</td>
<td><code>vllm_mlx.server._get_idle_unload_event() -&gt; asyncio.Event</code></td>
<td>Return the idle-unload gate event, creating it on first use.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/server.py#L1206-L1217">#L1206-L1217</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.server._get_lifecycle_status function vllm_mlx.server._get_lifecycle_status() -&gt; dict | none get lifecycle status for the default resident if lifecycle is enabled.">
<td><a href="../api/vllm_mlx/server/#contract-vllm_mlx.server._get_lifecycle_status"><code>vllm_mlx.server._get_lifecycle_status</code></a></td>
<td>function</td>
<td><code>vllm_mlx.server._get_lifecycle_status() -&gt; dict | None</code></td>
<td>Get lifecycle status for the default resident if lifecycle is enabled.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/server.py#L1391-L1395">#L1391-L1395</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.server._get_or_init_tool_parser function vllm_mlx.server._get_or_init_tool_parser(engine: baseengine | none = none) -&gt; not annotated return the cached tool parser, initializing it from the given engine.">
<td><a href="../api/vllm_mlx/server/#contract-vllm_mlx.server._get_or_init_tool_parser"><code>vllm_mlx.server._get_or_init_tool_parser</code></a></td>
<td>function</td>
<td><code>vllm_mlx.server._get_or_init_tool_parser(engine: BaseEngine | None = None) -&gt; not annotated</code></td>
<td>Return the cached tool parser, initializing it from the given engine.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/server.py#L1831-L1841">#L1831-L1841</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.server._get_streaming_tool_parser function vllm_mlx.server._get_streaming_tool_parser(request: chatcompletionrequest | none, engine: baseengine | none = none) -&gt; not annotated get a streaming-capable tool parser for this request.">
<td><a href="../api/vllm_mlx/server/#contract-vllm_mlx.server._get_streaming_tool_parser"><code>vllm_mlx.server._get_streaming_tool_parser</code></a></td>
<td>function</td>
<td><code>vllm_mlx.server._get_streaming_tool_parser(request: ChatCompletionRequest | None, engine: BaseEngine | None = None) -&gt; not annotated</code></td>
<td>Get a streaming-capable tool parser for this request.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/server.py#L3034-L3071">#L3034-L3071</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.server._inject_json_instruction function vllm_mlx.server._inject_json_instruction(messages: list, instruction: str) -&gt; list inject json instruction into messages.">
<td><a href="../api/vllm_mlx/server/#contract-vllm_mlx.server._inject_json_instruction"><code>vllm_mlx.server._inject_json_instruction</code></a></td>
<td>function</td>
<td><code>vllm_mlx.server._inject_json_instruction(messages: list, instruction: str) -&gt; list</code></td>
<td>Inject JSON instruction into messages.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/server.py#L5290-L5319">#L5290-L5319</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.server._invalidate_tool_parser_cache function vllm_mlx.server._invalidate_tool_parser_cache(reason: str | none = none) -&gt; none drop cached parser state when the serving tokenizer changes.">
<td><a href="../api/vllm_mlx/server/#contract-vllm_mlx.server._invalidate_tool_parser_cache"><code>vllm_mlx.server._invalidate_tool_parser_cache</code></a></td>
<td>function</td>
<td><code>vllm_mlx.server._invalidate_tool_parser_cache(reason: str | None = None) -&gt; None</code></td>
<td>Drop cached parser state when the serving tokenizer changes.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/server.py#L1220-L1229">#L1220-L1229</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.server._is_client_disconnected function vllm_mlx.server._is_client_disconnected(raw_request: request) -&gt; bool reliable client disconnect check.">
<td><a href="../api/vllm_mlx/server/#contract-vllm_mlx.server._is_client_disconnected"><code>vllm_mlx.server._is_client_disconnected</code></a></td>
<td>function</td>
<td><code>vllm_mlx.server._is_client_disconnected(raw_request: Request) -&gt; bool</code></td>
<td>Reliable client disconnect check.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/server.py#L4349-L4374">#L4349-L4374</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.server._iter_remote_media_urls function vllm_mlx.server._iter_remote_media_urls(messages: list[message | dict]) -&gt; not annotated yield remote media urls from openai-style multimodal message content.">
<td><a href="../api/vllm_mlx/server/#contract-vllm_mlx.server._iter_remote_media_urls"><code>vllm_mlx.server._iter_remote_media_urls</code></a></td>
<td>function</td>
<td><code>vllm_mlx.server._iter_remote_media_urls(messages: list[Message | dict]) -&gt; not annotated</code></td>
<td>Yield remote media URLs from OpenAI-style multimodal message content.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/server.py#L401-L429">#L401-L429</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.server._lifecycle_loop function async vllm_mlx.server._lifecycle_loop() -&gt; none background idle-unload loop for the default resident.">
<td><a href="../api/vllm_mlx/server/#contract-vllm_mlx.server._lifecycle_loop"><code>vllm_mlx.server._lifecycle_loop</code></a></td>
<td>function</td>
<td><code>async vllm_mlx.server._lifecycle_loop() -&gt; None</code></td>
<td>Background idle-unload loop for the default resident.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/server.py#L1413-L1433">#L1413-L1433</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.server._list_available_model_names function vllm_mlx.server._list_available_model_names() -&gt; list[str] function `_list_available_model_names` has 2 explicit return paths.">
<td><a href="../api/vllm_mlx/server/#contract-vllm_mlx.server._list_available_model_names"><code>vllm_mlx.server._list_available_model_names</code></a></td>
<td>function</td>
<td><code>vllm_mlx.server._list_available_model_names() -&gt; list[str]</code></td>
<td>Function `_list_available_model_names` has 2 explicit return paths.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/server.py#L1059-L1062">#L1059-L1062</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.server._load_prefix_cache_from_disk function vllm_mlx.server._load_prefix_cache_from_disk(engine: baseengine | none = none) -&gt; none load prefix cache from disk during startup.">
<td><a href="../api/vllm_mlx/server/#contract-vllm_mlx.server._load_prefix_cache_from_disk"><code>vllm_mlx.server._load_prefix_cache_from_disk</code></a></td>
<td>function</td>
<td><code>vllm_mlx.server._load_prefix_cache_from_disk(engine: BaseEngine | None = None) -&gt; None</code></td>
<td>Load prefix cache from disk during startup.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/server.py#L1232-L1250">#L1232-L1250</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.server._log_and_raise_internal_error function vllm_mlx.server._log_and_raise_internal_error(log_prefix: str, exc: exception, detail: str) -&gt; none log a sanitized exception string and raise a generic 500 response.">
<td><a href="../api/vllm_mlx/server/#contract-vllm_mlx.server._log_and_raise_internal_error"><code>vllm_mlx.server._log_and_raise_internal_error</code></a></td>
<td>function</td>
<td><code>vllm_mlx.server._log_and_raise_internal_error(log_prefix: str, exc: Exception, detail: str) -&gt; None</code></td>
<td>Log a sanitized exception string and raise a generic 500 response.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/server.py#L1025-L1028">#L1025-L1028</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.server._make_keepalive_http_protocol function vllm_mlx.server._make_keepalive_http_protocol(idle = 10, interval = 5, count = 3) -&gt; not annotated create a uvicorn http protocol class with aggressive tcp keepalive.">
<td><a href="../api/vllm_mlx/server/#contract-vllm_mlx.server._make_keepalive_http_protocol"><code>vllm_mlx.server._make_keepalive_http_protocol</code></a></td>
<td>function</td>
<td><code>vllm_mlx.server._make_keepalive_http_protocol(idle = 10, interval = 5, count = 3) -&gt; not annotated</code></td>
<td>Create a uvicorn HTTP protocol class with aggressive TCP keepalive.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/server.py#L6554-L6589">#L6554-L6589</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="nested class" data-symbol-search="vllm_mlx.server._make_keepalive_http_protocol._keepaliveprotocol nested class vllm_mlx.server._make_keepalive_http_protocol._keepaliveprotocol() nested class `_make_keepalive_http_protocol._keepaliveprotocol` derives from `_base` and declares 1 direct member(s).">
<td><a href="../api/vllm_mlx/server/#contract-vllm_mlx.server._make_keepalive_http_protocol._KeepaliveProtocol"><code>vllm_mlx.server._make_keepalive_http_protocol._KeepaliveProtocol</code></a></td>
<td>nested class</td>
<td><code>vllm_mlx.server._make_keepalive_http_protocol._KeepaliveProtocol()</code></td>
<td>Nested Class `_make_keepalive_http_protocol._KeepaliveProtocol` derives from `_Base` and declares 1 direct member(s).</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/server.py#L6567-L6587">#L6567-L6587</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="nested function" data-symbol-search="vllm_mlx.server._make_keepalive_http_protocol._keepaliveprotocol.connection_made nested function vllm_mlx.server._make_keepalive_http_protocol._keepaliveprotocol.connection_made(transport) -&gt; not annotated nested function `_make_keepalive_http_protocol._keepaliveprotocol.connection_made` calls `super().connection_made`, `super`, `transport.get_extra_info`, `sock.setsockopt`; returns `none`.">
<td><a href="../api/vllm_mlx/server/#contract-vllm_mlx.server._make_keepalive_http_protocol._KeepaliveProtocol.connection_made"><code>vllm_mlx.server._make_keepalive_http_protocol._KeepaliveProtocol.connection_made</code></a></td>
<td>nested function</td>
<td><code>vllm_mlx.server._make_keepalive_http_protocol._KeepaliveProtocol.connection_made(transport) -&gt; not annotated</code></td>
<td>Nested Function `_make_keepalive_http_protocol._KeepaliveProtocol.connection_made` calls `super().connection_made`, `super`, `transport.get_extra_info`, `sock.setsockopt`; returns `None`.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/server.py#L6568-L6587">#L6568-L6587</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.server._make_release_cleanup function vllm_mlx.server._make_release_cleanup(raw_request: request | none) -&gt; not annotated return a cleanup callable suitable for ``_disconnect_guard``.">
<td><a href="../api/vllm_mlx/server/#contract-vllm_mlx.server._make_release_cleanup"><code>vllm_mlx.server._make_release_cleanup</code></a></td>
<td>function</td>
<td><code>vllm_mlx.server._make_release_cleanup(raw_request: Request | None) -&gt; not annotated</code></td>
<td>Return a cleanup callable suitable for ``_disconnect_guard``.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/server.py#L4740-L4752">#L4740-L4752</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="nested function" data-symbol-search="vllm_mlx.server._make_release_cleanup._cleanup nested function async vllm_mlx.server._make_release_cleanup._cleanup() -&gt; not annotated nested function `_make_release_cleanup._cleanup` calls `_active_request_contexts.pop`, `id`, `ctx.release`, `_release_default_engine`; awaits asynchronous work.">
<td><a href="../api/vllm_mlx/server/#contract-vllm_mlx.server._make_release_cleanup._cleanup"><code>vllm_mlx.server._make_release_cleanup._cleanup</code></a></td>
<td>nested function</td>
<td><code>async vllm_mlx.server._make_release_cleanup._cleanup() -&gt; not annotated</code></td>
<td>Nested Function `_make_release_cleanup._cleanup` calls `_active_request_contexts.pop`, `id`, `ctx.release`, `_release_default_engine`; awaits asynchronous work.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/server.py#L4744-L4749">#L4744-L4749</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.server._metrics_middleware function async vllm_mlx.server._metrics_middleware(request: request, call_next) -&gt; not annotated capture generic http request metrics when enabled.">
<td><a href="../api/vllm_mlx/server/#contract-vllm_mlx.server._metrics_middleware"><code>vllm_mlx.server._metrics_middleware</code></a></td>
<td>function</td>
<td><code>async vllm_mlx.server._metrics_middleware(request: Request, call_next) -&gt; not annotated</code></td>
<td>Capture generic HTTP request metrics when enabled.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/server.py#L1630-L1659">#L1630-L1659</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.server._metrics_path_for_request function vllm_mlx.server._metrics_path_for_request(request: request) -&gt; str prefer route templates over raw urls to keep metrics cardinality bounded.">
<td><a href="../api/vllm_mlx/server/#contract-vllm_mlx.server._metrics_path_for_request"><code>vllm_mlx.server._metrics_path_for_request</code></a></td>
<td>function</td>
<td><code>vllm_mlx.server._metrics_path_for_request(request: Request) -&gt; str</code></td>
<td>Prefer route templates over raw URLs to keep metrics cardinality bounded.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/server.py#L1613-L1626">#L1613-L1626</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.server._metrics_result_from_status function vllm_mlx.server._metrics_result_from_status(status_code: int) -&gt; str map http-ish status codes to low-cardinality inference results.">
<td><a href="../api/vllm_mlx/server/#contract-vllm_mlx.server._metrics_result_from_status"><code>vllm_mlx.server._metrics_result_from_status</code></a></td>
<td>function</td>
<td><code>vllm_mlx.server._metrics_result_from_status(status_code: int) -&gt; str</code></td>
<td>Map HTTP-ish status codes to low-cardinality inference results.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/server.py#L1602-L1610">#L1602-L1610</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.server._new_response_item_id function vllm_mlx.server._new_response_item_id(prefix: str) -&gt; str generate stable openai-style item ids.">
<td><a href="../api/vllm_mlx/server/#contract-vllm_mlx.server._new_response_item_id"><code>vllm_mlx.server._new_response_item_id</code></a></td>
<td>function</td>
<td><code>vllm_mlx.server._new_response_item_id(prefix: str) -&gt; str</code></td>
<td>Generate stable OpenAI-style item ids.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/server.py#L1984-L1986">#L1984-L1986</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.server._normalize_messages function vllm_mlx.server._normalize_messages(messages: list[dict]) -&gt; list[dict] normalize message roles and merge consecutive same-role messages.">
<td><a href="../api/vllm_mlx/server/#contract-vllm_mlx.server._normalize_messages"><code>vllm_mlx.server._normalize_messages</code></a></td>
<td>function</td>
<td><code>vllm_mlx.server._normalize_messages(messages: list[dict]) -&gt; list[dict]</code></td>
<td>Normalize message roles and merge consecutive same-role messages.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/server.py#L5117-L5172">#L5117-L5172</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.server._parse_streaming_tool_content function vllm_mlx.server._parse_streaming_tool_content(parser, accumulated_text: str, delta_text: str, request_context: dict) -&gt; tuple[str, dict | none, bool] function `_parse_streaming_tool_content` calls `_extract_streaming_tool_delta`; returns `(accumulated_text, result, suppress)`.">
<td><a href="../api/vllm_mlx/server/#contract-vllm_mlx.server._parse_streaming_tool_content"><code>vllm_mlx.server._parse_streaming_tool_content</code></a></td>
<td>function</td>
<td><code>vllm_mlx.server._parse_streaming_tool_content(parser, accumulated_text: str, delta_text: str, request_context: dict) -&gt; tuple[str, dict | None, bool]</code></td>
<td>Function `_parse_streaming_tool_content` calls `_extract_streaming_tool_delta`; returns `(accumulated_text, result, suppress)`.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/server.py#L3103-L3116">#L3103-L3116</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.server._parse_tool_calls_with_parser function vllm_mlx.server._parse_tool_calls_with_parser(output_text: str, request: chatcompletionrequest | none = none, engine: baseengine | none = none) -&gt; tuple[str, list | none] parse tool calls from model output using the configured parser.">
<td><a href="../api/vllm_mlx/server/#contract-vllm_mlx.server._parse_tool_calls_with_parser"><code>vllm_mlx.server._parse_tool_calls_with_parser</code></a></td>
<td>function</td>
<td><code>vllm_mlx.server._parse_tool_calls_with_parser(output_text: str, request: ChatCompletionRequest | None = None, engine: BaseEngine | None = None) -&gt; tuple[str, list | None]</code></td>
<td>Parse tool calls from model output using the configured parser.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/server.py#L1844-L1930">#L1844-L1930</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.server._persist_engine_state function async vllm_mlx.server._persist_engine_state(spec: modelspec, engine: baseengine) -&gt; none persist engine-local state before an idle unload or shutdown unload.">
<td><a href="../api/vllm_mlx/server/#contract-vllm_mlx.server._persist_engine_state"><code>vllm_mlx.server._persist_engine_state</code></a></td>
<td>function</td>
<td><code>async vllm_mlx.server._persist_engine_state(spec: ModelSpec, engine: BaseEngine) -&gt; None</code></td>
<td>Persist engine-local state before an idle unload or shutdown unload.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/server.py#L1359-L1362">#L1359-L1362</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.server._prepare_anthropic_endpoint_invocation function vllm_mlx.server._prepare_anthropic_endpoint_invocation(engine: baseengine, openai_request: chatcompletionrequest, effective_max_tokens: int) -&gt; preparedchatinvocation prepare anthropic invocation and convert url-safety errors to 400s.">
<td><a href="../api/vllm_mlx/server/#contract-vllm_mlx.server._prepare_anthropic_endpoint_invocation"><code>vllm_mlx.server._prepare_anthropic_endpoint_invocation</code></a></td>
<td>function</td>
<td><code>vllm_mlx.server._prepare_anthropic_endpoint_invocation(engine: BaseEngine, openai_request: ChatCompletionRequest, effective_max_tokens: int) -&gt; PreparedChatInvocation</code></td>
<td>Prepare Anthropic invocation and convert URL-safety errors to 400s.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/server.py#L5338-L5351">#L5338-L5351</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.server._prepare_anthropic_invocation function vllm_mlx.server._prepare_anthropic_invocation(engine: baseengine, openai_request: chatcompletionrequest, effective_max_tokens: int) -&gt; preparedchatinvocation precompute messages, kwargs, and decoding constraints for anthropic api.">
<td><a href="../api/vllm_mlx/server/#contract-vllm_mlx.server._prepare_anthropic_invocation"><code>vllm_mlx.server._prepare_anthropic_invocation</code></a></td>
<td>function</td>
<td><code>vllm_mlx.server._prepare_anthropic_invocation(engine: BaseEngine, openai_request: ChatCompletionRequest, effective_max_tokens: int) -&gt; PreparedChatInvocation</code></td>
<td>Precompute messages, kwargs, and decoding constraints for Anthropic API.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/server.py#L858-L910">#L858-L910</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.server._prepare_chat_completion_invocation function vllm_mlx.server._prepare_chat_completion_invocation(engine: baseengine, request: chatcompletionrequest, effective_max_tokens: int) -&gt; preparedchatinvocation precompute messages, kwargs, and decoding constraints for chat completions.">
<td><a href="../api/vllm_mlx/server/#contract-vllm_mlx.server._prepare_chat_completion_invocation"><code>vllm_mlx.server._prepare_chat_completion_invocation</code></a></td>
<td>function</td>
<td><code>vllm_mlx.server._prepare_chat_completion_invocation(engine: BaseEngine, request: ChatCompletionRequest, effective_max_tokens: int) -&gt; PreparedChatInvocation</code></td>
<td>Precompute messages, kwargs, and decoding constraints for chat completions.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/server.py#L747-L855">#L747-L855</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.server._prepare_chat_messages function vllm_mlx.server._prepare_chat_messages(engine: baseengine, request_messages: list[message | dict]) -&gt; tuple[list[dict], list, list, list, bool] normalize messages and collect media once for both stream/non-stream paths.">
<td><a href="../api/vllm_mlx/server/#contract-vllm_mlx.server._prepare_chat_messages"><code>vllm_mlx.server._prepare_chat_messages</code></a></td>
<td>function</td>
<td><code>vllm_mlx.server._prepare_chat_messages(engine: BaseEngine, request_messages: list[Message | dict]) -&gt; tuple[list[dict], list, list, list, bool]</code></td>
<td>Normalize messages and collect media once for both stream/non-stream paths.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/server.py#L314-L398">#L314-L398</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.server._prepare_json_logits_processor function vllm_mlx.server._prepare_json_logits_processor(engine: baseengine, messages: list[dict], response_format: object | none, *, tools: list | none, tool_choice: object | none, log_context: str | none = none, thinking_model: bool = false) -&gt; tuple[list[dict], object | none] inject response_format instruction and build constrained decoding processor.">
<td><a href="../api/vllm_mlx/server/#contract-vllm_mlx.server._prepare_json_logits_processor"><code>vllm_mlx.server._prepare_json_logits_processor</code></a></td>
<td>function</td>
<td><code>vllm_mlx.server._prepare_json_logits_processor(engine: BaseEngine, messages: list[dict], response_format: object | None, *, tools: list | None, tool_choice: object | None, log_context: str | None = None, thinking_model: bool = False) -&gt; tuple[list[dict], object | None]</code></td>
<td>Inject response_format instruction and build constrained decoding processor.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/server.py#L447-L497">#L447-L497</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.server._prepare_openai_stream_reasoning_state function vllm_mlx.server._prepare_openai_stream_reasoning_state(engine: baseengine, request: chatcompletionrequest, chat_kwargs: dict[str, object]) -&gt; tuple[object | none, bool] return request-local reasoning state and the legacy nemotron marker state.">
<td><a href="../api/vllm_mlx/server/#contract-vllm_mlx.server._prepare_openai_stream_reasoning_state"><code>vllm_mlx.server._prepare_openai_stream_reasoning_state</code></a></td>
<td>function</td>
<td><code>vllm_mlx.server._prepare_openai_stream_reasoning_state(engine: BaseEngine, request: ChatCompletionRequest, chat_kwargs: dict[str, object]) -&gt; tuple[object | None, bool]</code></td>
<td>Return request-local reasoning state and the legacy Nemotron marker state.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/server.py#L1159-L1171">#L1159-L1171</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.server._prepare_responses_request function vllm_mlx.server._prepare_responses_request(request: responsesrequest, *, validate_remote_media: bool = true) -&gt; tuple[baseengine, chatcompletionrequest, list[dict], dict] prepare a responses request for execution on the chat engine.">
<td><a href="../api/vllm_mlx/server/#contract-vllm_mlx.server._prepare_responses_request"><code>vllm_mlx.server._prepare_responses_request</code></a></td>
<td>function</td>
<td><code>vllm_mlx.server._prepare_responses_request(request: ResponsesRequest, *, validate_remote_media: bool = True) -&gt; tuple[BaseEngine, ChatCompletionRequest, list[dict], dict]</code></td>
<td>Prepare a Responses request for execution on the chat engine.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/server.py#L2370-L2414">#L2370-L2414</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.server._prepare_streaming_reasoning_parser function vllm_mlx.server._prepare_streaming_reasoning_parser(engine: baseengine, request: chatcompletionrequest | responsesrequest | none, chat_kwargs: dict[str, object], *, allowed: bool = true) -&gt; not annotated build and reset request-local reasoning state when thinking is enabled.">
<td><a href="../api/vllm_mlx/server/#contract-vllm_mlx.server._prepare_streaming_reasoning_parser"><code>vllm_mlx.server._prepare_streaming_reasoning_parser</code></a></td>
<td>function</td>
<td><code>vllm_mlx.server._prepare_streaming_reasoning_parser(engine: BaseEngine, request: ChatCompletionRequest | ResponsesRequest | None, chat_kwargs: dict[str, object], *, allowed: bool = True) -&gt; not annotated</code></td>
<td>Build and reset request-local reasoning state when thinking is enabled.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/server.py#L1143-L1156">#L1143-L1156</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.server._prepare_streaming_responses_request function vllm_mlx.server._prepare_streaming_responses_request(request: responsesrequest) -&gt; tuple[baseengine, chatcompletionrequest, list[dict], dict] prepare a streaming responses request after eager url validation.">
<td><a href="../api/vllm_mlx/server/#contract-vllm_mlx.server._prepare_streaming_responses_request"><code>vllm_mlx.server._prepare_streaming_responses_request</code></a></td>
<td>function</td>
<td><code>vllm_mlx.server._prepare_streaming_responses_request(request: ResponsesRequest) -&gt; tuple[BaseEngine, ChatCompletionRequest, list[dict], dict]</code></td>
<td>Prepare a streaming Responses request after eager URL validation.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/server.py#L2417-L2421">#L2417-L2421</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.server._promote_streaming_response_format_delta function vllm_mlx.server._promote_streaming_response_format_delta(content: str | none, reasoning: str | none, request: chatcompletionrequest) -&gt; tuple[str | none, str | none] keep response_format json on the streaming content channel.">
<td><a href="../api/vllm_mlx/server/#contract-vllm_mlx.server._promote_streaming_response_format_delta"><code>vllm_mlx.server._promote_streaming_response_format_delta</code></a></td>
<td>function</td>
<td><code>vllm_mlx.server._promote_streaming_response_format_delta(content: str | None, reasoning: str | None, request: ChatCompletionRequest) -&gt; tuple[str | None, str | None]</code></td>
<td>Keep response_format JSON on the streaming content channel.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/server.py#L1963-L1981">#L1963-L1981</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.server._public_lifecycle_status function vllm_mlx.server._public_lifecycle_status(lifecycle: dict | none) -&gt; dict | none return residency status safe for unauthenticated public endpoints.">
<td><a href="../api/vllm_mlx/server/#contract-vllm_mlx.server._public_lifecycle_status"><code>vllm_mlx.server._public_lifecycle_status</code></a></td>
<td>function</td>
<td><code>vllm_mlx.server._public_lifecycle_status(lifecycle: dict | None) -&gt; dict | None</code></td>
<td>Return residency status safe for unauthenticated public endpoints.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/server.py#L1398-L1410">#L1398-L1410</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.server._raise_engine_busy function vllm_mlx.server._raise_engine_busy(exc: enginebusy) -&gt; none translate serialized-engine admission failures into retryable http 503.">
<td><a href="../api/vllm_mlx/server/#contract-vllm_mlx.server._raise_engine_busy"><code>vllm_mlx.server._raise_engine_busy</code></a></td>
<td>function</td>
<td><code>vllm_mlx.server._raise_engine_busy(exc: EngineBusy) -&gt; None</code></td>
<td>Translate serialized-engine admission failures into retryable HTTP 503.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/server.py#L1031-L1039">#L1031-L1039</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.server._raise_remote_media_http_error function vllm_mlx.server._raise_remote_media_http_error(exc: unsaferemoteurlerror) -&gt; none log internal url-safety detail while returning a generic client error.">
<td><a href="../api/vllm_mlx/server/#contract-vllm_mlx.server._raise_remote_media_http_error"><code>vllm_mlx.server._raise_remote_media_http_error</code></a></td>
<td>function</td>
<td><code>vllm_mlx.server._raise_remote_media_http_error(exc: UnsafeRemoteURLError) -&gt; None</code></td>
<td>Log internal URL-safety detail while returning a generic client error.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/server.py#L438-L444">#L438-L444</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.server._release_default_engine function async vllm_mlx.server._release_default_engine(*, count_activity: bool = true) -&gt; none release the default engine after request processing.">
<td><a href="../api/vllm_mlx/server/#contract-vllm_mlx.server._release_default_engine"><code>vllm_mlx.server._release_default_engine</code></a></td>
<td>function</td>
<td><code>async vllm_mlx.server._release_default_engine(*, count_activity: bool = True) -&gt; None</code></td>
<td>Release the default engine after request processing.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/server.py#L1454-L1463">#L1454-L1463</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.server._release_engine_for_request function async vllm_mlx.server._release_engine_for_request(raw_request: request | none, *, count_activity: bool = true) -&gt; none release the engine acquired for this request.">
<td><a href="../api/vllm_mlx/server/#contract-vllm_mlx.server._release_engine_for_request"><code>vllm_mlx.server._release_engine_for_request</code></a></td>
<td>function</td>
<td><code>async vllm_mlx.server._release_engine_for_request(raw_request: Request | None, *, count_activity: bool = True) -&gt; None</code></td>
<td>Release the engine acquired for this request.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/server.py#L4722-L4737">#L4722-L4737</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.server._remaining_request_timeout function vllm_mlx.server._remaining_request_timeout(total_timeout: float, deadline: float) -&gt; float compute remaining request budget or raise the standard timeout error.">
<td><a href="../api/vllm_mlx/server/#contract-vllm_mlx.server._remaining_request_timeout"><code>vllm_mlx.server._remaining_request_timeout</code></a></td>
<td>function</td>
<td><code>vllm_mlx.server._remaining_request_timeout(total_timeout: float, deadline: float) -&gt; float</code></td>
<td>Compute remaining request budget or raise the standard timeout error.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/server.py#L4647-L4655">#L4647-L4655</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.server._request_tool_definitions function vllm_mlx.server._request_tool_definitions(request: chatcompletionrequest) -&gt; list | none return the request tool schema once for streaming argument coercion.">
<td><a href="../api/vllm_mlx/server/#contract-vllm_mlx.server._request_tool_definitions"><code>vllm_mlx.server._request_tool_definitions</code></a></td>
<td>function</td>
<td><code>vllm_mlx.server._request_tool_definitions(request: ChatCompletionRequest) -&gt; list | None</code></td>
<td>Return the request tool schema once for streaming argument coercion.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/server.py#L1174-L1178">#L1174-L1178</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.server._resolve_chat_template_kwargs function vllm_mlx.server._resolve_chat_template_kwargs(request_value: dict[str, object] | none) -&gt; dict[str, object] resolve chat template kwargs: request &gt; server default &gt; empty dict.">
<td><a href="../api/vllm_mlx/server/#contract-vllm_mlx.server._resolve_chat_template_kwargs"><code>vllm_mlx.server._resolve_chat_template_kwargs</code></a></td>
<td>function</td>
<td><code>vllm_mlx.server._resolve_chat_template_kwargs(request_value: dict[str, object] | None) -&gt; dict[str, object]</code></td>
<td>Resolve chat template kwargs: request &gt; server default &gt; empty dict.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/server.py#L291-L300">#L291-L300</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.server._resolve_min_p function vllm_mlx.server._resolve_min_p(request_value: float | none) -&gt; float resolve min_p: request &gt; cli default &gt; fallback.">
<td><a href="../api/vllm_mlx/server/#contract-vllm_mlx.server._resolve_min_p"><code>vllm_mlx.server._resolve_min_p</code></a></td>
<td>function</td>
<td><code>vllm_mlx.server._resolve_min_p(request_value: float | None) -&gt; float</code></td>
<td>Resolve min_p: request &gt; CLI default &gt; fallback.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/server.py#L252-L258">#L252-L258</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.server._resolve_no_final_content_token_limit function vllm_mlx.server._resolve_no_final_content_token_limit() -&gt; int | none function `_resolve_no_final_content_token_limit` calls `os.environ.get`, `raw.strip`, `int`, `logger.warning`; has 2 explicit return paths.">
<td><a href="../api/vllm_mlx/server/#contract-vllm_mlx.server._resolve_no_final_content_token_limit"><code>vllm_mlx.server._resolve_no_final_content_token_limit</code></a></td>
<td>function</td>
<td><code>vllm_mlx.server._resolve_no_final_content_token_limit() -&gt; int | None</code></td>
<td>Function `_resolve_no_final_content_token_limit` calls `os.environ.get`, `raw.strip`, `int`, `logger.warning`; has 2 explicit return paths.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/server.py#L557-L568">#L557-L568</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.server._resolve_presence_penalty function vllm_mlx.server._resolve_presence_penalty(request_value: float | none) -&gt; float resolve presence_penalty: request &gt; cli default &gt; fallback.">
<td><a href="../api/vllm_mlx/server/#contract-vllm_mlx.server._resolve_presence_penalty"><code>vllm_mlx.server._resolve_presence_penalty</code></a></td>
<td>function</td>
<td><code>vllm_mlx.server._resolve_presence_penalty(request_value: float | None) -&gt; float</code></td>
<td>Resolve presence_penalty: request &gt; CLI default &gt; fallback.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/server.py#L261-L267">#L261-L267</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.server._resolve_repetition_penalty function vllm_mlx.server._resolve_repetition_penalty(request_value: float | none) -&gt; float resolve repetition_penalty: request &gt; cli default &gt; fallback.">
<td><a href="../api/vllm_mlx/server/#contract-vllm_mlx.server._resolve_repetition_penalty"><code>vllm_mlx.server._resolve_repetition_penalty</code></a></td>
<td>function</td>
<td><code>vllm_mlx.server._resolve_repetition_penalty(request_value: float | None) -&gt; float</code></td>
<td>Resolve repetition_penalty: request &gt; CLI default &gt; fallback.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/server.py#L270-L276">#L270-L276</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.server._resolve_request_max_tokens function vllm_mlx.server._resolve_request_max_tokens(requested_value: int | none) -&gt; int resolve and validate a request&#x27;s max_tokens budget.">
<td><a href="../api/vllm_mlx/server/#contract-vllm_mlx.server._resolve_request_max_tokens"><code>vllm_mlx.server._resolve_request_max_tokens</code></a></td>
<td>function</td>
<td><code>vllm_mlx.server._resolve_request_max_tokens(requested_value: int | None) -&gt; int</code></td>
<td>Resolve and validate a request&#x27;s max_tokens budget.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/server.py#L279-L288">#L279-L288</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.server._resolve_temperature function vllm_mlx.server._resolve_temperature(request_value: float | none) -&gt; float resolve temperature: request &gt; cli default &gt; fallback.">
<td><a href="../api/vllm_mlx/server/#contract-vllm_mlx.server._resolve_temperature"><code>vllm_mlx.server._resolve_temperature</code></a></td>
<td>function</td>
<td><code>vllm_mlx.server._resolve_temperature(request_value: float | None) -&gt; float</code></td>
<td>Resolve temperature: request &gt; CLI default &gt; fallback.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/server.py#L225-L231">#L225-L231</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.server._resolve_top_k function vllm_mlx.server._resolve_top_k(request_value: int | none) -&gt; int resolve top_k: request &gt; cli default &gt; fallback.">
<td><a href="../api/vllm_mlx/server/#contract-vllm_mlx.server._resolve_top_k"><code>vllm_mlx.server._resolve_top_k</code></a></td>
<td>function</td>
<td><code>vllm_mlx.server._resolve_top_k(request_value: int | None) -&gt; int</code></td>
<td>Resolve top_k: request &gt; CLI default &gt; fallback.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/server.py#L243-L249">#L243-L249</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.server._resolve_top_p function vllm_mlx.server._resolve_top_p(request_value: float | none) -&gt; float resolve top_p: request &gt; cli default &gt; fallback.">
<td><a href="../api/vllm_mlx/server/#contract-vllm_mlx.server._resolve_top_p"><code>vllm_mlx.server._resolve_top_p</code></a></td>
<td>function</td>
<td><code>vllm_mlx.server._resolve_top_p(request_value: float | None) -&gt; float</code></td>
<td>Resolve top_p: request &gt; CLI default &gt; fallback.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/server.py#L234-L240">#L234-L240</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.server._response_content_to_text function vllm_mlx.server._response_content_to_text(content) -&gt; str normalize responses api content items into plain text.">
<td><a href="../api/vllm_mlx/server/#contract-vllm_mlx.server._response_content_to_text"><code>vllm_mlx.server._response_content_to_text</code></a></td>
<td>function</td>
<td><code>vllm_mlx.server._response_content_to_text(content) -&gt; str</code></td>
<td>Normalize Responses API content items into plain text.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/server.py#L1989-L2006">#L1989-L2006</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.server._response_format_type function vllm_mlx.server._response_format_type(response_format: object | none) -&gt; str | none function `_response_format_type` calls `isinstance`, `response_format.get`, `getattr`; has 3 explicit return paths.">
<td><a href="../api/vllm_mlx/server/#contract-vllm_mlx.server._response_format_type"><code>vllm_mlx.server._response_format_type</code></a></td>
<td>function</td>
<td><code>vllm_mlx.server._response_format_type(response_format: object | None) -&gt; str | None</code></td>
<td>Function `_response_format_type` calls `isinstance`, `response_format.get`, `getattr`; has 3 explicit return paths.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/server.py#L1955-L1960">#L1955-L1960</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.server._response_model_name function vllm_mlx.server._response_model_name(request_model: str) -&gt; str return the response model field for single-model or registry mode.">
<td><a href="../api/vllm_mlx/server/#contract-vllm_mlx.server._response_model_name"><code>vllm_mlx.server._response_model_name</code></a></td>
<td>function</td>
<td><code>vllm_mlx.server._response_model_name(request_model: str) -&gt; str</code></td>
<td>Return the response model field for single-model or registry mode.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/server.py#L1065-L1067">#L1065-L1067</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.server._response_output_items_to_chat_messages function vllm_mlx.server._response_output_items_to_chat_messages(output_items: list) -&gt; list[dict] persist assistant output in chat-completions form for previous_response_id.">
<td><a href="../api/vllm_mlx/server/#contract-vllm_mlx.server._response_output_items_to_chat_messages"><code>vllm_mlx.server._response_output_items_to_chat_messages</code></a></td>
<td>function</td>
<td><code>vllm_mlx.server._response_output_items_to_chat_messages(output_items: list) -&gt; list[dict]</code></td>
<td>Persist assistant output in chat-completions form for previous_response_id.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/server.py#L2296-L2325">#L2296-L2325</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.server._responses_input_to_chat_messages function vllm_mlx.server._responses_input_to_chat_messages(request: responsesrequest) -&gt; list[dict] convert responses api input items into chat-completions-style messages.">
<td><a href="../api/vllm_mlx/server/#contract-vllm_mlx.server._responses_input_to_chat_messages"><code>vllm_mlx.server._responses_input_to_chat_messages</code></a></td>
<td>function</td>
<td><code>vllm_mlx.server._responses_input_to_chat_messages(request: ResponsesRequest) -&gt; list[dict]</code></td>
<td>Convert Responses API input items into chat-completions-style messages.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/server.py#L2052-L2170">#L2052-L2170</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.server._responses_request_to_chat_request function vllm_mlx.server._responses_request_to_chat_request(request: responsesrequest) -&gt; chatcompletionrequest build a chatcompletionrequest from a responsesrequest.">
<td><a href="../api/vllm_mlx/server/#contract-vllm_mlx.server._responses_request_to_chat_request"><code>vllm_mlx.server._responses_request_to_chat_request</code></a></td>
<td>function</td>
<td><code>vllm_mlx.server._responses_request_to_chat_request(request: ResponsesRequest) -&gt; ChatCompletionRequest</code></td>
<td>Build a ChatCompletionRequest from a ResponsesRequest.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/server.py#L2203-L2253">#L2203-L2253</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.server._responses_request_to_new_persisted_messages function vllm_mlx.server._responses_request_to_new_persisted_messages(request: responsesrequest) -&gt; list[dict] persist only the current request&#x27;s replayable input items.">
<td><a href="../api/vllm_mlx/server/#contract-vllm_mlx.server._responses_request_to_new_persisted_messages"><code>vllm_mlx.server._responses_request_to_new_persisted_messages</code></a></td>
<td>function</td>
<td><code>vllm_mlx.server._responses_request_to_new_persisted_messages(request: ResponsesRequest) -&gt; list[dict]</code></td>
<td>Persist only the current request&#x27;s replayable input items.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/server.py#L2173-L2181">#L2173-L2181</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.server._responses_request_to_persisted_messages function vllm_mlx.server._responses_request_to_persisted_messages(request: responsesrequest) -&gt; list[dict] persist replayable history for chained previous_response_id requests.">
<td><a href="../api/vllm_mlx/server/#contract-vllm_mlx.server._responses_request_to_persisted_messages"><code>vllm_mlx.server._responses_request_to_persisted_messages</code></a></td>
<td>function</td>
<td><code>vllm_mlx.server._responses_request_to_persisted_messages(request: ResponsesRequest) -&gt; list[dict]</code></td>
<td>Persist replayable history for chained previous_response_id requests.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/server.py#L2184-L2200">#L2184-L2200</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.server._responses_sse_event function vllm_mlx.server._responses_sse_event(event_type: str, payload: basemodel | dict) -&gt; str encode a responses api sse event.">
<td><a href="../api/vllm_mlx/server/#contract-vllm_mlx.server._responses_sse_event"><code>vllm_mlx.server._responses_sse_event</code></a></td>
<td>function</td>
<td><code>vllm_mlx.server._responses_sse_event(event_type: str, payload: BaseModel | dict) -&gt; str</code></td>
<td>Encode a Responses API SSE event.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/server.py#L2871-L2878">#L2871-L2878</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.server._responses_tools_to_chat_tools function vllm_mlx.server._responses_tools_to_chat_tools(tools: list[responsefunctiontool | dict]) -&gt; tuple[list[dict] | none, list[str]] convert supported responses tools and report unsupported tool types.">
<td><a href="../api/vllm_mlx/server/#contract-vllm_mlx.server._responses_tools_to_chat_tools"><code>vllm_mlx.server._responses_tools_to_chat_tools</code></a></td>
<td>function</td>
<td><code>vllm_mlx.server._responses_tools_to_chat_tools(tools: list[ResponseFunctionTool | dict]) -&gt; tuple[list[dict] | None, list[str]]</code></td>
<td>Convert supported Responses tools and report unsupported tool types.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/server.py#L2009-L2049">#L2009-L2049</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.server._restore_engine_state function async vllm_mlx.server._restore_engine_state(spec: modelspec, engine: baseengine) -&gt; none restore engine-local state, such as prefix cache, after a cold load.">
<td><a href="../api/vllm_mlx/server/#contract-vllm_mlx.server._restore_engine_state"><code>vllm_mlx.server._restore_engine_state</code></a></td>
<td>function</td>
<td><code>async vllm_mlx.server._restore_engine_state(spec: ModelSpec, engine: BaseEngine) -&gt; None</code></td>
<td>Restore engine-local state, such as prefix cache, after a cold load.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/server.py#L1353-L1356">#L1353-L1356</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.server._run_blocking_engine_cache_io function async vllm_mlx.server._run_blocking_engine_cache_io(io_fn, engine: baseengine) -&gt; none run blocking cache persistence off the event loop.">
<td><a href="../api/vllm_mlx/server/#contract-vllm_mlx.server._run_blocking_engine_cache_io"><code>vllm_mlx.server._run_blocking_engine_cache_io</code></a></td>
<td>function</td>
<td><code>async vllm_mlx.server._run_blocking_engine_cache_io(io_fn, engine: BaseEngine) -&gt; None</code></td>
<td>Run blocking cache persistence off the event loop.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/server.py#L1331-L1350">#L1331-L1350</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.server._run_responses_request function async vllm_mlx.server._run_responses_request(request: responsesrequest, raw_request: request) -&gt; tuple[responseobject | none, list[dict]] execute a responses api request against the backend chat engine.">
<td><a href="../api/vllm_mlx/server/#contract-vllm_mlx.server._run_responses_request"><code>vllm_mlx.server._run_responses_request</code></a></td>
<td>function</td>
<td><code>async vllm_mlx.server._run_responses_request(request: ResponsesRequest, raw_request: Request) -&gt; tuple[ResponseObject | None, list[dict]]</code></td>
<td>Execute a Responses API request against the backend chat engine.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/server.py#L2424-L2477">#L2424-L2477</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.server._sanitize_log_text function vllm_mlx.server._sanitize_log_text(value: object, limit: int | none = none) -&gt; str escape control characters before logging untrusted text.">
<td><a href="../api/vllm_mlx/server/#contract-vllm_mlx.server._sanitize_log_text"><code>vllm_mlx.server._sanitize_log_text</code></a></td>
<td>function</td>
<td><code>vllm_mlx.server._sanitize_log_text(value: object, limit: int | None = None) -&gt; str</code></td>
<td>Escape control characters before logging untrusted text.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/server.py#L1000-L1022">#L1000-L1022</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.server._save_prefix_cache_to_disk function vllm_mlx.server._save_prefix_cache_to_disk(engine: baseengine | none = none) -&gt; none save prefix cache to disk during shutdown.">
<td><a href="../api/vllm_mlx/server/#contract-vllm_mlx.server._save_prefix_cache_to_disk"><code>vllm_mlx.server._save_prefix_cache_to_disk</code></a></td>
<td>function</td>
<td><code>vllm_mlx.server._save_prefix_cache_to_disk(engine: BaseEngine | None = None) -&gt; None</code></td>
<td>Save prefix cache to disk during shutdown.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/server.py#L1253-L1271">#L1253-L1271</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.server._start_request_budget function vllm_mlx.server._start_request_budget(timeout: float | none) -&gt; tuple[float, float] return the total timeout and absolute deadline for a request.">
<td><a href="../api/vllm_mlx/server/#contract-vllm_mlx.server._start_request_budget"><code>vllm_mlx.server._start_request_budget</code></a></td>
<td>function</td>
<td><code>vllm_mlx.server._start_request_budget(timeout: float | None) -&gt; tuple[float, float]</code></td>
<td>Return the total timeout and absolute deadline for a request.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/server.py#L4641-L4644">#L4641-L4644</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.server._stream_anthropic_messages function async vllm_mlx.server._stream_anthropic_messages(engine: baseengine, openai_request: chatcompletionrequest, anthropic_request: anthropicrequest, prepared: preparedchatinvocation, metrics_tracker = none) -&gt; asynciterator[str] stream anthropic messages api sse events.">
<td><a href="../api/vllm_mlx/server/#contract-vllm_mlx.server._stream_anthropic_messages"><code>vllm_mlx.server._stream_anthropic_messages</code></a></td>
<td>function</td>
<td><code>async vllm_mlx.server._stream_anthropic_messages(engine: BaseEngine, openai_request: ChatCompletionRequest, anthropic_request: AnthropicRequest, prepared: PreparedChatInvocation, metrics_tracker = None) -&gt; AsyncIterator[str]</code></td>
<td>Stream Anthropic Messages API SSE events.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/server.py#L5722-L5995">#L5722-L5995</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.server._stream_request_metadata function vllm_mlx.server._stream_request_metadata(request: chatcompletionrequest) -&gt; tuple[dict, list | none, bool] function `_stream_request_metadata` calls `request.model_dump(include={&#x27;tools&#x27;}).get`, `request.model_dump`, `bool`; returns `({&#x27;tools&#x27;: tools or []}, tools, include_usage)`.">
<td><a href="../api/vllm_mlx/server/#contract-vllm_mlx.server._stream_request_metadata"><code>vllm_mlx.server._stream_request_metadata</code></a></td>
<td>function</td>
<td><code>vllm_mlx.server._stream_request_metadata(request: ChatCompletionRequest) -&gt; tuple[dict, list | None, bool]</code></td>
<td>Function `_stream_request_metadata` calls `request.model_dump(include={&#x27;tools&#x27;}).get`, `request.model_dump`, `bool`; returns `({&#x27;tools&#x27;: tools or []}, tools, include_usage)`.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/server.py#L3091-L3100">#L3091-L3100</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.server._stream_responses_request function async vllm_mlx.server._stream_responses_request(request: responsesrequest) -&gt; asynciterator[str] execute a responses api request and stream sse events incrementally.">
<td><a href="../api/vllm_mlx/server/#contract-vllm_mlx.server._stream_responses_request"><code>vllm_mlx.server._stream_responses_request</code></a></td>
<td>function</td>
<td><code>async vllm_mlx.server._stream_responses_request(request: ResponsesRequest) -&gt; AsyncIterator[str]</code></td>
<td>Execute a Responses API request and stream SSE events incrementally.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/server.py#L2480-L2868">#L2480-L2868</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="nested function" data-symbol-search="vllm_mlx.server._stream_responses_request._start_reasoning_item nested function vllm_mlx.server._stream_responses_request._start_reasoning_item() -&gt; list[str] nested function `_stream_responses_request._start_reasoning_item` calls `_new_response_item_id`, `events.append`, `_responses_sse_event`, `responseoutputitemaddedevent`; returns `events`.">
<td><a href="../api/vllm_mlx/server/#contract-vllm_mlx.server._stream_responses_request._start_reasoning_item"><code>vllm_mlx.server._stream_responses_request._start_reasoning_item</code></a></td>
<td>nested function</td>
<td><code>vllm_mlx.server._stream_responses_request._start_reasoning_item() -&gt; list[str]</code></td>
<td>Nested Function `_stream_responses_request._start_reasoning_item` calls `_new_response_item_id`, `events.append`, `_responses_sse_event`, `ResponseOutputItemAddedEvent`; returns `events`.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/server.py#L2563-L2598">#L2563-L2598</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="nested function" data-symbol-search="vllm_mlx.server._stream_responses_request._start_text_item nested function vllm_mlx.server._stream_responses_request._start_text_item() -&gt; list[str] nested function `_stream_responses_request._start_text_item` calls `_new_response_item_id`, `events.append`, `_responses_sse_event`, `responseoutputitemaddedevent`; returns `events`.">
<td><a href="../api/vllm_mlx/server/#contract-vllm_mlx.server._stream_responses_request._start_text_item"><code>vllm_mlx.server._stream_responses_request._start_text_item</code></a></td>
<td>nested function</td>
<td><code>vllm_mlx.server._stream_responses_request._start_text_item() -&gt; list[str]</code></td>
<td>Nested Function `_stream_responses_request._start_text_item` calls `_new_response_item_id`, `events.append`, `_responses_sse_event`, `ResponseOutputItemAddedEvent`; returns `events`.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/server.py#L2525-L2561">#L2525-L2561</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.server._stream_with_model_context function async vllm_mlx.server._stream_with_model_context(context: requestmodelcontext, stream: asynciterator[str]) -&gt; asynciterator[str] ensure model leases survive for the full streaming response.">
<td><a href="../api/vllm_mlx/server/#contract-vllm_mlx.server._stream_with_model_context"><code>vllm_mlx.server._stream_with_model_context</code></a></td>
<td>function</td>
<td><code>async vllm_mlx.server._stream_with_model_context(context: RequestModelContext, stream: AsyncIterator[str]) -&gt; AsyncIterator[str]</code></td>
<td>Ensure model leases survive for the full streaming response.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/server.py#L1097-L1106">#L1097-L1106</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.server._streaming_json_fence_stripper function vllm_mlx.server._streaming_json_fence_stripper(request: chatcompletionrequest) -&gt; streamingjsonfencestripper | none create a fence stripper only for json-constrained streaming responses.">
<td><a href="../api/vllm_mlx/server/#contract-vllm_mlx.server._streaming_json_fence_stripper"><code>vllm_mlx.server._streaming_json_fence_stripper</code></a></td>
<td>function</td>
<td><code>vllm_mlx.server._streaming_json_fence_stripper(request: ChatCompletionRequest) -&gt; StreamingJsonFenceStripper | None</code></td>
<td>Create a fence stripper only for JSON-constrained streaming responses.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/server.py#L1181-L1191">#L1181-L1191</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.server._streaming_tool_markup_possible function vllm_mlx.server._streaming_tool_markup_possible(text: str) -&gt; bool heuristic marker check to avoid parser work on ordinary text chunks.">
<td><a href="../api/vllm_mlx/server/#contract-vllm_mlx.server._streaming_tool_markup_possible"><code>vllm_mlx.server._streaming_tool_markup_possible</code></a></td>
<td>function</td>
<td><code>vllm_mlx.server._streaming_tool_markup_possible(text: str) -&gt; bool</code></td>
<td>Heuristic marker check to avoid parser work on ordinary text chunks.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/server.py#L3119-L3125">#L3119-L3125</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.server._streaming_tool_markup_possible_after_delta function vllm_mlx.server._streaming_tool_markup_possible_after_delta(accumulated_text: str, delta_text: str) -&gt; bool check only the boundary window needed to detect newly appearing tool markup.">
<td><a href="../api/vllm_mlx/server/#contract-vllm_mlx.server._streaming_tool_markup_possible_after_delta"><code>vllm_mlx.server._streaming_tool_markup_possible_after_delta</code></a></td>
<td>function</td>
<td><code>vllm_mlx.server._streaming_tool_markup_possible_after_delta(accumulated_text: str, delta_text: str) -&gt; bool</code></td>
<td>Check only the boundary window needed to detect newly appearing tool markup.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/server.py#L3128-L3143">#L3128-L3143</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.server._strip_backslash_before_unicode function vllm_mlx.server._strip_backslash_before_unicode(obj: object) -&gt; object remove spurious backslashes before non-ascii chars in json string values.">
<td><a href="../api/vllm_mlx/server/#contract-vllm_mlx.server._strip_backslash_before_unicode"><code>vllm_mlx.server._strip_backslash_before_unicode</code></a></td>
<td>function</td>
<td><code>vllm_mlx.server._strip_backslash_before_unicode(obj: object) -&gt; object</code></td>
<td>Remove spurious backslashes before non-ASCII chars in JSON string values.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/server.py#L983-L997">#L983-L997</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.server._strip_harmony_analysis_blocks function vllm_mlx.server._strip_harmony_analysis_blocks(text: str) -&gt; str remove harmony analysis-channel blocks (and their content) so reasoning text is never handed to the tool parser, while commentary/final text is preserved.">
<td><a href="../api/vllm_mlx/server/#contract-vllm_mlx.server._strip_harmony_analysis_blocks"><code>vllm_mlx.server._strip_harmony_analysis_blocks</code></a></td>
<td>function</td>
<td><code>vllm_mlx.server._strip_harmony_analysis_blocks(text: str) -&gt; str</code></td>
<td>Remove harmony analysis-channel blocks (and their content) so reasoning text is never handed to the tool parser, while commentary/final text is preserved.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/server.py#L2888-L2892">#L2888-L2892</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.server._sync_engine_from_residency function vllm_mlx.server._sync_engine_from_residency() -&gt; baseengine | none sync the global engine pointer from the residency manager state.">
<td><a href="../api/vllm_mlx/server/#contract-vllm_mlx.server._sync_engine_from_residency"><code>vllm_mlx.server._sync_engine_from_residency</code></a></td>
<td>function</td>
<td><code>vllm_mlx.server._sync_engine_from_residency() -&gt; BaseEngine | None</code></td>
<td>Sync the global engine pointer from the residency manager state.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/server.py#L1378-L1388">#L1378-L1388</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.server._thinking_disabled function vllm_mlx.server._thinking_disabled(request, chat_kwargs: dict | none = none) -&gt; bool return true iff thinking is explicitly disabled for this request.">
<td><a href="../api/vllm_mlx/server/#contract-vllm_mlx.server._thinking_disabled"><code>vllm_mlx.server._thinking_disabled</code></a></td>
<td>function</td>
<td><code>vllm_mlx.server._thinking_disabled(request, chat_kwargs: dict | None = None) -&gt; bool</code></td>
<td>Return True iff thinking is explicitly disabled for this request.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/server.py#L934-L950">#L934-L950</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="class" data-symbol-search="vllm_mlx.server._thinkingawarelogitsprocessor class vllm_mlx.server._thinkingawarelogitsprocessor(inner, prompt_has_think_tag: bool = false) wrap a ``jsonschemalogitsprocessor`` so json constraining only activates after the model emits ``&lt;/think&gt;``, letting it reason freely first.">
<td><a href="../api/vllm_mlx/server/#contract-vllm_mlx.server._ThinkingAwareLogitsProcessor"><code>vllm_mlx.server._ThinkingAwareLogitsProcessor</code></a></td>
<td>class</td>
<td><code>vllm_mlx.server._ThinkingAwareLogitsProcessor(inner, prompt_has_think_tag: bool = False)</code></td>
<td>Wrap a ``JSONSchemaLogitsProcessor`` so JSON constraining only activates after the model emits ``&lt;/think&gt;``, letting it reason freely first.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/server.py#L586-L697">#L586-L697</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.server._thinkingawarelogitsprocessor.__call__ method vllm_mlx.server._thinkingawarelogitsprocessor.__call__(tokens, logits) -&gt; not annotated method `_thinkingawarelogitsprocessor.__call__` updates `self._base_prompt_len`, `self._in_thinking`, `self._waiting_for_json`, `self._json_scan_offset`; calls `self._inner`, `hasattr`, `tokens.tolist`, `list`; has 3 explicit return paths.">
<td><a href="../api/vllm_mlx/server/#contract-vllm_mlx.server._ThinkingAwareLogitsProcessor.__call__"><code>vllm_mlx.server._ThinkingAwareLogitsProcessor.__call__</code></a></td>
<td>method</td>
<td><code>vllm_mlx.server._ThinkingAwareLogitsProcessor.__call__(tokens, logits) -&gt; not annotated</code></td>
<td>Method `_ThinkingAwareLogitsProcessor.__call__` updates `self._base_prompt_len`, `self._in_thinking`, `self._waiting_for_json`, `self._json_scan_offset`; calls `self._inner`, `hasattr`, `tokens.tolist`, `list`; has 3 explicit return paths.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/server.py#L637-L688">#L637-L688</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.server._thinkingawarelogitsprocessor.__init__ method vllm_mlx.server._thinkingawarelogitsprocessor.__init__(inner, prompt_has_think_tag: bool = false) -&gt; not annotated method `_thinkingawarelogitsprocessor.__init__` updates `self._inner`, `self._active`, `self._in_thinking`, `self._waiting_for_json`.">
<td><a href="../api/vllm_mlx/server/#contract-vllm_mlx.server._ThinkingAwareLogitsProcessor.__init__"><code>vllm_mlx.server._ThinkingAwareLogitsProcessor.__init__</code></a></td>
<td>method</td>
<td><code>vllm_mlx.server._ThinkingAwareLogitsProcessor.__init__(inner, prompt_has_think_tag: bool = False) -&gt; not annotated</code></td>
<td>Method `_ThinkingAwareLogitsProcessor.__init__` updates `self._inner`, `self._active`, `self._in_thinking`, `self._waiting_for_json`.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/server.py#L597-L608">#L597-L608</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.server._thinkingawarelogitsprocessor._disabled method vllm_mlx.server._thinkingawarelogitsprocessor._disabled() -&gt; not annotated method `_thinkingawarelogitsprocessor._disabled` returns `self._inner._disabled`.">
<td><a href="../api/vllm_mlx/server/#contract-vllm_mlx.server._ThinkingAwareLogitsProcessor._disabled"><code>vllm_mlx.server._ThinkingAwareLogitsProcessor._disabled</code></a></td>
<td>method</td>
<td><code>vllm_mlx.server._ThinkingAwareLogitsProcessor._disabled() -&gt; not annotated</code></td>
<td>Method `_ThinkingAwareLogitsProcessor._disabled` returns `self._inner._disabled`.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/server.py#L696-L697">#L696-L697</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.server._thinkingawarelogitsprocessor._scan_for_json_start method vllm_mlx.server._thinkingawarelogitsprocessor._scan_for_json_start(tokens_list, tokens, logits) -&gt; not annotated scan generated tokens for the first ``{`` or ``[``.">
<td><a href="../api/vllm_mlx/server/#contract-vllm_mlx.server._ThinkingAwareLogitsProcessor._scan_for_json_start"><code>vllm_mlx.server._ThinkingAwareLogitsProcessor._scan_for_json_start</code></a></td>
<td>method</td>
<td><code>vllm_mlx.server._ThinkingAwareLogitsProcessor._scan_for_json_start(tokens_list, tokens, logits) -&gt; not annotated</code></td>
<td>Scan generated tokens for the first ``{`` or ``[``.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/server.py#L610-L635">#L610-L635</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.server._thinkingawarelogitsprocessor.schema method vllm_mlx.server._thinkingawarelogitsprocessor.schema() -&gt; not annotated method `_thinkingawarelogitsprocessor.schema` returns `self._inner.schema`.">
<td><a href="../api/vllm_mlx/server/#contract-vllm_mlx.server._ThinkingAwareLogitsProcessor.schema"><code>vllm_mlx.server._ThinkingAwareLogitsProcessor.schema</code></a></td>
<td>method</td>
<td><code>vllm_mlx.server._ThinkingAwareLogitsProcessor.schema() -&gt; not annotated</code></td>
<td>Method `_ThinkingAwareLogitsProcessor.schema` returns `self._inner.schema`.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/server.py#L692-L693">#L692-L693</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.server._tool_choice_disabled function vllm_mlx.server._tool_choice_disabled(request: chatcompletionrequest | none) -&gt; bool return true when tool_choice explicitly disables tool calling.">
<td><a href="../api/vllm_mlx/server/#contract-vllm_mlx.server._tool_choice_disabled"><code>vllm_mlx.server._tool_choice_disabled</code></a></td>
<td>function</td>
<td><code>vllm_mlx.server._tool_choice_disabled(request: ChatCompletionRequest | None) -&gt; bool</code></td>
<td>Return True when tool_choice explicitly disables tool calling.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/server.py#L3022-L3031">#L3022-L3031</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.server._tool_name function vllm_mlx.server._tool_name(tool: dict) -&gt; str | none extract function name from a tool definition dict.">
<td><a href="../api/vllm_mlx/server/#contract-vllm_mlx.server._tool_name"><code>vllm_mlx.server._tool_name</code></a></td>
<td>function</td>
<td><code>vllm_mlx.server._tool_name(tool: dict) -&gt; str | None</code></td>
<td>Extract function name from a tool definition dict.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/server.py#L5282-L5287">#L5282-L5287</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.server._validate_model_name function vllm_mlx.server._validate_model_name(request_model: str) -&gt; none validate that the request model name matches the served model.">
<td><a href="../api/vllm_mlx/server/#contract-vllm_mlx.server._validate_model_name"><code>vllm_mlx.server._validate_model_name</code></a></td>
<td>function</td>
<td><code>vllm_mlx.server._validate_model_name(request_model: str) -&gt; None</code></td>
<td>Validate that the request model name matches the served model.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/server.py#L1799-L1818">#L1799-L1818</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.server._validate_remote_media_urls function vllm_mlx.server._validate_remote_media_urls(messages: list[message | dict]) -&gt; none validate remote media urls during request preparation.">
<td><a href="../api/vllm_mlx/server/#contract-vllm_mlx.server._validate_remote_media_urls"><code>vllm_mlx.server._validate_remote_media_urls</code></a></td>
<td>function</td>
<td><code>vllm_mlx.server._validate_remote_media_urls(messages: list[Message | dict]) -&gt; None</code></td>
<td>Validate remote media URLs during request preparation.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/server.py#L432-L435">#L432-L435</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.server._wait_with_disconnect function async vllm_mlx.server._wait_with_disconnect(coro, raw_request: request, timeout: float, poll_interval: float = 0.5, timeout_detail_seconds: float | none = none, cleanup_result = none) -&gt; not annotated run a coroutine with both timeout and client disconnect detection.">
<td><a href="../api/vllm_mlx/server/#contract-vllm_mlx.server._wait_with_disconnect"><code>vllm_mlx.server._wait_with_disconnect</code></a></td>
<td>function</td>
<td><code>async vllm_mlx.server._wait_with_disconnect(coro, raw_request: Request, timeout: float, poll_interval: float = 0.5, timeout_detail_seconds: float | None = None, cleanup_result = None) -&gt; not annotated</code></td>
<td>Run a coroutine with both timeout and client disconnect detection.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/server.py#L4549-L4638">#L4549-L4638</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="nested function" data-symbol-search="vllm_mlx.server._wait_with_disconnect._wait_disconnect nested function async vllm_mlx.server._wait_with_disconnect._wait_disconnect() -&gt; not annotated nested function `_wait_with_disconnect._wait_disconnect` calls `asyncio.sleep`, `_is_client_disconnected`, `logger.info`, `_time.monotonic`; awaits asynchronous work; returns `none`.">
<td><a href="../api/vllm_mlx/server/#contract-vllm_mlx.server._wait_with_disconnect._wait_disconnect"><code>vllm_mlx.server._wait_with_disconnect._wait_disconnect</code></a></td>
<td>nested function</td>
<td><code>async vllm_mlx.server._wait_with_disconnect._wait_disconnect() -&gt; not annotated</code></td>
<td>Nested Function `_wait_with_disconnect._wait_disconnect` calls `asyncio.sleep`, `_is_client_disconnected`, `logger.info`, `_time.monotonic`; awaits asynchronous work; returns `None`.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/server.py#L4569-L4581">#L4569-L4581</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.server.cache_stats function async vllm_mlx.server.cache_stats() -&gt; not annotated get cache statistics for debugging and monitoring.">
<td><a href="../api/vllm_mlx/server/#contract-vllm_mlx.server.cache_stats"><code>vllm_mlx.server.cache_stats</code></a></td>
<td>function</td>
<td><code>async vllm_mlx.server.cache_stats() -&gt; not annotated</code></td>
<td>Get cache statistics for debugging and monitoring.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/server.py#L3601-L3627">#L3601-L3627</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.server.cancel_request function async vllm_mlx.server.cancel_request(request_id: str) -&gt; not annotated cancel an active or queued request.">
<td><a href="../api/vllm_mlx/server/#contract-vllm_mlx.server.cancel_request"><code>vllm_mlx.server.cancel_request</code></a></td>
<td>function</td>
<td><code>async vllm_mlx.server.cancel_request(request_id: str) -&gt; not annotated</code></td>
<td>Cancel an active or queued request.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/server.py#L3720-L3747">#L3720-L3747</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.server.check_rate_limit function async vllm_mlx.server.check_rate_limit(request: request) -&gt; not annotated rate limiting dependency.">
<td><a href="../api/vllm_mlx/server/#contract-vllm_mlx.server.check_rate_limit"><code>vllm_mlx.server.check_rate_limit</code></a></td>
<td>function</td>
<td><code>async vllm_mlx.server.check_rate_limit(request: Request) -&gt; not annotated</code></td>
<td>Rate limiting dependency.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/server.py#L1707-L1720">#L1707-L1720</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.server.clear_cache function async vllm_mlx.server.clear_cache() -&gt; not annotated clear all caches.">
<td><a href="../api/vllm_mlx/server/#contract-vllm_mlx.server.clear_cache"><code>vllm_mlx.server.clear_cache</code></a></td>
<td>function</td>
<td><code>async vllm_mlx.server.clear_cache() -&gt; not annotated</code></td>
<td>Clear all caches.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/server.py#L3631-L3659">#L3631-L3659</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.server.clear_prefix_cache function async vllm_mlx.server.clear_prefix_cache() -&gt; not annotated clear the text prefix cache used for kv reuse in continuous batching.">
<td><a href="../api/vllm_mlx/server/#contract-vllm_mlx.server.clear_prefix_cache"><code>vllm_mlx.server.clear_prefix_cache</code></a></td>
<td>function</td>
<td><code>async vllm_mlx.server.clear_prefix_cache() -&gt; not annotated</code></td>
<td>Clear the text prefix cache used for KV reuse in continuous batching.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/server.py#L3663-L3713">#L3663-L3713</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="nested function" data-symbol-search="vllm_mlx.server.clear_prefix_cache._rewarm nested function async vllm_mlx.server.clear_prefix_cache._rewarm() -&gt; not annotated nested function `clear_prefix_cache._rewarm` calls `load_warmup_file`, `warm_prefix_cache`, `logger.info`, `logger.warning`; awaits asynchronous work.">
<td><a href="../api/vllm_mlx/server/#contract-vllm_mlx.server.clear_prefix_cache._rewarm"><code>vllm_mlx.server.clear_prefix_cache._rewarm</code></a></td>
<td>nested function</td>
<td><code>async vllm_mlx.server.clear_prefix_cache._rewarm() -&gt; not annotated</code></td>
<td>Nested Function `clear_prefix_cache._rewarm` calls `load_warmup_file`, `warm_prefix_cache`, `logger.info`, `logger.warning`; awaits asynchronous work.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/server.py#L3688-L3707">#L3688-L3707</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.server.count_anthropic_tokens function async vllm_mlx.server.count_anthropic_tokens(request: request) -&gt; not annotated count tokens for an anthropic messages api request.">
<td><a href="../api/vllm_mlx/server/#contract-vllm_mlx.server.count_anthropic_tokens"><code>vllm_mlx.server.count_anthropic_tokens</code></a></td>
<td>function</td>
<td><code>async vllm_mlx.server.count_anthropic_tokens(request: Request) -&gt; not annotated</code></td>
<td>Count tokens for an Anthropic Messages API request.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/server.py#L5585-L5666">#L5585-L5666</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.server.create_anthropic_message function async vllm_mlx.server.create_anthropic_message(request: request) -&gt; not annotated anthropic messages api endpoint.">
<td><a href="../api/vllm_mlx/server/#contract-vllm_mlx.server.create_anthropic_message"><code>vllm_mlx.server.create_anthropic_message</code></a></td>
<td>function</td>
<td><code>async vllm_mlx.server.create_anthropic_message(request: Request) -&gt; not annotated</code></td>
<td>Anthropic Messages API endpoint.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/server.py#L5357-L5578">#L5357-L5578</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.server.create_chat_completion function async vllm_mlx.server.create_chat_completion(request: chatcompletionrequest, raw_request: request) -&gt; not annotated create a chat completion (supports multimodal content for vlm models).">
<td><a href="../api/vllm_mlx/server/#contract-vllm_mlx.server.create_chat_completion"><code>vllm_mlx.server.create_chat_completion</code></a></td>
<td>function</td>
<td><code>async vllm_mlx.server.create_chat_completion(request: ChatCompletionRequest, raw_request: Request) -&gt; not annotated</code></td>
<td>Create a chat completion (supports multimodal content for VLM models).</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/server.py#L4916-L5114">#L4916-L5114</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.server.create_completion function async vllm_mlx.server.create_completion(request: completionrequest, raw_request: request) -&gt; not annotated create a text completion.">
<td><a href="../api/vllm_mlx/server/#contract-vllm_mlx.server.create_completion"><code>vllm_mlx.server.create_completion</code></a></td>
<td>function</td>
<td><code>async vllm_mlx.server.create_completion(request: CompletionRequest, raw_request: Request) -&gt; not annotated</code></td>
<td>Create a text completion.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/server.py#L4763-L4909">#L4763-L4909</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.server.create_embeddings function async vllm_mlx.server.create_embeddings(request: embeddingrequest) -&gt; embeddingresponse create embeddings for the given input text(s).">
<td><a href="../api/vllm_mlx/server/#contract-vllm_mlx.server.create_embeddings"><code>vllm_mlx.server.create_embeddings</code></a></td>
<td>function</td>
<td><code>async vllm_mlx.server.create_embeddings(request: EmbeddingRequest) -&gt; EmbeddingResponse</code></td>
<td>Create embeddings for the given input text(s).</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/server.py#L3787-L3908">#L3787-L3908</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.server.create_parser function vllm_mlx.server.create_parser() -&gt; argparse.argumentparser create the standalone server cli parser.">
<td><a href="../api/vllm_mlx/server/#contract-vllm_mlx.server.create_parser"><code>vllm_mlx.server.create_parser</code></a></td>
<td>function</td>
<td><code>vllm_mlx.server.create_parser() -&gt; argparse.ArgumentParser</code></td>
<td>Create the standalone server CLI parser.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/server.py#L6711-L6912">#L6711-L6912</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.server.create_response function async vllm_mlx.server.create_response(request: responsesrequest, raw_request: request) -&gt; not annotated create a responses api response.">
<td><a href="../api/vllm_mlx/server/#contract-vllm_mlx.server.create_response"><code>vllm_mlx.server.create_response</code></a></td>
<td>function</td>
<td><code>async vllm_mlx.server.create_response(request: ResponsesRequest, raw_request: Request) -&gt; not annotated</code></td>
<td>Create a Responses API response.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/server.py#L5194-L5214">#L5194-L5214</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.server.create_speech function async vllm_mlx.server.create_speech(model: str = &#x27;kokoro&#x27;, input: str = &#x27;&#x27;, voice: str = &#x27;af_heart&#x27;, speed: float = 1.0, response_format: str = &#x27;wav&#x27;) -&gt; not annotated generate speech from text (openai tts api compatible).">
<td><a href="../api/vllm_mlx/server/#contract-vllm_mlx.server.create_speech"><code>vllm_mlx.server.create_speech</code></a></td>
<td>function</td>
<td><code>async vllm_mlx.server.create_speech(model: str = &#x27;kokoro&#x27;, input: str = &#x27;&#x27;, voice: str = &#x27;af_heart&#x27;, speed: float = 1.0, response_format: str = &#x27;wav&#x27;) -&gt; not annotated</code></td>
<td>Generate speech from text (OpenAI TTS API compatible).</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/server.py#L4200-L4254">#L4200-L4254</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.server.create_transcription function async vllm_mlx.server.create_transcription(file: uploadfile, model: str = &#x27;whisper-large-v3&#x27;, language: str | none = none, response_format: str = &#x27;json&#x27;) -&gt; not annotated transcribe audio to text (openai whisper api compatible).">
<td><a href="../api/vllm_mlx/server/#contract-vllm_mlx.server.create_transcription"><code>vllm_mlx.server.create_transcription</code></a></td>
<td>function</td>
<td><code>async vllm_mlx.server.create_transcription(file: UploadFile, model: str = &#x27;whisper-large-v3&#x27;, language: str | None = None, response_format: str = &#x27;json&#x27;) -&gt; not annotated</code></td>
<td>Transcribe audio to text (OpenAI Whisper API compatible).</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/server.py#L4130-L4196">#L4130-L4196</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.server.delete_request function async vllm_mlx.server.delete_request(request_id: str) -&gt; not annotated openai-style alias for cancelling an active or queued request.">
<td><a href="../api/vllm_mlx/server/#contract-vllm_mlx.server.delete_request"><code>vllm_mlx.server.delete_request</code></a></td>
<td>function</td>
<td><code>async vllm_mlx.server.delete_request(request_id: str) -&gt; not annotated</code></td>
<td>OpenAI-style alias for cancelling an active or queued request.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/server.py#L3754-L3756">#L3754-L3756</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.server.execute_mcp_tool function async vllm_mlx.server.execute_mcp_tool(request: mcpexecuterequest) -&gt; mcpexecuteresponse execute an mcp tool.">
<td><a href="../api/vllm_mlx/server/#contract-vllm_mlx.server.execute_mcp_tool"><code>vllm_mlx.server.execute_mcp_tool</code></a></td>
<td>function</td>
<td><code>async vllm_mlx.server.execute_mcp_tool(request: MCPExecuteRequest) -&gt; MCPExecuteResponse</code></td>
<td>Execute an MCP tool.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/server.py#L4088-L4117">#L4088-L4117</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.server.get_engine function vllm_mlx.server.get_engine() -&gt; baseengine get the loaded engine, raising error if not loaded.">
<td><a href="../api/vllm_mlx/server/#contract-vllm_mlx.server.get_engine"><code>vllm_mlx.server.get_engine</code></a></td>
<td>function</td>
<td><code>vllm_mlx.server.get_engine() -&gt; BaseEngine</code></td>
<td>Get the loaded engine, raising error if not loaded.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/server.py#L1745-L1749">#L1745-L1749</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.server.get_usage function vllm_mlx.server.get_usage(output: generationoutput) -&gt; usage extract usage metrics from generationoutput.">
<td><a href="../api/vllm_mlx/server/#contract-vllm_mlx.server.get_usage"><code>vllm_mlx.server.get_usage</code></a></td>
<td>function</td>
<td><code>vllm_mlx.server.get_usage(output: GenerationOutput) -&gt; Usage</code></td>
<td>Extract usage metrics from GenerationOutput.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/server.py#L3460-L3472">#L3460-L3472</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.server.health function async vllm_mlx.server.health() -&gt; not annotated health check endpoint.">
<td><a href="../api/vllm_mlx/server/#contract-vllm_mlx.server.health"><code>vllm_mlx.server.health</code></a></td>
<td>function</td>
<td><code>async vllm_mlx.server.health() -&gt; not annotated</code></td>
<td>Health check endpoint.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/server.py#L3489-L3544">#L3489-L3544</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.server.init_mcp function async vllm_mlx.server.init_mcp(config_path: str) -&gt; not annotated initialize mcp manager from config file.">
<td><a href="../api/vllm_mlx/server/#contract-vllm_mlx.server.init_mcp"><code>vllm_mlx.server.init_mcp</code></a></td>
<td>function</td>
<td><code>async vllm_mlx.server.init_mcp(config_path: str) -&gt; not annotated</code></td>
<td>Initialize MCP manager from config file.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/server.py#L6520-L6546">#L6520-L6546</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.server.lifespan function async vllm_mlx.server.lifespan(app: fastapi) -&gt; not annotated fastapi lifespan for startup/shutdown events.">
<td><a href="../api/vllm_mlx/server/#contract-vllm_mlx.server.lifespan"><code>vllm_mlx.server.lifespan</code></a></td>
<td>function</td>
<td><code>async vllm_mlx.server.lifespan(app: FastAPI) -&gt; not annotated</code></td>
<td>FastAPI lifespan for startup/shutdown events.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/server.py#L1466-L1589">#L1466-L1589</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.server.list_mcp_servers function async vllm_mlx.server.list_mcp_servers() -&gt; mcpserversresponse get status of all mcp servers.">
<td><a href="../api/vllm_mlx/server/#contract-vllm_mlx.server.list_mcp_servers"><code>vllm_mlx.server.list_mcp_servers</code></a></td>
<td>function</td>
<td><code>async vllm_mlx.server.list_mcp_servers() -&gt; MCPServersResponse</code></td>
<td>Get status of all MCP servers.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/server.py#L4067-L4084">#L4067-L4084</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.server.list_mcp_tools function async vllm_mlx.server.list_mcp_tools() -&gt; mcptoolsresponse list all available mcp tools.">
<td><a href="../api/vllm_mlx/server/#contract-vllm_mlx.server.list_mcp_tools"><code>vllm_mlx.server.list_mcp_tools</code></a></td>
<td>function</td>
<td><code>async vllm_mlx.server.list_mcp_tools() -&gt; MCPToolsResponse</code></td>
<td>List all available MCP tools.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/server.py#L4047-L4063">#L4047-L4063</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.server.list_models function async vllm_mlx.server.list_models() -&gt; modelsresponse list available models.">
<td><a href="../api/vllm_mlx/server/#contract-vllm_mlx.server.list_models"><code>vllm_mlx.server.list_models</code></a></td>
<td>function</td>
<td><code>async vllm_mlx.server.list_models() -&gt; ModelsResponse</code></td>
<td>List available models.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/server.py#L3760-L3775">#L3760-L3775</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.server.list_voices function async vllm_mlx.server.list_voices(model: str = &#x27;kokoro&#x27;) -&gt; not annotated list available voices for a tts model.">
<td><a href="../api/vllm_mlx/server/#contract-vllm_mlx.server.list_voices"><code>vllm_mlx.server.list_voices</code></a></td>
<td>function</td>
<td><code>async vllm_mlx.server.list_voices(model: str = &#x27;kokoro&#x27;) -&gt; not annotated</code></td>
<td>List available voices for a TTS model.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/server.py#L4258-L4267">#L4258-L4267</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.server.load_embedding_model function vllm_mlx.server.load_embedding_model(model_name: str | none, *, lock: bool = false, reuse_existing: bool = true) -&gt; none load or reuse the embedding model engine when configured.">
<td><a href="../api/vllm_mlx/server/#contract-vllm_mlx.server.load_embedding_model"><code>vllm_mlx.server.load_embedding_model</code></a></td>
<td>function</td>
<td><code>vllm_mlx.server.load_embedding_model(model_name: str | None, *, lock: bool = False, reuse_existing: bool = True) -&gt; None</code></td>
<td>Load or reuse the embedding model engine when configured.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/server.py#L3146-L3171">#L3146-L3171</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.server.load_model function vllm_mlx.server.load_model(model_name: str, use_batching: bool = false, scheduler_config = none, stream_interval: int = 1, max_tokens: int = 32768, max_request_tokens: int = 32768, force_mllm: bool = false, gpu_memory_utilization: float = 0.9, served_model_name: str | none = none, trust_remote_code: bool = false, mtp: bool = false, prefill_step_size: int = 2048, specprefill_enabled: bool = false, specprefill_threshold: int = 8192, specprefill_keep_pct: float = 0.3, specprefill_backbone_pct: float = 0.0, specprefill_draft_model: str = none, mllm_draft_model: str | none = none, mllm_draft_kind: str | none = none, mllm_draft_block_size: int | none = none, warm_prompts_path: str | none = none, auto_unload_idle_seconds: float = 0.0, lazy_load_model: bool = false) -&gt; not annotated load a model (auto-detects mllm vs llm).">
<td><a href="../api/vllm_mlx/server/#contract-vllm_mlx.server.load_model"><code>vllm_mlx.server.load_model</code></a></td>
<td>function</td>
<td><code>vllm_mlx.server.load_model(model_name: str, use_batching: bool = False, scheduler_config = None, stream_interval: int = 1, max_tokens: int = 32768, max_request_tokens: int = 32768, force_mllm: bool = False, gpu_memory_utilization: float = 0.9, served_model_name: str | None = None, trust_remote_code: bool = False, mtp: bool = False, prefill_step_size: int = 2048, specprefill_enabled: bool = False, specprefill_threshold: int = 8192, specprefill_keep_pct: float = 0.3, specprefill_backbone_pct: float = 0.0, specprefill_draft_model: str = None, mllm_draft_model: str | None = None, mllm_draft_kind: str | None = None, mllm_draft_block_size: int | None = None, warm_prompts_path: str | None = None, auto_unload_idle_seconds: float = 0.0, lazy_load_model: bool = False) -&gt; not annotated</code></td>
<td>Load a model (auto-detects MLLM vs LLM).</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/server.py#L3202-L3431">#L3202-L3431</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.server.load_model_registry function vllm_mlx.server.load_model_registry(config_path: str, *, defaults: registryservedefaults) -&gt; none load a registry-backed model manager from yaml configuration.">
<td><a href="../api/vllm_mlx/server/#contract-vllm_mlx.server.load_model_registry"><code>vllm_mlx.server.load_model_registry</code></a></td>
<td>function</td>
<td><code>vllm_mlx.server.load_model_registry(config_path: str, *, defaults: RegistryServeDefaults) -&gt; None</code></td>
<td>Load a registry-backed model manager from YAML configuration.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/server.py#L3434-L3457">#L3434-L3457</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.server.load_reranker_model function vllm_mlx.server.load_reranker_model(model_name: str | none, *, lock: bool = false, reuse_existing: bool = true) -&gt; none load or reuse the reranker model engine when configured.">
<td><a href="../api/vllm_mlx/server/#contract-vllm_mlx.server.load_reranker_model"><code>vllm_mlx.server.load_reranker_model</code></a></td>
<td>function</td>
<td><code>vllm_mlx.server.load_reranker_model(model_name: str | None, *, lock: bool = False, reuse_existing: bool = True) -&gt; None</code></td>
<td>Load or reuse the reranker model engine when configured.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/server.py#L3174-L3199">#L3174-L3199</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.server.main function vllm_mlx.server.main() -&gt; not annotated run the server.">
<td><a href="../api/vllm_mlx/server/#contract-vllm_mlx.server.main"><code>vllm_mlx.server.main</code></a></td>
<td>function</td>
<td><code>vllm_mlx.server.main() -&gt; not annotated</code></td>
<td>Run the server.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/server.py#L6597-L6708">#L6597-L6708</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.server.metrics function async vllm_mlx.server.metrics() -&gt; not annotated prometheus scrape endpoint (disabled by default).">
<td><a href="../api/vllm_mlx/server/#contract-vllm_mlx.server.metrics"><code>vllm_mlx.server.metrics</code></a></td>
<td>function</td>
<td><code>async vllm_mlx.server.metrics() -&gt; not annotated</code></td>
<td>Prometheus scrape endpoint (disabled by default).</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/server.py#L3476-L3485">#L3476-L3485</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="class" data-symbol-search="vllm_mlx.server.preparedchatinvocation class vllm_mlx.server.preparedchatinvocation(messages: list[dict], chat_kwargs: dict[str, object], response_format: object | none, json_logits_processor: object | none, thinking_processor: object | none = none) fully prepared inputs for a single engine.chat/stream_chat call.">
<td><a href="../api/vllm_mlx/server/#contract-vllm_mlx.server.PreparedChatInvocation"><code>vllm_mlx.server.PreparedChatInvocation</code></a></td>
<td>class</td>
<td><code>vllm_mlx.server.PreparedChatInvocation(messages: list[dict], chat_kwargs: dict[str, object], response_format: object | None, json_logits_processor: object | None, thinking_processor: object | None = None)</code></td>
<td>Fully prepared inputs for a single engine.chat/stream_chat call.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/server.py#L304-L311">#L304-L311</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="class" data-symbol-search="vllm_mlx.server.ratelimiter class vllm_mlx.server.ratelimiter(requests_per_minute: int = 60, enabled: bool = false) simple in-memory rate limiter using sliding window.">
<td><a href="../api/vllm_mlx/server/#contract-vllm_mlx.server.RateLimiter"><code>vllm_mlx.server.RateLimiter</code></a></td>
<td>class</td>
<td><code>vllm_mlx.server.RateLimiter(requests_per_minute: int = 60, enabled: bool = False)</code></td>
<td>Simple in-memory rate limiter using sliding window.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/server.py#L1662-L1700">#L1662-L1700</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.server.ratelimiter.__init__ method vllm_mlx.server.ratelimiter.__init__(requests_per_minute: int = 60, enabled: bool = false) -&gt; not annotated method `ratelimiter.__init__` updates `self.requests_per_minute`, `self.enabled`, `self.window_size`, `self._requests`; calls `defaultdict`, `threading.lock`.">
<td><a href="../api/vllm_mlx/server/#contract-vllm_mlx.server.RateLimiter.__init__"><code>vllm_mlx.server.RateLimiter.__init__</code></a></td>
<td>method</td>
<td><code>vllm_mlx.server.RateLimiter.__init__(requests_per_minute: int = 60, enabled: bool = False) -&gt; not annotated</code></td>
<td>Method `RateLimiter.__init__` updates `self.requests_per_minute`, `self.enabled`, `self.window_size`, `self._requests`; calls `defaultdict`, `threading.Lock`.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/server.py#L1665-L1670">#L1665-L1670</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.server.ratelimiter.is_allowed method vllm_mlx.server.ratelimiter.is_allowed(client_id: str) -&gt; tuple[bool, int] check if request is allowed for client.">
<td><a href="../api/vllm_mlx/server/#contract-vllm_mlx.server.RateLimiter.is_allowed"><code>vllm_mlx.server.RateLimiter.is_allowed</code></a></td>
<td>method</td>
<td><code>vllm_mlx.server.RateLimiter.is_allowed(client_id: str) -&gt; tuple[bool, int]</code></td>
<td>Check if request is allowed for client.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/server.py#L1672-L1700">#L1672-L1700</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="class" data-symbol-search="vllm_mlx.server.requestmodelcontext class vllm_mlx.server.requestmodelcontext(model_name: str, engine: baseengine, lease: modellease | none = none) request-scoped engine/lease context.">
<td><a href="../api/vllm_mlx/server/#contract-vllm_mlx.server.RequestModelContext"><code>vllm_mlx.server.RequestModelContext</code></a></td>
<td>class</td>
<td><code>vllm_mlx.server.RequestModelContext(model_name: str, engine: BaseEngine, lease: ModelLease | None = None)</code></td>
<td>Request-scoped engine/lease context.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/server.py#L1043-L1056">#L1043-L1056</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.server.requestmodelcontext.release method async vllm_mlx.server.requestmodelcontext.release() -&gt; none release the registry lease once, if this context owns one.">
<td><a href="../api/vllm_mlx/server/#contract-vllm_mlx.server.RequestModelContext.release"><code>vllm_mlx.server.RequestModelContext.release</code></a></td>
<td>method</td>
<td><code>async vllm_mlx.server.RequestModelContext.release() -&gt; None</code></td>
<td>Release the registry lease once, if this context owns one.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/server.py#L1050-L1056">#L1050-L1056</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.server.rerank_documents function async vllm_mlx.server.rerank_documents(request: rerankrequest) -&gt; rerankresponse rerank documents against a query using a cross-encoder model.">
<td><a href="../api/vllm_mlx/server/#contract-vllm_mlx.server.rerank_documents"><code>vllm_mlx.server.rerank_documents</code></a></td>
<td>function</td>
<td><code>async vllm_mlx.server.rerank_documents(request: RerankRequest) -&gt; RerankResponse</code></td>
<td>Rerank documents against a query using a cross-encoder model.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/server.py#L3920-L4038">#L3920-L4038</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.server.status function async vllm_mlx.server.status() -&gt; not annotated real-time status with per-request details for debugging and monitoring.">
<td><a href="../api/vllm_mlx/server/#contract-vllm_mlx.server.status"><code>vllm_mlx.server.status</code></a></td>
<td>function</td>
<td><code>async vllm_mlx.server.status() -&gt; not annotated</code></td>
<td>Real-time status with per-request details for debugging and monitoring.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/server.py#L3548-L3597">#L3548-L3597</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.server.stream_chat_completion function async vllm_mlx.server.stream_chat_completion(engine: baseengine, messages: list, request: chatcompletionrequest, metrics_tracker = none, **kwargs) -&gt; asynciterator[str] stream chat completion response.">
<td><a href="../api/vllm_mlx/server/#contract-vllm_mlx.server.stream_chat_completion"><code>vllm_mlx.server.stream_chat_completion</code></a></td>
<td>function</td>
<td><code>async vllm_mlx.server.stream_chat_completion(engine: BaseEngine, messages: list, request: ChatCompletionRequest, metrics_tracker = None, **kwargs) -&gt; AsyncIterator[str]</code></td>
<td>Stream chat completion response.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/server.py#L6087-L6512">#L6087-L6512</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.server.stream_completion function async vllm_mlx.server.stream_completion(engine: baseengine, prompt: str, request: completionrequest, max_tokens: int, repetition_penalty: float | none = none, metrics_tracker = none) -&gt; asynciterator[str] stream completion response.">
<td><a href="../api/vllm_mlx/server/#contract-vllm_mlx.server.stream_completion"><code>vllm_mlx.server.stream_completion</code></a></td>
<td>function</td>
<td><code>async vllm_mlx.server.stream_completion(engine: BaseEngine, prompt: str, request: CompletionRequest, max_tokens: int, repetition_penalty: float | None = None, metrics_tracker = None) -&gt; AsyncIterator[str]</code></td>
<td>Stream completion response.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/server.py#L6003-L6084">#L6003-L6084</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.server.verify_api_key function async vllm_mlx.server.verify_api_key(credentials: httpauthorizationcredentials = depends(security)) -&gt; not annotated verify api key if authentication is enabled.">
<td><a href="../api/vllm_mlx/server/#contract-vllm_mlx.server.verify_api_key"><code>vllm_mlx.server.verify_api_key</code></a></td>
<td>function</td>
<td><code>async vllm_mlx.server.verify_api_key(credentials: HTTPAuthorizationCredentials = Depends(security)) -&gt; not annotated</code></td>
<td>Verify API key if authentication is enabled.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/server.py#L1723-L1742">#L1723-L1742</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="class" data-symbol-search="vllm_mlx.specprefill._attentioncapture class vllm_mlx.specprefill._attentioncapture(original, buf_idx, query_buffer, query_extractor = none) wrapper that captures post-rope query vectors and delegates to original.">
<td><a href="../api/vllm_mlx/specprefill/#contract-vllm_mlx.specprefill._AttentionCapture"><code>vllm_mlx.specprefill._AttentionCapture</code></a></td>
<td>class</td>
<td><code>vllm_mlx.specprefill._AttentionCapture(original, buf_idx, query_buffer, query_extractor = None)</code></td>
<td>Wrapper that captures post-RoPE query vectors and delegates to original.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/specprefill.py#L53-L73">#L53-L73</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.specprefill._attentioncapture.__call__ method vllm_mlx.specprefill._attentioncapture.__call__(x, mask = none, cache = none) -&gt; not annotated method `_attentioncapture.__call__` calls `self._query_extractor`, `self._query_buffer[self._buf_idx].append`, `self._original`; returns `self._original(x, mask=mask, cache=cache)`.">
<td><a href="../api/vllm_mlx/specprefill/#contract-vllm_mlx.specprefill._AttentionCapture.__call__"><code>vllm_mlx.specprefill._AttentionCapture.__call__</code></a></td>
<td>method</td>
<td><code>vllm_mlx.specprefill._AttentionCapture.__call__(x, mask = None, cache = None) -&gt; not annotated</code></td>
<td>Method `_AttentionCapture.__call__` calls `self._query_extractor`, `self._query_buffer[self._buf_idx].append`, `self._original`; returns `self._original(x, mask=mask, cache=cache)`.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/specprefill.py#L67-L70">#L67-L70</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.specprefill._attentioncapture.__getattr__ method vllm_mlx.specprefill._attentioncapture.__getattr__(name) -&gt; not annotated method `_attentioncapture.__getattr__` calls `getattr`; returns `getattr(self._original, name)`.">
<td><a href="../api/vllm_mlx/specprefill/#contract-vllm_mlx.specprefill._AttentionCapture.__getattr__"><code>vllm_mlx.specprefill._AttentionCapture.__getattr__</code></a></td>
<td>method</td>
<td><code>vllm_mlx.specprefill._AttentionCapture.__getattr__(name) -&gt; not annotated</code></td>
<td>Method `_AttentionCapture.__getattr__` calls `getattr`; returns `getattr(self._original, name)`.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/specprefill.py#L72-L73">#L72-L73</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.specprefill._attentioncapture.__init__ method vllm_mlx.specprefill._attentioncapture.__init__(original, buf_idx, query_buffer, query_extractor = none) -&gt; not annotated method `_attentioncapture.__init__` updates `self._original`, `self._buf_idx`, `self._query_buffer`, `self._query_extractor`.">
<td><a href="../api/vllm_mlx/specprefill/#contract-vllm_mlx.specprefill._AttentionCapture.__init__"><code>vllm_mlx.specprefill._AttentionCapture.__init__</code></a></td>
<td>method</td>
<td><code>vllm_mlx.specprefill._AttentionCapture.__init__(original, buf_idx, query_buffer, query_extractor = None) -&gt; not annotated</code></td>
<td>Method `_AttentionCapture.__init__` updates `self._original`, `self._buf_idx`, `self._query_buffer`, `self._query_extractor`.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/specprefill.py#L61-L65">#L61-L65</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.specprefill._avg_pool1d function vllm_mlx.specprefill._avg_pool1d(x, kernel_size) -&gt; not annotated 1d average pooling along last axis via prefix-sum.">
<td><a href="../api/vllm_mlx/specprefill/#contract-vllm_mlx.specprefill._avg_pool1d"><code>vllm_mlx.specprefill._avg_pool1d</code></a></td>
<td>function</td>
<td><code>vllm_mlx.specprefill._avg_pool1d(x, kernel_size) -&gt; not annotated</code></td>
<td>1D average pooling along last axis via prefix-sum.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/specprefill.py#L207-L223">#L207-L223</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.specprefill._build_layer_to_cache_map function vllm_mlx.specprefill._build_layer_to_cache_map(model) -&gt; not annotated build mapping from model layer index to cache index.">
<td><a href="../api/vllm_mlx/specprefill/#contract-vllm_mlx.specprefill._build_layer_to_cache_map"><code>vllm_mlx.specprefill._build_layer_to_cache_map</code></a></td>
<td>function</td>
<td><code>vllm_mlx.specprefill._build_layer_to_cache_map(model) -&gt; not annotated</code></td>
<td>Build mapping from model layer index to cache index.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/specprefill.py#L666-L690">#L666-L690</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.specprefill._compute_importance function vllm_mlx.specprefill._compute_importance(query_buffer, attn_caches, n_prompt, n_attn_heads, n_kv_heads, pool_kernel = 13) -&gt; not annotated compute per-token importance from captured queries and cached keys.">
<td><a href="../api/vllm_mlx/specprefill/#contract-vllm_mlx.specprefill._compute_importance"><code>vllm_mlx.specprefill._compute_importance</code></a></td>
<td>function</td>
<td><code>vllm_mlx.specprefill._compute_importance(query_buffer, attn_caches, n_prompt, n_attn_heads, n_kv_heads, pool_kernel = 13) -&gt; not annotated</code></td>
<td>Compute per-token importance from captured queries and cached keys.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/specprefill.py#L226-L271">#L226-L271</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.specprefill._find_attention_layers function vllm_mlx.specprefill._find_attention_layers(model) -&gt; not annotated find all full-attention layers across architectures.">
<td><a href="../api/vllm_mlx/specprefill/#contract-vllm_mlx.specprefill._find_attention_layers"><code>vllm_mlx.specprefill._find_attention_layers</code></a></td>
<td>function</td>
<td><code>vllm_mlx.specprefill._find_attention_layers(model) -&gt; not annotated</code></td>
<td>Find all full-attention layers across architectures.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/specprefill.py#L615-L630">#L615-L630</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.specprefill._get_attn_module function vllm_mlx.specprefill._get_attn_module(layer) -&gt; not annotated get the attention module from a layer (self_attn or mixer).">
<td><a href="../api/vllm_mlx/specprefill/#contract-vllm_mlx.specprefill._get_attn_module"><code>vllm_mlx.specprefill._get_attn_module</code></a></td>
<td>function</td>
<td><code>vllm_mlx.specprefill._get_attn_module(layer) -&gt; not annotated</code></td>
<td>Get the attention module from a layer (self_attn or mixer).</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/specprefill.py#L633-L639">#L633-L639</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.specprefill._get_dims function vllm_mlx.specprefill._get_dims(rope_module) -&gt; not annotated extract rotary dimensions from any rope variant.">
<td><a href="../api/vllm_mlx/specprefill/#contract-vllm_mlx.specprefill._get_dims"><code>vllm_mlx.specprefill._get_dims</code></a></td>
<td>function</td>
<td><code>vllm_mlx.specprefill._get_dims(rope_module) -&gt; not annotated</code></td>
<td>Extract rotary dimensions from any RoPE variant.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/specprefill.py#L598-L603">#L598-L603</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.specprefill._get_pre_scale function vllm_mlx.specprefill._get_pre_scale(rope_module) -&gt; not annotated extract pre-scale factor from custom rope variants (suscaled, yarn).">
<td><a href="../api/vllm_mlx/specprefill/#contract-vllm_mlx.specprefill._get_pre_scale"><code>vllm_mlx.specprefill._get_pre_scale</code></a></td>
<td>function</td>
<td><code>vllm_mlx.specprefill._get_pre_scale(rope_module) -&gt; not annotated</code></td>
<td>Extract pre-scale factor from custom RoPE variants (SuScaled, Yarn).</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/specprefill.py#L606-L612">#L606-L612</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.specprefill._get_rope function vllm_mlx.specprefill._get_rope(attn) -&gt; not annotated get the rope module from an attention layer, or none.">
<td><a href="../api/vllm_mlx/specprefill/#contract-vllm_mlx.specprefill._get_rope"><code>vllm_mlx.specprefill._get_rope</code></a></td>
<td>function</td>
<td><code>vllm_mlx.specprefill._get_rope(attn) -&gt; not annotated</code></td>
<td>Get the RoPE module from an attention layer, or None.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/specprefill.py#L642-L647">#L642-L647</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.specprefill._llama_extract_queries function vllm_mlx.specprefill._llama_extract_queries(attn, x, cache = none) -&gt; not annotated extract post-rope queries from standard transformer attention.">
<td><a href="../api/vllm_mlx/specprefill/#contract-vllm_mlx.specprefill._llama_extract_queries"><code>vllm_mlx.specprefill._llama_extract_queries</code></a></td>
<td>function</td>
<td><code>vllm_mlx.specprefill._llama_extract_queries(attn, x, cache = None) -&gt; not annotated</code></td>
<td>Extract post-RoPE queries from standard transformer attention.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/specprefill.py#L95-L113">#L95-L113</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.specprefill._lookahead_decode function vllm_mlx.specprefill._lookahead_decode(model, first_logits, cache, n_steps, temp = 0.6, top_p = 0.95, cancel_check = none) -&gt; not annotated run n_steps autoregressive decode, returning generated token ids.">
<td><a href="../api/vllm_mlx/specprefill/#contract-vllm_mlx.specprefill._lookahead_decode"><code>vllm_mlx.specprefill._lookahead_decode</code></a></td>
<td>function</td>
<td><code>vllm_mlx.specprefill._lookahead_decode(model, first_logits, cache, n_steps, temp = 0.6, top_p = 0.95, cancel_check = None) -&gt; not annotated</code></td>
<td>Run n_steps autoregressive decode, returning generated token ids.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/specprefill.py#L178-L204">#L178-L204</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.specprefill._nemotron_h_extract_queries function vllm_mlx.specprefill._nemotron_h_extract_queries(attn, x, cache = none) -&gt; not annotated extract queries from nemotron-h attention (no rope, no gate, no q_norm).">
<td><a href="../api/vllm_mlx/specprefill/#contract-vllm_mlx.specprefill._nemotron_h_extract_queries"><code>vllm_mlx.specprefill._nemotron_h_extract_queries</code></a></td>
<td>function</td>
<td><code>vllm_mlx.specprefill._nemotron_h_extract_queries(attn, x, cache = None) -&gt; not annotated</code></td>
<td>Extract queries from Nemotron-H attention (no RoPE, no gate, no q_norm).</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/specprefill.py#L116-L125">#L116-L125</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="class" data-symbol-search="vllm_mlx.specprefill._offsetadjustedrope class vllm_mlx.specprefill._offsetadjustedrope(original_rope, adjustment) wraps a rope module to add a constant offset for decode after sparse prefill.">
<td><a href="../api/vllm_mlx/specprefill/#contract-vllm_mlx.specprefill._OffsetAdjustedRoPE"><code>vllm_mlx.specprefill._OffsetAdjustedRoPE</code></a></td>
<td>class</td>
<td><code>vllm_mlx.specprefill._OffsetAdjustedRoPE(original_rope, adjustment)</code></td>
<td>Wraps a RoPE module to add a constant offset for decode after sparse prefill.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/specprefill.py#L574-L590">#L574-L590</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.specprefill._offsetadjustedrope.__call__ method vllm_mlx.specprefill._offsetadjustedrope.__call__(x, offset = 0) -&gt; not annotated method `_offsetadjustedrope.__call__` calls `self._original`; returns `self._original(x, offset=offset + self._adjustment)`.">
<td><a href="../api/vllm_mlx/specprefill/#contract-vllm_mlx.specprefill._OffsetAdjustedRoPE.__call__"><code>vllm_mlx.specprefill._OffsetAdjustedRoPE.__call__</code></a></td>
<td>method</td>
<td><code>vllm_mlx.specprefill._OffsetAdjustedRoPE.__call__(x, offset = 0) -&gt; not annotated</code></td>
<td>Method `_OffsetAdjustedRoPE.__call__` calls `self._original`; returns `self._original(x, offset=offset + self._adjustment)`.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/specprefill.py#L589-L590">#L589-L590</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.specprefill._offsetadjustedrope.__init__ method vllm_mlx.specprefill._offsetadjustedrope.__init__(original_rope, adjustment) -&gt; not annotated method `_offsetadjustedrope.__init__` updates `self._original`, `self._adjustment`.">
<td><a href="../api/vllm_mlx/specprefill/#contract-vllm_mlx.specprefill._OffsetAdjustedRoPE.__init__"><code>vllm_mlx.specprefill._OffsetAdjustedRoPE.__init__</code></a></td>
<td>method</td>
<td><code>vllm_mlx.specprefill._OffsetAdjustedRoPE.__init__(original_rope, adjustment) -&gt; not annotated</code></td>
<td>Method `_OffsetAdjustedRoPE.__init__` updates `self._original`, `self._adjustment`.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/specprefill.py#L585-L587">#L585-L587</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.specprefill._patch_attention_for_capture function vllm_mlx.specprefill._patch_attention_for_capture(model, query_buffer, query_extractor = none) -&gt; not annotated replace attention modules on full-attention layers with capture wrappers.">
<td><a href="../api/vllm_mlx/specprefill/#contract-vllm_mlx.specprefill._patch_attention_for_capture"><code>vllm_mlx.specprefill._patch_attention_for_capture</code></a></td>
<td>function</td>
<td><code>vllm_mlx.specprefill._patch_attention_for_capture(model, query_buffer, query_extractor = None) -&gt; not annotated</code></td>
<td>Replace attention modules on full-attention layers with capture wrappers.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/specprefill.py#L128-L149">#L128-L149</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="class" data-symbol-search="vllm_mlx.specprefill._positionmappedrope class vllm_mlx.specprefill._positionmappedrope(original_rope, all_positions, cache_start = 0) wraps a rope module to apply rotation at non-contiguous positions.">
<td><a href="../api/vllm_mlx/specprefill/#contract-vllm_mlx.specprefill._PositionMappedRoPE"><code>vllm_mlx.specprefill._PositionMappedRoPE</code></a></td>
<td>class</td>
<td><code>vllm_mlx.specprefill._PositionMappedRoPE(original_rope, all_positions, cache_start = 0)</code></td>
<td>Wraps a RoPE module to apply rotation at non-contiguous positions.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/specprefill.py#L536-L571">#L536-L571</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.specprefill._positionmappedrope.__call__ method vllm_mlx.specprefill._positionmappedrope.__call__(x, offset = 0) -&gt; not annotated method `_positionmappedrope.__call__` calls `manual_rope_with_freqs`, `manual_rope`; has 2 explicit return paths.">
<td><a href="../api/vllm_mlx/specprefill/#contract-vllm_mlx.specprefill._PositionMappedRoPE.__call__"><code>vllm_mlx.specprefill._PositionMappedRoPE.__call__</code></a></td>
<td>method</td>
<td><code>vllm_mlx.specprefill._PositionMappedRoPE.__call__(x, offset = 0) -&gt; not annotated</code></td>
<td>Method `_PositionMappedRoPE.__call__` calls `manual_rope_with_freqs`, `manual_rope`; has 2 explicit return paths.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/specprefill.py#L563-L571">#L563-L571</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.specprefill._positionmappedrope.__init__ method vllm_mlx.specprefill._positionmappedrope.__init__(original_rope, all_positions, cache_start = 0) -&gt; not annotated method `_positionmappedrope.__init__` updates `self._original`, `self._all_positions`, `self._cache_start`, `self._has_custom_freqs`; calls `hasattr`, `_get_dims`, `_get_pre_scale`.">
<td><a href="../api/vllm_mlx/specprefill/#contract-vllm_mlx.specprefill._PositionMappedRoPE.__init__"><code>vllm_mlx.specprefill._PositionMappedRoPE.__init__</code></a></td>
<td>method</td>
<td><code>vllm_mlx.specprefill._PositionMappedRoPE.__init__(original_rope, all_positions, cache_start = 0) -&gt; not annotated</code></td>
<td>Method `_PositionMappedRoPE.__init__` updates `self._original`, `self._all_positions`, `self._cache_start`, `self._has_custom_freqs`; calls `hasattr`, `_get_dims`, `_get_pre_scale`.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/specprefill.py#L547-L561">#L547-L561</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.specprefill._prefill_draft function vllm_mlx.specprefill._prefill_draft(model, tokens, cache, step_size = 2048, cancel_check = none) -&gt; not annotated prefill prompt tokens into cache.">
<td><a href="../api/vllm_mlx/specprefill/#contract-vllm_mlx.specprefill._prefill_draft"><code>vllm_mlx.specprefill._prefill_draft</code></a></td>
<td>function</td>
<td><code>vllm_mlx.specprefill._prefill_draft(model, tokens, cache, step_size = 2048, cancel_check = None) -&gt; not annotated</code></td>
<td>Prefill prompt tokens into cache.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/specprefill.py#L158-L175">#L158-L175</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.specprefill._qwen35_extract_queries function vllm_mlx.specprefill._qwen35_extract_queries(attn, x, cache = none) -&gt; not annotated extract post-rope queries from qwen3.5 attention (gate split + q_norm).">
<td><a href="../api/vllm_mlx/specprefill/#contract-vllm_mlx.specprefill._qwen35_extract_queries"><code>vllm_mlx.specprefill._qwen35_extract_queries</code></a></td>
<td>function</td>
<td><code>vllm_mlx.specprefill._qwen35_extract_queries(attn, x, cache = None) -&gt; not annotated</code></td>
<td>Extract post-RoPE queries from Qwen3.5 attention (gate split + q_norm).</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/specprefill.py#L76-L92">#L76-L92</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.specprefill._set_attn_module function vllm_mlx.specprefill._set_attn_module(layer, module) -&gt; not annotated set the attention module on a layer (self_attn or mixer).">
<td><a href="../api/vllm_mlx/specprefill/#contract-vllm_mlx.specprefill._set_attn_module"><code>vllm_mlx.specprefill._set_attn_module</code></a></td>
<td>function</td>
<td><code>vllm_mlx.specprefill._set_attn_module(layer, module) -&gt; not annotated</code></td>
<td>Set the attention module on a layer (self_attn or mixer).</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/specprefill.py#L658-L663">#L658-L663</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.specprefill._set_rope function vllm_mlx.specprefill._set_rope(attn, rope_module) -&gt; not annotated set the rope module on an attention layer.">
<td><a href="../api/vllm_mlx/specprefill/#contract-vllm_mlx.specprefill._set_rope"><code>vllm_mlx.specprefill._set_rope</code></a></td>
<td>function</td>
<td><code>vllm_mlx.specprefill._set_rope(attn, rope_module) -&gt; not annotated</code></td>
<td>Set the RoPE module on an attention layer.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/specprefill.py#L650-L655">#L650-L655</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.specprefill._unpatch_attention_capture function vllm_mlx.specprefill._unpatch_attention_capture(model, originals) -&gt; not annotated restore original attention modules after capture.">
<td><a href="../api/vllm_mlx/specprefill/#contract-vllm_mlx.specprefill._unpatch_attention_capture"><code>vllm_mlx.specprefill._unpatch_attention_capture</code></a></td>
<td>function</td>
<td><code>vllm_mlx.specprefill._unpatch_attention_capture(model, originals) -&gt; not annotated</code></td>
<td>Restore original attention modules after capture.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/specprefill.py#L152-L155">#L152-L155</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.specprefill.cleanup_rope function vllm_mlx.specprefill.cleanup_rope(model) -&gt; not annotated restore original rope on all attention layers.">
<td><a href="../api/vllm_mlx/specprefill/#contract-vllm_mlx.specprefill.cleanup_rope"><code>vllm_mlx.specprefill.cleanup_rope</code></a></td>
<td>function</td>
<td><code>vllm_mlx.specprefill.cleanup_rope(model) -&gt; not annotated</code></td>
<td>Restore original RoPE on all attention layers.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/specprefill.py#L830-L845">#L830-L845</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.specprefill.manual_rope function vllm_mlx.specprefill.manual_rope(x, positions, dims, base = 10000.0, scale = 1.0) -&gt; not annotated apply rope at arbitrary (non-contiguous) positions.">
<td><a href="../api/vllm_mlx/specprefill/#contract-vllm_mlx.specprefill.manual_rope"><code>vllm_mlx.specprefill.manual_rope</code></a></td>
<td>function</td>
<td><code>vllm_mlx.specprefill.manual_rope(x, positions, dims, base = 10000.0, scale = 1.0) -&gt; not annotated</code></td>
<td>Apply RoPE at arbitrary (non-contiguous) positions.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/specprefill.py#L480-L508">#L480-L508</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.specprefill.manual_rope_with_freqs function vllm_mlx.specprefill.manual_rope_with_freqs(x, positions, dims, freqs, pre_scale = 1.0) -&gt; not annotated apply rope at arbitrary positions using pre-computed frequencies.">
<td><a href="../api/vllm_mlx/specprefill/#contract-vllm_mlx.specprefill.manual_rope_with_freqs"><code>vllm_mlx.specprefill.manual_rope_with_freqs</code></a></td>
<td>function</td>
<td><code>vllm_mlx.specprefill.manual_rope_with_freqs(x, positions, dims, freqs, pre_scale = 1.0) -&gt; not annotated</code></td>
<td>Apply RoPE at arbitrary positions using pre-computed frequencies.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/specprefill.py#L511-L528">#L511-L528</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.specprefill.score_tokens function vllm_mlx.specprefill.score_tokens(model, tokens, n_lookahead = 8, pool_kernel = 13, temp = 0.6, top_p = 0.95, prefill_step_size = 2048, query_extractor = none, cancel_check = none) -&gt; not annotated score token importance using attention-based analysis on a draft model.">
<td><a href="../api/vllm_mlx/specprefill/#contract-vllm_mlx.specprefill.score_tokens"><code>vllm_mlx.specprefill.score_tokens</code></a></td>
<td>function</td>
<td><code>vllm_mlx.specprefill.score_tokens(model, tokens, n_lookahead = 8, pool_kernel = 13, temp = 0.6, top_p = 0.95, prefill_step_size = 2048, query_extractor = None, cancel_check = None) -&gt; not annotated</code></td>
<td>Score token importance using attention-based analysis on a draft model.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/specprefill.py#L274-L396">#L274-L396</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.specprefill.select_chunks function vllm_mlx.specprefill.select_chunks(importance, keep_pct = 0.3, chunk_size = 32, backbone_pct = 0.0) -&gt; not annotated select top-k% token chunks by average importance.">
<td><a href="../api/vllm_mlx/specprefill/#contract-vllm_mlx.specprefill.select_chunks"><code>vllm_mlx.specprefill.select_chunks</code></a></td>
<td>function</td>
<td><code>vllm_mlx.specprefill.select_chunks(importance, keep_pct = 0.3, chunk_size = 32, backbone_pct = 0.0) -&gt; not annotated</code></td>
<td>Select top-k% token chunks by average importance.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/specprefill.py#L399-L467">#L399-L467</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="nested function" data-symbol-search="vllm_mlx.specprefill.select_chunks._selected_token_count nested function vllm_mlx.specprefill.select_chunks._selected_token_count(chunks) -&gt; not annotated nested function `select_chunks._selected_token_count` calls `min`; returns `total`.">
<td><a href="../api/vllm_mlx/specprefill/#contract-vllm_mlx.specprefill.select_chunks._selected_token_count"><code>vllm_mlx.specprefill.select_chunks._selected_token_count</code></a></td>
<td>nested function</td>
<td><code>vllm_mlx.specprefill.select_chunks._selected_token_count(chunks) -&gt; not annotated</code></td>
<td>Nested Function `select_chunks._selected_token_count` calls `min`; returns `total`.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/specprefill.py#L437-L443">#L437-L443</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.specprefill.sparse_prefill function vllm_mlx.specprefill.sparse_prefill(model, tokens, selected_indices, cache, step_size = 2048, position_offset = 0, cancel_check = none) -&gt; not annotated prefill the model cache with selected tokens at their original positions.">
<td><a href="../api/vllm_mlx/specprefill/#contract-vllm_mlx.specprefill.sparse_prefill"><code>vllm_mlx.specprefill.sparse_prefill</code></a></td>
<td>function</td>
<td><code>vllm_mlx.specprefill.sparse_prefill(model, tokens, selected_indices, cache, step_size = 2048, position_offset = 0, cancel_check = None) -&gt; not annotated</code></td>
<td>Prefill the model cache with selected tokens at their original positions.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/specprefill.py#L698-L827">#L698-L827</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.ssd_cache._blob_to_tokens function vllm_mlx.ssd_cache._blob_to_tokens(blob: bytes) -&gt; tuple[int, ...] deserialize binary blob back to token tuple.">
<td><a href="../api/vllm_mlx/ssd_cache/#contract-vllm_mlx.ssd_cache._blob_to_tokens"><code>vllm_mlx.ssd_cache._blob_to_tokens</code></a></td>
<td>function</td>
<td><code>vllm_mlx.ssd_cache._blob_to_tokens(blob: bytes) -&gt; tuple[int, ...]</code></td>
<td>Deserialize binary blob back to token tuple.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/ssd_cache.py#L135-L139">#L135-L139</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.ssd_cache._mx_to_numpy_safe function vllm_mlx.ssd_cache._mx_to_numpy_safe(arr: any) -&gt; tuple[np.ndarray, str | none] mx.array → np.ndarray, upcasting numpy-unsupported dtypes (bf16) to fp32.">
<td><a href="../api/vllm_mlx/ssd_cache/#contract-vllm_mlx.ssd_cache._mx_to_numpy_safe"><code>vllm_mlx.ssd_cache._mx_to_numpy_safe</code></a></td>
<td>function</td>
<td><code>vllm_mlx.ssd_cache._mx_to_numpy_safe(arr: Any) -&gt; tuple[np.ndarray, str | None]</code></td>
<td>mx.array → np.ndarray, upcasting numpy-unsupported dtypes (bf16) to fp32.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/ssd_cache.py#L449-L467">#L449-L467</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.ssd_cache._prefix_hash function vllm_mlx.ssd_cache._prefix_hash(tokens: tuple[int, ...]) -&gt; str hash the bounded token prefix used to prefilter prefix lookups.">
<td><a href="../api/vllm_mlx/ssd_cache/#contract-vllm_mlx.ssd_cache._prefix_hash"><code>vllm_mlx.ssd_cache._prefix_hash</code></a></td>
<td>function</td>
<td><code>vllm_mlx.ssd_cache._prefix_hash(tokens: tuple[int, ...]) -&gt; str</code></td>
<td>Hash the bounded token prefix used to prefilter prefix lookups.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/ssd_cache.py#L147-L149">#L147-L149</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.ssd_cache._tokens_hash function vllm_mlx.ssd_cache._tokens_hash(tokens: tuple[int, ...]) -&gt; str compute sha-256 hex digest of a token sequence for use as primary key.">
<td><a href="../api/vllm_mlx/ssd_cache/#contract-vllm_mlx.ssd_cache._tokens_hash"><code>vllm_mlx.ssd_cache._tokens_hash</code></a></td>
<td>function</td>
<td><code>vllm_mlx.ssd_cache._tokens_hash(tokens: tuple[int, ...]) -&gt; str</code></td>
<td>Compute SHA-256 hex digest of a token sequence for use as primary key.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/ssd_cache.py#L142-L144">#L142-L144</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.ssd_cache._tokens_to_blob function vllm_mlx.ssd_cache._tokens_to_blob(tokens: tuple[int, ...]) -&gt; bytes serialize token tuple to a compact binary blob for sqlite storage.">
<td><a href="../api/vllm_mlx/ssd_cache/#contract-vllm_mlx.ssd_cache._tokens_to_blob"><code>vllm_mlx.ssd_cache._tokens_to_blob</code></a></td>
<td>function</td>
<td><code>vllm_mlx.ssd_cache._tokens_to_blob(tokens: tuple[int, ...]) -&gt; bytes</code></td>
<td>Serialize token tuple to a compact binary blob for SQLite storage.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/ssd_cache.py#L126-L132">#L126-L132</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="class" data-symbol-search="vllm_mlx.ssd_cache.arrayscacheserializer class vllm_mlx.ssd_cache.arrayscacheserializer() serializer for arrayscache (mamba/linear attention) layers.">
<td><a href="../api/vllm_mlx/ssd_cache/#contract-vllm_mlx.ssd_cache.ArraysCacheSerializer"><code>vllm_mlx.ssd_cache.ArraysCacheSerializer</code></a></td>
<td>class</td>
<td><code>vllm_mlx.ssd_cache.ArraysCacheSerializer()</code></td>
<td>Serializer for ArraysCache (Mamba/linear attention) layers.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/ssd_cache.py#L567-L627">#L567-L627</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.ssd_cache.arrayscacheserializer.deserialize_layer method vllm_mlx.ssd_cache.arrayscacheserializer.deserialize_layer(file_path: str, metadata: dict[str, any]) -&gt; dict load arrays-cache state and any original dtype hints.">
<td><a href="../api/vllm_mlx/ssd_cache/#contract-vllm_mlx.ssd_cache.ArraysCacheSerializer.deserialize_layer"><code>vllm_mlx.ssd_cache.ArraysCacheSerializer.deserialize_layer</code></a></td>
<td>method</td>
<td><code>vllm_mlx.ssd_cache.ArraysCacheSerializer.deserialize_layer(file_path: str, metadata: dict[str, Any]) -&gt; dict</code></td>
<td>Load arrays-cache state and any original dtype hints.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/ssd_cache.py#L612-L627">#L612-L627</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.ssd_cache.arrayscacheserializer.serialize_layer method vllm_mlx.ssd_cache.arrayscacheserializer.serialize_layer(snapshot: dict[str, any], layer_idx: int, file_path: str) -&gt; dict[str, any] write arrays-cache state to safetensors and return its metadata.">
<td><a href="../api/vllm_mlx/ssd_cache/#contract-vllm_mlx.ssd_cache.ArraysCacheSerializer.serialize_layer"><code>vllm_mlx.ssd_cache.ArraysCacheSerializer.serialize_layer</code></a></td>
<td>method</td>
<td><code>vllm_mlx.ssd_cache.ArraysCacheSerializer.serialize_layer(snapshot: dict[str, Any], layer_idx: int, file_path: str) -&gt; dict[str, Any]</code></td>
<td>Write arrays-cache state to safetensors and return its metadata.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/ssd_cache.py#L589-L610">#L589-L610</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.ssd_cache.arrayscacheserializer.snapshot_layer method vllm_mlx.ssd_cache.arrayscacheserializer.snapshot_layer(layer: any) -&gt; dict[str, any] copy an arrays-cache state into numpy-backed writer-thread data.">
<td><a href="../api/vllm_mlx/ssd_cache/#contract-vllm_mlx.ssd_cache.ArraysCacheSerializer.snapshot_layer"><code>vllm_mlx.ssd_cache.ArraysCacheSerializer.snapshot_layer</code></a></td>
<td>method</td>
<td><code>vllm_mlx.ssd_cache.ArraysCacheSerializer.snapshot_layer(layer: Any) -&gt; dict[str, Any]</code></td>
<td>Copy an arrays-cache state into NumPy-backed writer-thread data.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/ssd_cache.py#L573-L587">#L573-L587</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.ssd_cache.get_serializer_for_layer function vllm_mlx.ssd_cache.get_serializer_for_layer(layer: any) -&gt; layerserializer return the appropriate serializer for a cache layer.">
<td><a href="../api/vllm_mlx/ssd_cache/#contract-vllm_mlx.ssd_cache.get_serializer_for_layer"><code>vllm_mlx.ssd_cache.get_serializer_for_layer</code></a></td>
<td>function</td>
<td><code>vllm_mlx.ssd_cache.get_serializer_for_layer(layer: Any) -&gt; LayerSerializer</code></td>
<td>Return the appropriate serializer for a cache layer.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/ssd_cache.py#L630-L646">#L630-L646</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="class" data-symbol-search="vllm_mlx.ssd_cache.kvcacheserializer class vllm_mlx.ssd_cache.kvcacheserializer() serializer for kvcache and rotatingkvcache layers.">
<td><a href="../api/vllm_mlx/ssd_cache/#contract-vllm_mlx.ssd_cache.KVCacheSerializer"><code>vllm_mlx.ssd_cache.KVCacheSerializer</code></a></td>
<td>class</td>
<td><code>vllm_mlx.ssd_cache.KVCacheSerializer()</code></td>
<td>Serializer for KVCache and RotatingKVCache layers.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/ssd_cache.py#L470-L564">#L470-L564</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.ssd_cache.kvcacheserializer.deserialize_layer method vllm_mlx.ssd_cache.kvcacheserializer.deserialize_layer(file_path: str, metadata: dict[str, any]) -&gt; dict load one kv layer as arrays plus cache reconstruction metadata.">
<td><a href="../api/vllm_mlx/ssd_cache/#contract-vllm_mlx.ssd_cache.KVCacheSerializer.deserialize_layer"><code>vllm_mlx.ssd_cache.KVCacheSerializer.deserialize_layer</code></a></td>
<td>method</td>
<td><code>vllm_mlx.ssd_cache.KVCacheSerializer.deserialize_layer(file_path: str, metadata: dict[str, Any]) -&gt; dict</code></td>
<td>Load one KV layer as arrays plus cache reconstruction metadata.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/ssd_cache.py#L544-L564">#L544-L564</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.ssd_cache.kvcacheserializer.serialize_layer method vllm_mlx.ssd_cache.kvcacheserializer.serialize_layer(snapshot: dict[str, any], layer_idx: int, file_path: str) -&gt; dict[str, any] write one kv layer to safetensors and return reconstruction metadata.">
<td><a href="../api/vllm_mlx/ssd_cache/#contract-vllm_mlx.ssd_cache.KVCacheSerializer.serialize_layer"><code>vllm_mlx.ssd_cache.KVCacheSerializer.serialize_layer</code></a></td>
<td>method</td>
<td><code>vllm_mlx.ssd_cache.KVCacheSerializer.serialize_layer(snapshot: dict[str, Any], layer_idx: int, file_path: str) -&gt; dict[str, Any]</code></td>
<td>Write one KV layer to safetensors and return reconstruction metadata.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/ssd_cache.py#L517-L542">#L517-L542</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.ssd_cache.kvcacheserializer.snapshot_layer method vllm_mlx.ssd_cache.kvcacheserializer.snapshot_layer(layer: any) -&gt; dict[str, any] copy a kv cache layer into numpy-backed writer-thread data.">
<td><a href="../api/vllm_mlx/ssd_cache/#contract-vllm_mlx.ssd_cache.KVCacheSerializer.snapshot_layer"><code>vllm_mlx.ssd_cache.KVCacheSerializer.snapshot_layer</code></a></td>
<td>method</td>
<td><code>vllm_mlx.ssd_cache.KVCacheSerializer.snapshot_layer(layer: Any) -&gt; dict[str, Any]</code></td>
<td>Copy a KV cache layer into NumPy-backed writer-thread data.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/ssd_cache.py#L481-L515">#L481-L515</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="class" data-symbol-search="vllm_mlx.ssd_cache.layerserializer class vllm_mlx.ssd_cache.layerserializer() interface for per-layer cache serialization.">
<td><a href="../api/vllm_mlx/ssd_cache/#contract-vllm_mlx.ssd_cache.LayerSerializer"><code>vllm_mlx.ssd_cache.LayerSerializer</code></a></td>
<td>class</td>
<td><code>vllm_mlx.ssd_cache.LayerSerializer()</code></td>
<td>Interface for per-layer cache serialization.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/ssd_cache.py#L419-L446">#L419-L446</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.ssd_cache.layerserializer.deserialize_layer method vllm_mlx.ssd_cache.layerserializer.deserialize_layer(file_path: str, metadata: dict[str, any]) -&gt; dict read a layer back from disk.">
<td><a href="../api/vllm_mlx/ssd_cache/#contract-vllm_mlx.ssd_cache.LayerSerializer.deserialize_layer"><code>vllm_mlx.ssd_cache.LayerSerializer.deserialize_layer</code></a></td>
<td>method</td>
<td><code>vllm_mlx.ssd_cache.LayerSerializer.deserialize_layer(file_path: str, metadata: dict[str, Any]) -&gt; dict</code></td>
<td>Read a layer back from disk.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/ssd_cache.py#L444-L446">#L444-L446</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.ssd_cache.layerserializer.serialize_layer method vllm_mlx.ssd_cache.layerserializer.serialize_layer(snapshot: dict[str, any], layer_idx: int, file_path: str) -&gt; dict[str, any] writer-thread: persist a snapshot to safetensors at file_path.">
<td><a href="../api/vllm_mlx/ssd_cache/#contract-vllm_mlx.ssd_cache.LayerSerializer.serialize_layer"><code>vllm_mlx.ssd_cache.LayerSerializer.serialize_layer</code></a></td>
<td>method</td>
<td><code>vllm_mlx.ssd_cache.LayerSerializer.serialize_layer(snapshot: dict[str, Any], layer_idx: int, file_path: str) -&gt; dict[str, Any]</code></td>
<td>Writer-thread: persist a snapshot to safetensors at file_path.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/ssd_cache.py#L434-L441">#L434-L441</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.ssd_cache.layerserializer.snapshot_layer method vllm_mlx.ssd_cache.layerserializer.snapshot_layer(layer: any) -&gt; dict[str, any] producer-thread cpu snapshot of an mlx-backed cache layer.">
<td><a href="../api/vllm_mlx/ssd_cache/#contract-vllm_mlx.ssd_cache.LayerSerializer.snapshot_layer"><code>vllm_mlx.ssd_cache.LayerSerializer.snapshot_layer</code></a></td>
<td>method</td>
<td><code>vllm_mlx.ssd_cache.LayerSerializer.snapshot_layer(layer: Any) -&gt; dict[str, Any]</code></td>
<td>Producer-thread CPU snapshot of an MLX-backed cache layer.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/ssd_cache.py#L429-L431">#L429-L431</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="class" data-symbol-search="vllm_mlx.ssd_cache.ssdcacheconfig class vllm_mlx.ssd_cache.ssdcacheconfig(cache_dir: str | none = none, max_size_gb: float = 10.0, max_entries: int = 10000, file_permissions: int = 384, dir_permissions: int = 448, spill_queue_size: int = 64, retention_seconds: int | none = none) configuration for ssd cache tier.">
<td><a href="../api/vllm_mlx/ssd_cache/#contract-vllm_mlx.ssd_cache.SSDCacheConfig"><code>vllm_mlx.ssd_cache.SSDCacheConfig</code></a></td>
<td>class</td>
<td><code>vllm_mlx.ssd_cache.SSDCacheConfig(cache_dir: str | None = None, max_size_gb: float = 10.0, max_entries: int = 10000, file_permissions: int = 384, dir_permissions: int = 448, spill_queue_size: int = 64, retention_seconds: int | None = None)</code></td>
<td>Configuration for SSD cache tier.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/ssd_cache.py#L43-L78">#L43-L78</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.ssd_cache.ssdcacheconfig.__post_init__ method vllm_mlx.ssd_cache.ssdcacheconfig.__post_init__() -&gt; none method `ssdcacheconfig.__post_init__` calls `valueerror`; can raise `valueerror`.">
<td><a href="../api/vllm_mlx/ssd_cache/#contract-vllm_mlx.ssd_cache.SSDCacheConfig.__post_init__"><code>vllm_mlx.ssd_cache.SSDCacheConfig.__post_init__</code></a></td>
<td>method</td>
<td><code>vllm_mlx.ssd_cache.SSDCacheConfig.__post_init__() -&gt; None</code></td>
<td>Method `SSDCacheConfig.__post_init__` calls `ValueError`; can raise `ValueError`.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/ssd_cache.py#L65-L73">#L65-L73</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.ssd_cache.ssdcacheconfig.max_size_bytes method vllm_mlx.ssd_cache.ssdcacheconfig.max_size_bytes() -&gt; int maximum cache size in bytes.">
<td><a href="../api/vllm_mlx/ssd_cache/#contract-vllm_mlx.ssd_cache.SSDCacheConfig.max_size_bytes"><code>vllm_mlx.ssd_cache.SSDCacheConfig.max_size_bytes</code></a></td>
<td>method</td>
<td><code>vllm_mlx.ssd_cache.SSDCacheConfig.max_size_bytes() -&gt; int</code></td>
<td>Maximum cache size in bytes.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/ssd_cache.py#L76-L78">#L76-L78</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="class" data-symbol-search="vllm_mlx.ssd_cache.ssdcachestats class vllm_mlx.ssd_cache.ssdcachestats(spill_count: int = 0, spill_bytes: int = 0, ssd_hits: int = 0, ssd_misses: int = 0, reload_latency_sum: float = 0.0, reload_bytes: int = 0, promotion_failures: int = 0) statistics for ssd cache tier — exposed from day one.">
<td><a href="../api/vllm_mlx/ssd_cache/#contract-vllm_mlx.ssd_cache.SSDCacheStats"><code>vllm_mlx.ssd_cache.SSDCacheStats</code></a></td>
<td>class</td>
<td><code>vllm_mlx.ssd_cache.SSDCacheStats(spill_count: int = 0, spill_bytes: int = 0, ssd_hits: int = 0, ssd_misses: int = 0, reload_latency_sum: float = 0.0, reload_bytes: int = 0, promotion_failures: int = 0)</code></td>
<td>Statistics for SSD cache tier — exposed from day one.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/ssd_cache.py#L82-L123">#L82-L123</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.ssd_cache.ssdcachestats.to_dict method vllm_mlx.ssd_cache.ssdcachestats.to_dict() -&gt; dict return spill, lookup, reload, and promotion statistics.">
<td><a href="../api/vllm_mlx/ssd_cache/#contract-vllm_mlx.ssd_cache.SSDCacheStats.to_dict"><code>vllm_mlx.ssd_cache.SSDCacheStats.to_dict</code></a></td>
<td>method</td>
<td><code>vllm_mlx.ssd_cache.SSDCacheStats.to_dict() -&gt; dict</code></td>
<td>Return spill, lookup, reload, and promotion statistics.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/ssd_cache.py#L103-L123">#L103-L123</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="class" data-symbol-search="vllm_mlx.ssd_cache.ssdcachetier class vllm_mlx.ssd_cache.ssdcachetier(config: ssdcacheconfig) cold-tier disk cache for kv cache entries.">
<td><a href="../api/vllm_mlx/ssd_cache/#contract-vllm_mlx.ssd_cache.SSDCacheTier"><code>vllm_mlx.ssd_cache.SSDCacheTier</code></a></td>
<td>class</td>
<td><code>vllm_mlx.ssd_cache.SSDCacheTier(config: SSDCacheConfig)</code></td>
<td>Cold-tier disk cache for KV cache entries.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/ssd_cache.py#L649-L1248">#L649-L1248</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.ssd_cache.ssdcachetier.__init__ method vllm_mlx.ssd_cache.ssdcachetier.__init__(config: ssdcacheconfig) -&gt; none method `ssdcachetier.__init__` updates `self._config`, `self._closed`, `self._writer_thread`, `self._cache_dir`; calls `valueerror`, `os.path.join`, `os.makedirs`, `ssdindex`; can raise `valueerror`.">
<td><a href="../api/vllm_mlx/ssd_cache/#contract-vllm_mlx.ssd_cache.SSDCacheTier.__init__"><code>vllm_mlx.ssd_cache.SSDCacheTier.__init__</code></a></td>
<td>method</td>
<td><code>vllm_mlx.ssd_cache.SSDCacheTier.__init__(config: SSDCacheConfig) -&gt; None</code></td>
<td>Method `SSDCacheTier.__init__` updates `self._config`, `self._closed`, `self._writer_thread`, `self._cache_dir`; calls `ValueError`, `os.path.join`, `os.makedirs`, `SSDIndex`; can raise `ValueError`.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/ssd_cache.py#L667-L705">#L667-L705</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.ssd_cache.ssdcachetier._enforce_capacity method vllm_mlx.ssd_cache.ssdcachetier._enforce_capacity() -&gt; none evict oldest ssd entries until within capacity limits.">
<td><a href="../api/vllm_mlx/ssd_cache/#contract-vllm_mlx.ssd_cache.SSDCacheTier._enforce_capacity"><code>vllm_mlx.ssd_cache.SSDCacheTier._enforce_capacity</code></a></td>
<td>method</td>
<td><code>vllm_mlx.ssd_cache.SSDCacheTier._enforce_capacity() -&gt; None</code></td>
<td>Evict oldest SSD entries until within capacity limits.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/ssd_cache.py#L1144-L1181">#L1144-L1181</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.ssd_cache.ssdcachetier._entry_hash method vllm_mlx.ssd_cache.ssdcachetier._entry_hash(tokens: tuple[int, ...]) -&gt; str compute deterministic hash for a token sequence.">
<td><a href="../api/vllm_mlx/ssd_cache/#contract-vllm_mlx.ssd_cache.SSDCacheTier._entry_hash"><code>vllm_mlx.ssd_cache.SSDCacheTier._entry_hash</code></a></td>
<td>method</td>
<td><code>vllm_mlx.ssd_cache.SSDCacheTier._entry_hash(tokens: tuple[int, ...]) -&gt; str</code></td>
<td>Compute deterministic hash for a token sequence.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/ssd_cache.py#L708-L710">#L708-L710</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.ssd_cache.ssdcachetier._quarantine_entry method vllm_mlx.ssd_cache.ssdcachetier._quarantine_entry(tokens: tuple[int, ...], relative_path: str) -&gt; none move a corrupt entry to quarantine and remove from index.">
<td><a href="../api/vllm_mlx/ssd_cache/#contract-vllm_mlx.ssd_cache.SSDCacheTier._quarantine_entry"><code>vllm_mlx.ssd_cache.SSDCacheTier._quarantine_entry</code></a></td>
<td>method</td>
<td><code>vllm_mlx.ssd_cache.SSDCacheTier._quarantine_entry(tokens: tuple[int, ...], relative_path: str) -&gt; None</code></td>
<td>Move a corrupt entry to quarantine and remove from index.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/ssd_cache.py#L1123-L1142">#L1123-L1142</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.ssd_cache.ssdcachetier._read_entry method vllm_mlx.ssd_cache.ssdcachetier._read_entry(tokens: tuple[int, ...], relative_path: str) -&gt; list | none read a cache entry from disk.">
<td><a href="../api/vllm_mlx/ssd_cache/#contract-vllm_mlx.ssd_cache.SSDCacheTier._read_entry"><code>vllm_mlx.ssd_cache.SSDCacheTier._read_entry</code></a></td>
<td>method</td>
<td><code>vllm_mlx.ssd_cache.SSDCacheTier._read_entry(tokens: tuple[int, ...], relative_path: str) -&gt; list | None</code></td>
<td>Read a cache entry from disk.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/ssd_cache.py#L1078-L1121">#L1078-L1121</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.ssd_cache.ssdcachetier._write_entry method vllm_mlx.ssd_cache.ssdcachetier._write_entry(tokens_key: tuple[int, ...], layer_snapshots: list[tuple[layerserializer, dict[str, any]]], memory_bytes: int) -&gt; none atomically persist one entry (writer thread; numpy-only input).">
<td><a href="../api/vllm_mlx/ssd_cache/#contract-vllm_mlx.ssd_cache.SSDCacheTier._write_entry"><code>vllm_mlx.ssd_cache.SSDCacheTier._write_entry</code></a></td>
<td>method</td>
<td><code>vllm_mlx.ssd_cache.SSDCacheTier._write_entry(tokens_key: tuple[int, ...], layer_snapshots: list[tuple[LayerSerializer, dict[str, Any]]], memory_bytes: int) -&gt; None</code></td>
<td>Atomically persist one entry (writer thread; numpy-only input).</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/ssd_cache.py#L869-L944">#L869-L944</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.ssd_cache.ssdcachetier._writer_loop method vllm_mlx.ssd_cache.ssdcachetier._writer_loop() -&gt; none drain spill queue and persist entries.">
<td><a href="../api/vllm_mlx/ssd_cache/#contract-vllm_mlx.ssd_cache.SSDCacheTier._writer_loop"><code>vllm_mlx.ssd_cache.SSDCacheTier._writer_loop</code></a></td>
<td>method</td>
<td><code>vllm_mlx.ssd_cache.SSDCacheTier._writer_loop() -&gt; None</code></td>
<td>Drain spill queue and persist entries.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/ssd_cache.py#L727-L744">#L727-L744</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.ssd_cache.ssdcachetier.async_promote method async vllm_mlx.ssd_cache.ssdcachetier.async_promote(tokens: tuple[int, ...], reserve_budget_fn, release_budget_fn) -&gt; list | none promote an entry from ssd to ram asynchronously.">
<td><a href="../api/vllm_mlx/ssd_cache/#contract-vllm_mlx.ssd_cache.SSDCacheTier.async_promote"><code>vllm_mlx.ssd_cache.SSDCacheTier.async_promote</code></a></td>
<td>method</td>
<td><code>async vllm_mlx.ssd_cache.SSDCacheTier.async_promote(tokens: tuple[int, ...], reserve_budget_fn, release_budget_fn) -&gt; list | None</code></td>
<td>Promote an entry from SSD to RAM asynchronously.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/ssd_cache.py#L970-L1076">#L970-L1076</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.ssd_cache.ssdcachetier.close method vllm_mlx.ssd_cache.ssdcachetier.close() -&gt; none close the ssd cache tier and release resources.">
<td><a href="../api/vllm_mlx/ssd_cache/#contract-vllm_mlx.ssd_cache.SSDCacheTier.close"><code>vllm_mlx.ssd_cache.SSDCacheTier.close</code></a></td>
<td>method</td>
<td><code>vllm_mlx.ssd_cache.SSDCacheTier.close() -&gt; None</code></td>
<td>Close the SSD cache tier and release resources.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/ssd_cache.py#L1231-L1248">#L1231-L1248</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.ssd_cache.ssdcachetier.enqueue_spill method vllm_mlx.ssd_cache.ssdcachetier.enqueue_spill(tokens: tuple[int, ...], cache: list[any], memory_bytes: int) -&gt; bool enqueue a cache entry for async spill to ssd.">
<td><a href="../api/vllm_mlx/ssd_cache/#contract-vllm_mlx.ssd_cache.SSDCacheTier.enqueue_spill"><code>vllm_mlx.ssd_cache.SSDCacheTier.enqueue_spill</code></a></td>
<td>method</td>
<td><code>vllm_mlx.ssd_cache.SSDCacheTier.enqueue_spill(tokens: tuple[int, ...], cache: list[Any], memory_bytes: int) -&gt; bool</code></td>
<td>Enqueue a cache entry for async spill to SSD.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/ssd_cache.py#L746-L867">#L746-L867</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="nested function" data-symbol-search="vllm_mlx.ssd_cache.ssdcachetier.enqueue_spill._is_quantized_layer nested function vllm_mlx.ssd_cache.ssdcachetier.enqueue_spill._is_quantized_layer(layer) -&gt; not annotated nested function `ssdcachetier.enqueue_spill._is_quantized_layer` calls `isinstance`, `getattr`; has 2 explicit return paths.">
<td><a href="../api/vllm_mlx/ssd_cache/#contract-vllm_mlx.ssd_cache.SSDCacheTier.enqueue_spill._is_quantized_layer"><code>vllm_mlx.ssd_cache.SSDCacheTier.enqueue_spill._is_quantized_layer</code></a></td>
<td>nested function</td>
<td><code>vllm_mlx.ssd_cache.SSDCacheTier.enqueue_spill._is_quantized_layer(layer) -&gt; not annotated</code></td>
<td>Nested Function `SSDCacheTier.enqueue_spill._is_quantized_layer` calls `isinstance`, `getattr`; has 2 explicit return paths.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/ssd_cache.py#L772-L776">#L772-L776</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.ssd_cache.ssdcachetier.get_stats method vllm_mlx.ssd_cache.ssdcachetier.get_stats() -&gt; dict return current ssd cache statistics.">
<td><a href="../api/vllm_mlx/ssd_cache/#contract-vllm_mlx.ssd_cache.SSDCacheTier.get_stats"><code>vllm_mlx.ssd_cache.SSDCacheTier.get_stats</code></a></td>
<td>method</td>
<td><code>vllm_mlx.ssd_cache.SSDCacheTier.get_stats() -&gt; dict</code></td>
<td>Return current SSD cache statistics.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/ssd_cache.py#L712-L714">#L712-L714</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.ssd_cache.ssdcachetier.lookup_ssd method vllm_mlx.ssd_cache.ssdcachetier.lookup_ssd(tokens: tuple[int, ...]) -&gt; dict | none synchronous check whether tokens exist in ssd tier.">
<td><a href="../api/vllm_mlx/ssd_cache/#contract-vllm_mlx.ssd_cache.SSDCacheTier.lookup_ssd"><code>vllm_mlx.ssd_cache.SSDCacheTier.lookup_ssd</code></a></td>
<td>method</td>
<td><code>vllm_mlx.ssd_cache.SSDCacheTier.lookup_ssd(tokens: tuple[int, ...]) -&gt; dict | None</code></td>
<td>Synchronous check whether tokens exist in SSD tier.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/ssd_cache.py#L946-L958">#L946-L958</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.ssd_cache.ssdcachetier.lookup_ssd_prefix method vllm_mlx.ssd_cache.ssdcachetier.lookup_ssd_prefix(tokens: tuple[int, ...]) -&gt; dict | none find the longest prefix match in the ssd tier.">
<td><a href="../api/vllm_mlx/ssd_cache/#contract-vllm_mlx.ssd_cache.SSDCacheTier.lookup_ssd_prefix"><code>vllm_mlx.ssd_cache.SSDCacheTier.lookup_ssd_prefix</code></a></td>
<td>method</td>
<td><code>vllm_mlx.ssd_cache.SSDCacheTier.lookup_ssd_prefix(tokens: tuple[int, ...]) -&gt; dict | None</code></td>
<td>Find the longest prefix match in the SSD tier.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/ssd_cache.py#L960-L968">#L960-L968</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.ssd_cache.ssdcachetier.reconcile method vllm_mlx.ssd_cache.ssdcachetier.reconcile() -&gt; int reconcile index with files on disk.">
<td><a href="../api/vllm_mlx/ssd_cache/#contract-vllm_mlx.ssd_cache.SSDCacheTier.reconcile"><code>vllm_mlx.ssd_cache.SSDCacheTier.reconcile</code></a></td>
<td>method</td>
<td><code>vllm_mlx.ssd_cache.SSDCacheTier.reconcile() -&gt; int</code></td>
<td>Reconcile index with files on disk.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/ssd_cache.py#L1183-L1229">#L1183-L1229</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.ssd_cache.ssdcachetier.start_writer method vllm_mlx.ssd_cache.ssdcachetier.start_writer() -&gt; none start the background spill writer thread.">
<td><a href="../api/vllm_mlx/ssd_cache/#contract-vllm_mlx.ssd_cache.SSDCacheTier.start_writer"><code>vllm_mlx.ssd_cache.SSDCacheTier.start_writer</code></a></td>
<td>method</td>
<td><code>vllm_mlx.ssd_cache.SSDCacheTier.start_writer() -&gt; None</code></td>
<td>Start the background spill writer thread.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/ssd_cache.py#L716-L725">#L716-L725</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="class" data-symbol-search="vllm_mlx.ssd_cache.ssdindex class vllm_mlx.ssd_cache.ssdindex(cache_dir: str) sqlite-backed index for ssd cache entries.">
<td><a href="../api/vllm_mlx/ssd_cache/#contract-vllm_mlx.ssd_cache.SSDIndex"><code>vllm_mlx.ssd_cache.SSDIndex</code></a></td>
<td>class</td>
<td><code>vllm_mlx.ssd_cache.SSDIndex(cache_dir: str)</code></td>
<td>SQLite-backed index for SSD cache entries.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/ssd_cache.py#L152-L405">#L152-L405</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.ssd_cache.ssdindex.__init__ method vllm_mlx.ssd_cache.ssdindex.__init__(cache_dir: str) -&gt; none method `ssdindex.__init__` updates `self._cache_dir`, `self._db_lock`, `self._conn`, `self._conn.row_factory`; calls `threading.lock`, `os.path.join`, `sqlite3.connect`, `self._conn.execute`.">
<td><a href="../api/vllm_mlx/ssd_cache/#contract-vllm_mlx.ssd_cache.SSDIndex.__init__"><code>vllm_mlx.ssd_cache.SSDIndex.__init__</code></a></td>
<td>method</td>
<td><code>vllm_mlx.ssd_cache.SSDIndex.__init__(cache_dir: str) -&gt; None</code></td>
<td>Method `SSDIndex.__init__` updates `self._cache_dir`, `self._db_lock`, `self._conn`, `self._conn.row_factory`; calls `threading.Lock`, `os.path.join`, `sqlite3.connect`, `self._conn.execute`.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/ssd_cache.py#L165-L173">#L165-L173</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.ssd_cache.ssdindex._backfill_prefix_hashes method vllm_mlx.ssd_cache.ssdindex._backfill_prefix_hashes() -&gt; none method `ssdindex._backfill_prefix_hashes` calls `self._conn.execute`, `cur.fetchall`, `_blob_to_tokens`, `_prefix_hash`.">
<td><a href="../api/vllm_mlx/ssd_cache/#contract-vllm_mlx.ssd_cache.SSDIndex._backfill_prefix_hashes"><code>vllm_mlx.ssd_cache.SSDIndex._backfill_prefix_hashes</code></a></td>
<td>method</td>
<td><code>vllm_mlx.ssd_cache.SSDIndex._backfill_prefix_hashes() -&gt; None</code></td>
<td>Method `SSDIndex._backfill_prefix_hashes` calls `self._conn.execute`, `cur.fetchall`, `_blob_to_tokens`, `_prefix_hash`.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/ssd_cache.py#L220-L230">#L220-L230</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.ssd_cache.ssdindex._create_tables method vllm_mlx.ssd_cache.ssdindex._create_tables() -&gt; none method `ssdindex._create_tables` calls `self._conn.executescript`, `self._ensure_column`, `self._conn.execute`, `cur.fetchone`.">
<td><a href="../api/vllm_mlx/ssd_cache/#contract-vllm_mlx.ssd_cache.SSDIndex._create_tables"><code>vllm_mlx.ssd_cache.SSDIndex._create_tables</code></a></td>
<td>method</td>
<td><code>vllm_mlx.ssd_cache.SSDIndex._create_tables() -&gt; None</code></td>
<td>Method `SSDIndex._create_tables` calls `self._conn.executescript`, `self._ensure_column`, `self._conn.execute`, `cur.fetchone`.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/ssd_cache.py#L175-L213">#L175-L213</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.ssd_cache.ssdindex._ensure_column method vllm_mlx.ssd_cache.ssdindex._ensure_column(table: str, column: str, definition: str) -&gt; none method `ssdindex._ensure_column` calls `self._conn.execute`, `cur.fetchall`.">
<td><a href="../api/vllm_mlx/ssd_cache/#contract-vllm_mlx.ssd_cache.SSDIndex._ensure_column"><code>vllm_mlx.ssd_cache.SSDIndex._ensure_column</code></a></td>
<td>method</td>
<td><code>vllm_mlx.ssd_cache.SSDIndex._ensure_column(table: str, column: str, definition: str) -&gt; None</code></td>
<td>Method `SSDIndex._ensure_column` calls `self._conn.execute`, `cur.fetchall`.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/ssd_cache.py#L215-L218">#L215-L218</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.ssd_cache.ssdindex.all_entries method vllm_mlx.ssd_cache.ssdindex.all_entries() -&gt; list[dict] return all entries (for startup reconciliation).">
<td><a href="../api/vllm_mlx/ssd_cache/#contract-vllm_mlx.ssd_cache.SSDIndex.all_entries"><code>vllm_mlx.ssd_cache.SSDIndex.all_entries</code></a></td>
<td>method</td>
<td><code>vllm_mlx.ssd_cache.SSDIndex.all_entries() -&gt; list[dict]</code></td>
<td>Return all entries (for startup reconciliation).</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/ssd_cache.py#L381-L400">#L381-L400</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.ssd_cache.ssdindex.close method vllm_mlx.ssd_cache.ssdindex.close() -&gt; none close the sqlite connection.">
<td><a href="../api/vllm_mlx/ssd_cache/#contract-vllm_mlx.ssd_cache.SSDIndex.close"><code>vllm_mlx.ssd_cache.SSDIndex.close</code></a></td>
<td>method</td>
<td><code>vllm_mlx.ssd_cache.SSDIndex.close() -&gt; None</code></td>
<td>Close the SQLite connection.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/ssd_cache.py#L402-L405">#L402-L405</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.ssd_cache.ssdindex.delete_entry method vllm_mlx.ssd_cache.ssdindex.delete_entry(tokens_key: tuple[int, ...]) -&gt; none delete an entry by token sequence.">
<td><a href="../api/vllm_mlx/ssd_cache/#contract-vllm_mlx.ssd_cache.SSDIndex.delete_entry"><code>vllm_mlx.ssd_cache.SSDIndex.delete_entry</code></a></td>
<td>method</td>
<td><code>vllm_mlx.ssd_cache.SSDIndex.delete_entry(tokens_key: tuple[int, ...]) -&gt; None</code></td>
<td>Delete an entry by token sequence.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/ssd_cache.py#L326-L333">#L326-L333</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.ssd_cache.ssdindex.get_entry_count method vllm_mlx.ssd_cache.ssdindex.get_entry_count() -&gt; int get number of entries in the index.">
<td><a href="../api/vllm_mlx/ssd_cache/#contract-vllm_mlx.ssd_cache.SSDIndex.get_entry_count"><code>vllm_mlx.ssd_cache.SSDIndex.get_entry_count</code></a></td>
<td>method</td>
<td><code>vllm_mlx.ssd_cache.SSDIndex.get_entry_count() -&gt; int</code></td>
<td>Get number of entries in the index.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/ssd_cache.py#L365-L369">#L365-L369</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.ssd_cache.ssdindex.get_lru method vllm_mlx.ssd_cache.ssdindex.get_lru(limit: int = 10) -&gt; list[dict] get the least recently used entries, ordered oldest first.">
<td><a href="../api/vllm_mlx/ssd_cache/#contract-vllm_mlx.ssd_cache.SSDIndex.get_lru"><code>vllm_mlx.ssd_cache.SSDIndex.get_lru</code></a></td>
<td>method</td>
<td><code>vllm_mlx.ssd_cache.SSDIndex.get_lru(limit: int = 10) -&gt; list[dict]</code></td>
<td>Get the least recently used entries, ordered oldest first.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/ssd_cache.py#L335-L355">#L335-L355</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.ssd_cache.ssdindex.get_total_bytes method vllm_mlx.ssd_cache.ssdindex.get_total_bytes() -&gt; int get total memory_bytes across all entries.">
<td><a href="../api/vllm_mlx/ssd_cache/#contract-vllm_mlx.ssd_cache.SSDIndex.get_total_bytes"><code>vllm_mlx.ssd_cache.SSDIndex.get_total_bytes</code></a></td>
<td>method</td>
<td><code>vllm_mlx.ssd_cache.SSDIndex.get_total_bytes() -&gt; int</code></td>
<td>Get total memory_bytes across all entries.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/ssd_cache.py#L357-L363">#L357-L363</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.ssd_cache.ssdindex.insert_entry method vllm_mlx.ssd_cache.ssdindex.insert_entry(tokens_key: tuple[int, ...], file_path: str, memory_bytes: int, num_tokens: int) -&gt; none insert or replace a cache entry in the index.">
<td><a href="../api/vllm_mlx/ssd_cache/#contract-vllm_mlx.ssd_cache.SSDIndex.insert_entry"><code>vllm_mlx.ssd_cache.SSDIndex.insert_entry</code></a></td>
<td>method</td>
<td><code>vllm_mlx.ssd_cache.SSDIndex.insert_entry(tokens_key: tuple[int, ...], file_path: str, memory_bytes: int, num_tokens: int) -&gt; None</code></td>
<td>Insert or replace a cache entry in the index.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/ssd_cache.py#L232-L263">#L232-L263</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.ssd_cache.ssdindex.lookup_exact method vllm_mlx.ssd_cache.ssdindex.lookup_exact(tokens_key: tuple[int, ...]) -&gt; dict | none look up an exact token sequence.">
<td><a href="../api/vllm_mlx/ssd_cache/#contract-vllm_mlx.ssd_cache.SSDIndex.lookup_exact"><code>vllm_mlx.ssd_cache.SSDIndex.lookup_exact</code></a></td>
<td>method</td>
<td><code>vllm_mlx.ssd_cache.SSDIndex.lookup_exact(tokens_key: tuple[int, ...]) -&gt; dict | None</code></td>
<td>Look up an exact token sequence.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/ssd_cache.py#L265-L280">#L265-L280</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.ssd_cache.ssdindex.lookup_prefix method vllm_mlx.ssd_cache.ssdindex.lookup_prefix(query_tokens: tuple[int, ...]) -&gt; list[dict] find entries whose token sequence is a prefix of query_tokens.">
<td><a href="../api/vllm_mlx/ssd_cache/#contract-vllm_mlx.ssd_cache.SSDIndex.lookup_prefix"><code>vllm_mlx.ssd_cache.SSDIndex.lookup_prefix</code></a></td>
<td>method</td>
<td><code>vllm_mlx.ssd_cache.SSDIndex.lookup_prefix(query_tokens: tuple[int, ...]) -&gt; list[dict]</code></td>
<td>Find entries whose token sequence is a prefix of query_tokens.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/ssd_cache.py#L282-L324">#L282-L324</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.ssd_cache.ssdindex.touch method vllm_mlx.ssd_cache.ssdindex.touch(tokens_key: tuple[int, ...]) -&gt; none update accessed_at timestamp for an entry (marks as recently used).">
<td><a href="../api/vllm_mlx/ssd_cache/#contract-vllm_mlx.ssd_cache.SSDIndex.touch"><code>vllm_mlx.ssd_cache.SSDIndex.touch</code></a></td>
<td>method</td>
<td><code>vllm_mlx.ssd_cache.SSDIndex.touch(tokens_key: tuple[int, ...]) -&gt; None</code></td>
<td>Update accessed_at timestamp for an entry (marks as recently used).</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/ssd_cache.py#L371-L379">#L371-L379</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.text_model_from_vlm._import_text_model_classes function vllm_mlx.text_model_from_vlm._import_text_model_classes(model_type: str) -&gt; not annotated return ``(model, modelargs)`` for a text config&#x27;s ``model_type``.">
<td><a href="../api/vllm_mlx/text_model_from_vlm/#contract-vllm_mlx.text_model_from_vlm._import_text_model_classes"><code>vllm_mlx.text_model_from_vlm._import_text_model_classes</code></a></td>
<td>function</td>
<td><code>vllm_mlx.text_model_from_vlm._import_text_model_classes(model_type: str) -&gt; not annotated</code></td>
<td>Return ``(Model, ModelArgs)`` for a text config&#x27;s ``model_type``.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/text_model_from_vlm.py#L41-L66">#L41-L66</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.text_model_from_vlm._load_mtp_weights function vllm_mlx.text_model_from_vlm._load_mtp_weights(model_path: path) -&gt; list[tuple[str, mx.array]] load mtp weights from safetensors, stripping the language_model.">
<td><a href="../api/vllm_mlx/text_model_from_vlm/#contract-vllm_mlx.text_model_from_vlm._load_mtp_weights"><code>vllm_mlx.text_model_from_vlm._load_mtp_weights</code></a></td>
<td>function</td>
<td><code>vllm_mlx.text_model_from_vlm._load_mtp_weights(model_path: Path) -&gt; list[tuple[str, mx.array]]</code></td>
<td>Load MTP weights from safetensors, stripping the language_model.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/text_model_from_vlm.py#L228-L272">#L228-L272</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.text_model_from_vlm.build_text_model function vllm_mlx.text_model_from_vlm.build_text_model(vlm_model: any, model_path: str | path) -&gt; any | none build an mlx_lm textmodel from a vlm-loaded model&#x27;s weights.">
<td><a href="../api/vllm_mlx/text_model_from_vlm/#contract-vllm_mlx.text_model_from_vlm.build_text_model"><code>vllm_mlx.text_model_from_vlm.build_text_model</code></a></td>
<td>function</td>
<td><code>vllm_mlx.text_model_from_vlm.build_text_model(vlm_model: Any, model_path: str | Path) -&gt; Any | None</code></td>
<td>Build an mlx_lm TextModel from a vlm-loaded model&#x27;s weights.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/text_model_from_vlm.py#L69-L225">#L69-L225</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="nested function" data-symbol-search="vllm_mlx.text_model_from_vlm.build_text_model._class_predicate nested function vllm_mlx.text_model_from_vlm.build_text_model._class_predicate(path, module) -&gt; not annotated nested function `build_text_model._class_predicate` calls `hasattr`, `per_layer_overrides.items`, `key.endswith`; has 4 explicit return paths.">
<td><a href="../api/vllm_mlx/text_model_from_vlm/#contract-vllm_mlx.text_model_from_vlm.build_text_model._class_predicate"><code>vllm_mlx.text_model_from_vlm.build_text_model._class_predicate</code></a></td>
<td>nested function</td>
<td><code>vllm_mlx.text_model_from_vlm.build_text_model._class_predicate(path, module) -&gt; not annotated</code></td>
<td>Nested Function `build_text_model._class_predicate` calls `hasattr`, `per_layer_overrides.items`, `key.endswith`; has 4 explicit return paths.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/text_model_from_vlm.py#L127-L137">#L127-L137</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="class" data-symbol-search="vllm_mlx.tool_parsers.abstract_tool_parser.extractedtoolcallinformation class vllm_mlx.tool_parsers.abstract_tool_parser.extractedtoolcallinformation(tools_called: bool, tool_calls: list[dict[str, any]], content: str | none = none) information extracted from model output about tool calls.">
<td><a href="../api/vllm_mlx/tool_parsers/abstract_tool_parser/#contract-vllm_mlx.tool_parsers.abstract_tool_parser.ExtractedToolCallInformation"><code>vllm_mlx.tool_parsers.abstract_tool_parser.ExtractedToolCallInformation</code></a></td>
<td>class</td>
<td><code>vllm_mlx.tool_parsers.abstract_tool_parser.ExtractedToolCallInformation(tools_called: bool, tool_calls: list[dict[str, Any]], content: str | None = None)</code></td>
<td>Information extracted from model output about tool calls.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/tool_parsers/abstract_tool_parser.py#L27-L37">#L27-L37</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="class" data-symbol-search="vllm_mlx.tool_parsers.abstract_tool_parser.toolparser class vllm_mlx.tool_parsers.abstract_tool_parser.toolparser(tokenizer: pretrainedtokenizerbase | none = none) abstract base class for tool call parsers.">
<td><a href="../api/vllm_mlx/tool_parsers/abstract_tool_parser/#contract-vllm_mlx.tool_parsers.abstract_tool_parser.ToolParser"><code>vllm_mlx.tool_parsers.abstract_tool_parser.ToolParser</code></a></td>
<td>class</td>
<td><code>vllm_mlx.tool_parsers.abstract_tool_parser.ToolParser(tokenizer: PreTrainedTokenizerBase | None = None)</code></td>
<td>Abstract base class for tool call parsers.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/tool_parsers/abstract_tool_parser.py#L40-L171">#L40-L171</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.tool_parsers.abstract_tool_parser.toolparser.__init__ method vllm_mlx.tool_parsers.abstract_tool_parser.toolparser.__init__(tokenizer: pretrainedtokenizerbase | none = none) -&gt; not annotated initialize the tool parser.">
<td><a href="../api/vllm_mlx/tool_parsers/abstract_tool_parser/#contract-vllm_mlx.tool_parsers.abstract_tool_parser.ToolParser.__init__"><code>vllm_mlx.tool_parsers.abstract_tool_parser.ToolParser.__init__</code></a></td>
<td>method</td>
<td><code>vllm_mlx.tool_parsers.abstract_tool_parser.ToolParser.__init__(tokenizer: PreTrainedTokenizerBase | None = None) -&gt; not annotated</code></td>
<td>Initialize the tool parser.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/tool_parsers/abstract_tool_parser.py#L103-L113">#L103-L113</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.tool_parsers.abstract_tool_parser.toolparser.extract_tool_calls method vllm_mlx.tool_parsers.abstract_tool_parser.toolparser.extract_tool_calls(model_output: str, request: dict[str, any] | none = none) -&gt; extractedtoolcallinformation extract tool calls from a complete model response.">
<td><a href="../api/vllm_mlx/tool_parsers/abstract_tool_parser/#contract-vllm_mlx.tool_parsers.abstract_tool_parser.ToolParser.extract_tool_calls"><code>vllm_mlx.tool_parsers.abstract_tool_parser.ToolParser.extract_tool_calls</code></a></td>
<td>method</td>
<td><code>vllm_mlx.tool_parsers.abstract_tool_parser.ToolParser.extract_tool_calls(model_output: str, request: dict[str, Any] | None = None) -&gt; ExtractedToolCallInformation</code></td>
<td>Extract tool calls from a complete model response.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/tool_parsers/abstract_tool_parser.py#L123-L136">#L123-L136</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.tool_parsers.abstract_tool_parser.toolparser.extract_tool_calls_streaming method vllm_mlx.tool_parsers.abstract_tool_parser.toolparser.extract_tool_calls_streaming(previous_text: str, current_text: str, delta_text: str, previous_token_ids: sequence[int] | none = none, current_token_ids: sequence[int] | none = none, delta_token_ids: sequence[int] | none = none, request: dict[str, any] | none = none) -&gt; dict[str, any] | none extract tool calls from streaming model output.">
<td><a href="../api/vllm_mlx/tool_parsers/abstract_tool_parser/#contract-vllm_mlx.tool_parsers.abstract_tool_parser.ToolParser.extract_tool_calls_streaming"><code>vllm_mlx.tool_parsers.abstract_tool_parser.ToolParser.extract_tool_calls_streaming</code></a></td>
<td>method</td>
<td><code>vllm_mlx.tool_parsers.abstract_tool_parser.ToolParser.extract_tool_calls_streaming(previous_text: str, current_text: str, delta_text: str, previous_token_ids: Sequence[int] | None = None, current_token_ids: Sequence[int] | None = None, delta_token_ids: Sequence[int] | None = None, request: dict[str, Any] | None = None) -&gt; dict[str, Any] | None</code></td>
<td>Extract tool calls from streaming model output.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/tool_parsers/abstract_tool_parser.py#L138-L166">#L138-L166</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.tool_parsers.abstract_tool_parser.toolparser.reset method vllm_mlx.tool_parsers.abstract_tool_parser.toolparser.reset() -&gt; none reset parser state for a new request.">
<td><a href="../api/vllm_mlx/tool_parsers/abstract_tool_parser/#contract-vllm_mlx.tool_parsers.abstract_tool_parser.ToolParser.reset"><code>vllm_mlx.tool_parsers.abstract_tool_parser.ToolParser.reset</code></a></td>
<td>method</td>
<td><code>vllm_mlx.tool_parsers.abstract_tool_parser.ToolParser.reset() -&gt; None</code></td>
<td>Reset parser state for a new request.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/tool_parsers/abstract_tool_parser.py#L168-L171">#L168-L171</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.tool_parsers.abstract_tool_parser.toolparser.strip_think_tags method vllm_mlx.tool_parsers.abstract_tool_parser.toolparser.strip_think_tags(text: str) -&gt; str strip think tags from text.">
<td><a href="../api/vllm_mlx/tool_parsers/abstract_tool_parser/#contract-vllm_mlx.tool_parsers.abstract_tool_parser.ToolParser.strip_think_tags"><code>vllm_mlx.tool_parsers.abstract_tool_parser.ToolParser.strip_think_tags</code></a></td>
<td>method</td>
<td><code>vllm_mlx.tool_parsers.abstract_tool_parser.ToolParser.strip_think_tags(text: str) -&gt; str</code></td>
<td>Strip think tags from text.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/tool_parsers/abstract_tool_parser.py#L75-L101">#L75-L101</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.tool_parsers.abstract_tool_parser.toolparser.supports_native_format method vllm_mlx.tool_parsers.abstract_tool_parser.toolparser.supports_native_format() -&gt; bool check if this parser supports native tool message format.">
<td><a href="../api/vllm_mlx/tool_parsers/abstract_tool_parser/#contract-vllm_mlx.tool_parsers.abstract_tool_parser.ToolParser.supports_native_format"><code>vllm_mlx.tool_parsers.abstract_tool_parser.ToolParser.supports_native_format</code></a></td>
<td>method</td>
<td><code>vllm_mlx.tool_parsers.abstract_tool_parser.ToolParser.supports_native_format() -&gt; bool</code></td>
<td>Check if this parser supports native tool message format.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/tool_parsers/abstract_tool_parser.py#L60-L72">#L60-L72</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.tool_parsers.abstract_tool_parser.toolparser.vocab method vllm_mlx.tool_parsers.abstract_tool_parser.toolparser.vocab() -&gt; dict[str, int] get the tokenizer vocabulary.">
<td><a href="../api/vllm_mlx/tool_parsers/abstract_tool_parser/#contract-vllm_mlx.tool_parsers.abstract_tool_parser.ToolParser.vocab"><code>vllm_mlx.tool_parsers.abstract_tool_parser.ToolParser.vocab</code></a></td>
<td>method</td>
<td><code>vllm_mlx.tool_parsers.abstract_tool_parser.ToolParser.vocab() -&gt; dict[str, int]</code></td>
<td>Get the tokenizer vocabulary.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/tool_parsers/abstract_tool_parser.py#L116-L120">#L116-L120</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="class" data-symbol-search="vllm_mlx.tool_parsers.abstract_tool_parser.toolparsermanager class vllm_mlx.tool_parsers.abstract_tool_parser.toolparsermanager() central registry for toolparser implementations.">
<td><a href="../api/vllm_mlx/tool_parsers/abstract_tool_parser/#contract-vllm_mlx.tool_parsers.abstract_tool_parser.ToolParserManager"><code>vllm_mlx.tool_parsers.abstract_tool_parser.ToolParserManager</code></a></td>
<td>class</td>
<td><code>vllm_mlx.tool_parsers.abstract_tool_parser.ToolParserManager()</code></td>
<td>Central registry for ToolParser implementations.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/tool_parsers/abstract_tool_parser.py#L174-L286">#L174-L286</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.tool_parsers.abstract_tool_parser.toolparsermanager._load_lazy_parser method vllm_mlx.tool_parsers.abstract_tool_parser.toolparsermanager._load_lazy_parser(name: str) -&gt; type[toolparser] import and register a lazily loaded parser.">
<td><a href="../api/vllm_mlx/tool_parsers/abstract_tool_parser/#contract-vllm_mlx.tool_parsers.abstract_tool_parser.ToolParserManager._load_lazy_parser"><code>vllm_mlx.tool_parsers.abstract_tool_parser.ToolParserManager._load_lazy_parser</code></a></td>
<td>method</td>
<td><code>vllm_mlx.tool_parsers.abstract_tool_parser.ToolParserManager._load_lazy_parser(name: str) -&gt; type[ToolParser]</code></td>
<td>Import and register a lazily loaded parser.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/tool_parsers/abstract_tool_parser.py#L210-L225">#L210-L225</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.tool_parsers.abstract_tool_parser.toolparsermanager.get_tool_parser method vllm_mlx.tool_parsers.abstract_tool_parser.toolparsermanager.get_tool_parser(name: str) -&gt; type[toolparser] retrieve a registered toolparser class by name.">
<td><a href="../api/vllm_mlx/tool_parsers/abstract_tool_parser/#contract-vllm_mlx.tool_parsers.abstract_tool_parser.ToolParserManager.get_tool_parser"><code>vllm_mlx.tool_parsers.abstract_tool_parser.ToolParserManager.get_tool_parser</code></a></td>
<td>method</td>
<td><code>vllm_mlx.tool_parsers.abstract_tool_parser.ToolParserManager.get_tool_parser(name: str) -&gt; type[ToolParser]</code></td>
<td>Retrieve a registered ToolParser class by name.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/tool_parsers/abstract_tool_parser.py#L185-L207">#L185-L207</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.tool_parsers.abstract_tool_parser.toolparsermanager.list_registered method vllm_mlx.tool_parsers.abstract_tool_parser.toolparsermanager.list_registered() -&gt; list[str] return names of all registered tool parsers.">
<td><a href="../api/vllm_mlx/tool_parsers/abstract_tool_parser/#contract-vllm_mlx.tool_parsers.abstract_tool_parser.ToolParserManager.list_registered"><code>vllm_mlx.tool_parsers.abstract_tool_parser.ToolParserManager.list_registered</code></a></td>
<td>method</td>
<td><code>vllm_mlx.tool_parsers.abstract_tool_parser.ToolParserManager.list_registered() -&gt; list[str]</code></td>
<td>Return names of all registered tool parsers.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/tool_parsers/abstract_tool_parser.py#L284-L286">#L284-L286</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.tool_parsers.abstract_tool_parser.toolparsermanager.register_lazy_module method vllm_mlx.tool_parsers.abstract_tool_parser.toolparsermanager.register_lazy_module(name: str, module_path: str, class_name: str) -&gt; none register a lazy module mapping for deferred loading.">
<td><a href="../api/vllm_mlx/tool_parsers/abstract_tool_parser/#contract-vllm_mlx.tool_parsers.abstract_tool_parser.ToolParserManager.register_lazy_module"><code>vllm_mlx.tool_parsers.abstract_tool_parser.ToolParserManager.register_lazy_module</code></a></td>
<td>method</td>
<td><code>vllm_mlx.tool_parsers.abstract_tool_parser.ToolParserManager.register_lazy_module(name: str, module_path: str, class_name: str) -&gt; None</code></td>
<td>Register a lazy module mapping for deferred loading.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/tool_parsers/abstract_tool_parser.py#L272-L281">#L272-L281</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.tool_parsers.abstract_tool_parser.toolparsermanager.register_module method vllm_mlx.tool_parsers.abstract_tool_parser.toolparsermanager.register_module(name: str | list[str], module: type[toolparser] | none = none, force: bool = true) -&gt; type[toolparser] | none register a toolparser class.">
<td><a href="../api/vllm_mlx/tool_parsers/abstract_tool_parser/#contract-vllm_mlx.tool_parsers.abstract_tool_parser.ToolParserManager.register_module"><code>vllm_mlx.tool_parsers.abstract_tool_parser.ToolParserManager.register_module</code></a></td>
<td>method</td>
<td><code>vllm_mlx.tool_parsers.abstract_tool_parser.ToolParserManager.register_module(name: str | list[str], module: type[ToolParser] | None = None, force: bool = True) -&gt; type[ToolParser] | None</code></td>
<td>Register a ToolParser class.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/tool_parsers/abstract_tool_parser.py#L228-L269">#L228-L269</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="nested function" data-symbol-search="vllm_mlx.tool_parsers.abstract_tool_parser.toolparsermanager.register_module.decorator nested function vllm_mlx.tool_parsers.abstract_tool_parser.toolparsermanager.register_module.decorator(parser_cls: type[toolparser]) -&gt; type[toolparser] nested function `toolparsermanager.register_module.decorator` calls `keyerror`; can raise `keyerror`; returns `parser_cls`.">
<td><a href="../api/vllm_mlx/tool_parsers/abstract_tool_parser/#contract-vllm_mlx.tool_parsers.abstract_tool_parser.ToolParserManager.register_module.decorator"><code>vllm_mlx.tool_parsers.abstract_tool_parser.ToolParserManager.register_module.decorator</code></a></td>
<td>nested function</td>
<td><code>vllm_mlx.tool_parsers.abstract_tool_parser.ToolParserManager.register_module.decorator(parser_cls: type[ToolParser]) -&gt; type[ToolParser]</code></td>
<td>Nested Function `ToolParserManager.register_module.decorator` calls `KeyError`; can raise `KeyError`; returns `parser_cls`.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/tool_parsers/abstract_tool_parser.py#L262-L267">#L262-L267</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="class" data-symbol-search="vllm_mlx.tool_parsers.auto_tool_parser.autotoolparser class vllm_mlx.tool_parsers.auto_tool_parser.autotoolparser() auto-detecting tool call parser.">
<td><a href="../api/vllm_mlx/tool_parsers/auto_tool_parser/#contract-vllm_mlx.tool_parsers.auto_tool_parser.AutoToolParser"><code>vllm_mlx.tool_parsers.auto_tool_parser.AutoToolParser</code></a></td>
<td>class</td>
<td><code>vllm_mlx.tool_parsers.auto_tool_parser.AutoToolParser()</code></td>
<td>Auto-detecting tool call parser.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/tool_parsers/auto_tool_parser.py#L28-L414">#L28-L414</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.tool_parsers.auto_tool_parser.autotoolparser._parse_raw_json_tool_calls method vllm_mlx.tool_parsers.auto_tool_parser.autotoolparser._parse_raw_json_tool_calls(text: str) -&gt; list[dict[str, any]] parse raw json tool calls from text.">
<td><a href="../api/vllm_mlx/tool_parsers/auto_tool_parser/#contract-vllm_mlx.tool_parsers.auto_tool_parser.AutoToolParser._parse_raw_json_tool_calls"><code>vllm_mlx.tool_parsers.auto_tool_parser.AutoToolParser._parse_raw_json_tool_calls</code></a></td>
<td>method</td>
<td><code>vllm_mlx.tool_parsers.auto_tool_parser.AutoToolParser._parse_raw_json_tool_calls(text: str) -&gt; list[dict[str, Any]]</code></td>
<td>Parse raw JSON tool calls from text.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/tool_parsers/auto_tool_parser.py#L270-L350">#L270-L350</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.tool_parsers.auto_tool_parser.autotoolparser.extract_tool_calls method vllm_mlx.tool_parsers.auto_tool_parser.autotoolparser.extract_tool_calls(model_output: str, request: dict[str, any] | none = none) -&gt; extractedtoolcallinformation extract tool calls by trying all known formats.">
<td><a href="../api/vllm_mlx/tool_parsers/auto_tool_parser/#contract-vllm_mlx.tool_parsers.auto_tool_parser.AutoToolParser.extract_tool_calls"><code>vllm_mlx.tool_parsers.auto_tool_parser.AutoToolParser.extract_tool_calls</code></a></td>
<td>method</td>
<td><code>vllm_mlx.tool_parsers.auto_tool_parser.AutoToolParser.extract_tool_calls(model_output: str, request: dict[str, Any] | None = None) -&gt; ExtractedToolCallInformation</code></td>
<td>Extract tool calls by trying all known formats.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/tool_parsers/auto_tool_parser.py#L61-L268">#L61-L268</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.tool_parsers.auto_tool_parser.autotoolparser.extract_tool_calls_streaming method vllm_mlx.tool_parsers.auto_tool_parser.autotoolparser.extract_tool_calls_streaming(previous_text: str, current_text: str, delta_text: str, previous_token_ids: sequence[int] | none = none, current_token_ids: sequence[int] | none = none, delta_token_ids: sequence[int] | none = none, request: dict[str, any] | none = none) -&gt; dict[str, any] | none extract tool calls from streaming model output.">
<td><a href="../api/vllm_mlx/tool_parsers/auto_tool_parser/#contract-vllm_mlx.tool_parsers.auto_tool_parser.AutoToolParser.extract_tool_calls_streaming"><code>vllm_mlx.tool_parsers.auto_tool_parser.AutoToolParser.extract_tool_calls_streaming</code></a></td>
<td>method</td>
<td><code>vllm_mlx.tool_parsers.auto_tool_parser.AutoToolParser.extract_tool_calls_streaming(previous_text: str, current_text: str, delta_text: str, previous_token_ids: Sequence[int] | None = None, current_token_ids: Sequence[int] | None = None, delta_token_ids: Sequence[int] | None = None, request: dict[str, Any] | None = None) -&gt; dict[str, Any] | None</code></td>
<td>Extract tool calls from streaming model output.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/tool_parsers/auto_tool_parser.py#L352-L414">#L352-L414</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.tool_parsers.auto_tool_parser.generate_tool_id function vllm_mlx.tool_parsers.auto_tool_parser.generate_tool_id() -&gt; str generate a unique tool call id.">
<td><a href="../api/vllm_mlx/tool_parsers/auto_tool_parser/#contract-vllm_mlx.tool_parsers.auto_tool_parser.generate_tool_id"><code>vllm_mlx.tool_parsers.auto_tool_parser.generate_tool_id</code></a></td>
<td>function</td>
<td><code>vllm_mlx.tool_parsers.auto_tool_parser.generate_tool_id() -&gt; str</code></td>
<td>Generate a unique tool call ID.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/tool_parsers/auto_tool_parser.py#L22-L24">#L22-L24</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="class" data-symbol-search="vllm_mlx.tool_parsers.deepseek_tool_parser.deepseektoolparser class vllm_mlx.tool_parsers.deepseek_tool_parser.deepseektoolparser() tool call parser for deepseek v3 and r1 models.">
<td><a href="../api/vllm_mlx/tool_parsers/deepseek_tool_parser/#contract-vllm_mlx.tool_parsers.deepseek_tool_parser.DeepSeekToolParser"><code>vllm_mlx.tool_parsers.deepseek_tool_parser.DeepSeekToolParser</code></a></td>
<td>class</td>
<td><code>vllm_mlx.tool_parsers.deepseek_tool_parser.DeepSeekToolParser()</code></td>
<td>Tool call parser for DeepSeek V3 and R1 models.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/tool_parsers/deepseek_tool_parser.py#L32-L170">#L32-L170</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.tool_parsers.deepseek_tool_parser.deepseektoolparser.extract_tool_calls method vllm_mlx.tool_parsers.deepseek_tool_parser.deepseektoolparser.extract_tool_calls(model_output: str, request: dict[str, any] | none = none) -&gt; extractedtoolcallinformation extract tool calls from deepseek model output.">
<td><a href="../api/vllm_mlx/tool_parsers/deepseek_tool_parser/#contract-vllm_mlx.tool_parsers.deepseek_tool_parser.DeepSeekToolParser.extract_tool_calls"><code>vllm_mlx.tool_parsers.deepseek_tool_parser.DeepSeekToolParser.extract_tool_calls</code></a></td>
<td>method</td>
<td><code>vllm_mlx.tool_parsers.deepseek_tool_parser.DeepSeekToolParser.extract_tool_calls(model_output: str, request: dict[str, Any] | None = None) -&gt; ExtractedToolCallInformation</code></td>
<td>Extract tool calls from DeepSeek model output.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/tool_parsers/deepseek_tool_parser.py#L69-L133">#L69-L133</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.tool_parsers.deepseek_tool_parser.deepseektoolparser.extract_tool_calls_streaming method vllm_mlx.tool_parsers.deepseek_tool_parser.deepseektoolparser.extract_tool_calls_streaming(previous_text: str, current_text: str, delta_text: str, previous_token_ids: sequence[int] | none = none, current_token_ids: sequence[int] | none = none, delta_token_ids: sequence[int] | none = none, request: dict[str, any] | none = none) -&gt; dict[str, any] | none extract tool calls from streaming deepseek model output.">
<td><a href="../api/vllm_mlx/tool_parsers/deepseek_tool_parser/#contract-vllm_mlx.tool_parsers.deepseek_tool_parser.DeepSeekToolParser.extract_tool_calls_streaming"><code>vllm_mlx.tool_parsers.deepseek_tool_parser.DeepSeekToolParser.extract_tool_calls_streaming</code></a></td>
<td>method</td>
<td><code>vllm_mlx.tool_parsers.deepseek_tool_parser.DeepSeekToolParser.extract_tool_calls_streaming(previous_text: str, current_text: str, delta_text: str, previous_token_ids: Sequence[int] | None = None, current_token_ids: Sequence[int] | None = None, delta_token_ids: Sequence[int] | None = None, request: dict[str, Any] | None = None) -&gt; dict[str, Any] | None</code></td>
<td>Extract tool calls from streaming DeepSeek model output.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/tool_parsers/deepseek_tool_parser.py#L135-L170">#L135-L170</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.tool_parsers.deepseek_tool_parser.generate_tool_id function vllm_mlx.tool_parsers.deepseek_tool_parser.generate_tool_id() -&gt; str generate a unique tool call id.">
<td><a href="../api/vllm_mlx/tool_parsers/deepseek_tool_parser/#contract-vllm_mlx.tool_parsers.deepseek_tool_parser.generate_tool_id"><code>vllm_mlx.tool_parsers.deepseek_tool_parser.generate_tool_id</code></a></td>
<td>function</td>
<td><code>vllm_mlx.tool_parsers.deepseek_tool_parser.generate_tool_id() -&gt; str</code></td>
<td>Generate a unique tool call ID.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/tool_parsers/deepseek_tool_parser.py#L26-L28">#L26-L28</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="class" data-symbol-search="vllm_mlx.tool_parsers.functionary_tool_parser.functionarytoolparser class vllm_mlx.tool_parsers.functionary_tool_parser.functionarytoolparser() tool call parser for meetkai functionary models.">
<td><a href="../api/vllm_mlx/tool_parsers/functionary_tool_parser/#contract-vllm_mlx.tool_parsers.functionary_tool_parser.FunctionaryToolParser"><code>vllm_mlx.tool_parsers.functionary_tool_parser.FunctionaryToolParser</code></a></td>
<td>class</td>
<td><code>vllm_mlx.tool_parsers.functionary_tool_parser.FunctionaryToolParser()</code></td>
<td>Tool call parser for MeetKai Functionary models.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/tool_parsers/functionary_tool_parser.py#L28-L193">#L28-L193</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.tool_parsers.functionary_tool_parser.functionarytoolparser.extract_tool_calls method vllm_mlx.tool_parsers.functionary_tool_parser.functionarytoolparser.extract_tool_calls(model_output: str, request: dict[str, any] | none = none) -&gt; extractedtoolcallinformation extract tool calls from functionary model output.">
<td><a href="../api/vllm_mlx/tool_parsers/functionary_tool_parser/#contract-vllm_mlx.tool_parsers.functionary_tool_parser.FunctionaryToolParser.extract_tool_calls"><code>vllm_mlx.tool_parsers.functionary_tool_parser.FunctionaryToolParser.extract_tool_calls</code></a></td>
<td>method</td>
<td><code>vllm_mlx.tool_parsers.functionary_tool_parser.FunctionaryToolParser.extract_tool_calls(model_output: str, request: dict[str, Any] | None = None) -&gt; ExtractedToolCallInformation</code></td>
<td>Extract tool calls from Functionary model output.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/tool_parsers/functionary_tool_parser.py#L61-L153">#L61-L153</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.tool_parsers.functionary_tool_parser.functionarytoolparser.extract_tool_calls_streaming method vllm_mlx.tool_parsers.functionary_tool_parser.functionarytoolparser.extract_tool_calls_streaming(previous_text: str, current_text: str, delta_text: str, previous_token_ids: sequence[int] | none = none, current_token_ids: sequence[int] | none = none, delta_token_ids: sequence[int] | none = none, request: dict[str, any] | none = none) -&gt; dict[str, any] | none extract tool calls from streaming functionary model output.">
<td><a href="../api/vllm_mlx/tool_parsers/functionary_tool_parser/#contract-vllm_mlx.tool_parsers.functionary_tool_parser.FunctionaryToolParser.extract_tool_calls_streaming"><code>vllm_mlx.tool_parsers.functionary_tool_parser.FunctionaryToolParser.extract_tool_calls_streaming</code></a></td>
<td>method</td>
<td><code>vllm_mlx.tool_parsers.functionary_tool_parser.FunctionaryToolParser.extract_tool_calls_streaming(previous_text: str, current_text: str, delta_text: str, previous_token_ids: Sequence[int] | None = None, current_token_ids: Sequence[int] | None = None, delta_token_ids: Sequence[int] | None = None, request: dict[str, Any] | None = None) -&gt; dict[str, Any] | None</code></td>
<td>Extract tool calls from streaming Functionary model output.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/tool_parsers/functionary_tool_parser.py#L155-L193">#L155-L193</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.tool_parsers.functionary_tool_parser.generate_tool_id function vllm_mlx.tool_parsers.functionary_tool_parser.generate_tool_id() -&gt; str generate a unique tool call id.">
<td><a href="../api/vllm_mlx/tool_parsers/functionary_tool_parser/#contract-vllm_mlx.tool_parsers.functionary_tool_parser.generate_tool_id"><code>vllm_mlx.tool_parsers.functionary_tool_parser.generate_tool_id</code></a></td>
<td>function</td>
<td><code>vllm_mlx.tool_parsers.functionary_tool_parser.generate_tool_id() -&gt; str</code></td>
<td>Generate a unique tool call ID.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/tool_parsers/functionary_tool_parser.py#L22-L24">#L22-L24</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.tool_parsers.gemma4_tool_parser._call_node_to_tool function vllm_mlx.tool_parsers.gemma4_tool_parser._call_node_to_tool(call: ast.call) -&gt; tuple[str, dict[str, any]] | none map a python `ast.call` node to (function_name, kwargs_dict).">
<td><a href="../api/vllm_mlx/tool_parsers/gemma4_tool_parser/#contract-vllm_mlx.tool_parsers.gemma4_tool_parser._call_node_to_tool"><code>vllm_mlx.tool_parsers.gemma4_tool_parser._call_node_to_tool</code></a></td>
<td>function</td>
<td><code>vllm_mlx.tool_parsers.gemma4_tool_parser._call_node_to_tool(call: ast.Call) -&gt; tuple[str, dict[str, Any]] | None</code></td>
<td>Map a Python `ast.Call` node to (function_name, kwargs_dict).</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/tool_parsers/gemma4_tool_parser.py#L210-L233">#L210-L233</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.tool_parsers.gemma4_tool_parser._find_balanced_brace function vllm_mlx.tool_parsers.gemma4_tool_parser._find_balanced_brace(text: str, start: int) -&gt; int find the index of the closing } that balances the { at `start`.">
<td><a href="../api/vllm_mlx/tool_parsers/gemma4_tool_parser/#contract-vllm_mlx.tool_parsers.gemma4_tool_parser._find_balanced_brace"><code>vllm_mlx.tool_parsers.gemma4_tool_parser._find_balanced_brace</code></a></td>
<td>function</td>
<td><code>vllm_mlx.tool_parsers.gemma4_tool_parser._find_balanced_brace(text: str, start: int) -&gt; int</code></td>
<td>Find the index of the closing } that balances the { at `start`.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/tool_parsers/gemma4_tool_parser.py#L92-L125">#L92-L125</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.tool_parsers.gemma4_tool_parser._find_balanced_paren function vllm_mlx.tool_parsers.gemma4_tool_parser._find_balanced_paren(text: str, start: int) -&gt; int find the index of the closing ) that balances the ( at `start`.">
<td><a href="../api/vllm_mlx/tool_parsers/gemma4_tool_parser/#contract-vllm_mlx.tool_parsers.gemma4_tool_parser._find_balanced_paren"><code>vllm_mlx.tool_parsers.gemma4_tool_parser._find_balanced_paren</code></a></td>
<td>function</td>
<td><code>vllm_mlx.tool_parsers.gemma4_tool_parser._find_balanced_paren(text: str, start: int) -&gt; int</code></td>
<td>Find the index of the closing ) that balances the ( at `start`.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/tool_parsers/gemma4_tool_parser.py#L128-L159">#L128-L159</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.tool_parsers.gemma4_tool_parser._gemma4_args_to_json function vllm_mlx.tool_parsers.gemma4_tool_parser._gemma4_args_to_json(text: str) -&gt; str convert gemma 4 tool call args to valid json.">
<td><a href="../api/vllm_mlx/tool_parsers/gemma4_tool_parser/#contract-vllm_mlx.tool_parsers.gemma4_tool_parser._gemma4_args_to_json"><code>vllm_mlx.tool_parsers.gemma4_tool_parser._gemma4_args_to_json</code></a></td>
<td>function</td>
<td><code>vllm_mlx.tool_parsers.gemma4_tool_parser._gemma4_args_to_json(text: str) -&gt; str</code></td>
<td>Convert Gemma 4 tool call args to valid JSON.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/tool_parsers/gemma4_tool_parser.py#L171-L207">#L171-L207</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="nested function" data-symbol-search="vllm_mlx.tool_parsers.gemma4_tool_parser._gemma4_args_to_json._capture nested function vllm_mlx.tool_parsers.gemma4_tool_parser._gemma4_args_to_json._capture(m: re.match) -&gt; str nested function `_gemma4_args_to_json._capture` calls `strings.append`, `m.group`, `len`; returns `f&#x27;\x00{len(strings) - 1}\x00&#x27;`.">
<td><a href="../api/vllm_mlx/tool_parsers/gemma4_tool_parser/#contract-vllm_mlx.tool_parsers.gemma4_tool_parser._gemma4_args_to_json._capture"><code>vllm_mlx.tool_parsers.gemma4_tool_parser._gemma4_args_to_json._capture</code></a></td>
<td>nested function</td>
<td><code>vllm_mlx.tool_parsers.gemma4_tool_parser._gemma4_args_to_json._capture(m: re.Match) -&gt; str</code></td>
<td>Nested Function `_gemma4_args_to_json._capture` calls `strings.append`, `m.group`, `len`; returns `f&#x27;\x00{len(strings) - 1}\x00&#x27;`.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/tool_parsers/gemma4_tool_parser.py#L187-L189">#L187-L189</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="nested function" data-symbol-search="vllm_mlx.tool_parsers.gemma4_tool_parser._gemma4_args_to_json._restore nested function vllm_mlx.tool_parsers.gemma4_tool_parser._gemma4_args_to_json._restore(m: re.match) -&gt; str nested function `_gemma4_args_to_json._restore` calls `int`, `m.group`, `len`, `json.dumps`; returns `json.dumps(strings[idx]) if idx &lt; len(strings) else m.group(0)`.">
<td><a href="../api/vllm_mlx/tool_parsers/gemma4_tool_parser/#contract-vllm_mlx.tool_parsers.gemma4_tool_parser._gemma4_args_to_json._restore"><code>vllm_mlx.tool_parsers.gemma4_tool_parser._gemma4_args_to_json._restore</code></a></td>
<td>nested function</td>
<td><code>vllm_mlx.tool_parsers.gemma4_tool_parser._gemma4_args_to_json._restore(m: re.Match) -&gt; str</code></td>
<td>Nested Function `_gemma4_args_to_json._restore` calls `int`, `m.group`, `len`, `json.dumps`; returns `json.dumps(strings[idx]) if idx &lt; len(strings) else m.group(0)`.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/tool_parsers/gemma4_tool_parser.py#L201-L203">#L201-L203</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.tool_parsers.gemma4_tool_parser._parse_calls_from_code function vllm_mlx.tool_parsers.gemma4_tool_parser._parse_calls_from_code(code: str) -&gt; list[tuple[str, dict[str, any]]] parse every top-level `fn(...)` call statement in a code-fence body.">
<td><a href="../api/vllm_mlx/tool_parsers/gemma4_tool_parser/#contract-vllm_mlx.tool_parsers.gemma4_tool_parser._parse_calls_from_code"><code>vllm_mlx.tool_parsers.gemma4_tool_parser._parse_calls_from_code</code></a></td>
<td>function</td>
<td><code>vllm_mlx.tool_parsers.gemma4_tool_parser._parse_calls_from_code(code: str) -&gt; list[tuple[str, dict[str, Any]]]</code></td>
<td>Parse every top-level `fn(...)` call statement in a code-fence body.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/tool_parsers/gemma4_tool_parser.py#L247-L259">#L247-L259</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.tool_parsers.gemma4_tool_parser._parse_python_call function vllm_mlx.tool_parsers.gemma4_tool_parser._parse_python_call(src: str) -&gt; tuple[str, dict[str, any]] | none parse a single `fn(...)` python call expression into (name, kwargs).">
<td><a href="../api/vllm_mlx/tool_parsers/gemma4_tool_parser/#contract-vllm_mlx.tool_parsers.gemma4_tool_parser._parse_python_call"><code>vllm_mlx.tool_parsers.gemma4_tool_parser._parse_python_call</code></a></td>
<td>function</td>
<td><code>vllm_mlx.tool_parsers.gemma4_tool_parser._parse_python_call(src: str) -&gt; tuple[str, dict[str, Any]] | None</code></td>
<td>Parse a single `fn(...)` Python call expression into (name, kwargs).</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/tool_parsers/gemma4_tool_parser.py#L236-L244">#L236-L244</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.tool_parsers.gemma4_tool_parser._quote_bare_value function vllm_mlx.tool_parsers.gemma4_tool_parser._quote_bare_value(m: re.match) -&gt; str substitution callback for _bare_value — quotes bare identifiers that are not json literals (true/false/null).">
<td><a href="../api/vllm_mlx/tool_parsers/gemma4_tool_parser/#contract-vllm_mlx.tool_parsers.gemma4_tool_parser._quote_bare_value"><code>vllm_mlx.tool_parsers.gemma4_tool_parser._quote_bare_value</code></a></td>
<td>function</td>
<td><code>vllm_mlx.tool_parsers.gemma4_tool_parser._quote_bare_value(m: re.Match) -&gt; str</code></td>
<td>Substitution callback for _BARE_VALUE — quotes bare identifiers that are not JSON literals (true/false/null).</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/tool_parsers/gemma4_tool_parser.py#L162-L168">#L162-L168</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.tool_parsers.gemma4_tool_parser._strip_spans function vllm_mlx.tool_parsers.gemma4_tool_parser._strip_spans(text: str, spans: list[tuple[int, int]]) -&gt; str remove the given [start, end) spans from `text` (handles overlaps).">
<td><a href="../api/vllm_mlx/tool_parsers/gemma4_tool_parser/#contract-vllm_mlx.tool_parsers.gemma4_tool_parser._strip_spans"><code>vllm_mlx.tool_parsers.gemma4_tool_parser._strip_spans</code></a></td>
<td>function</td>
<td><code>vllm_mlx.tool_parsers.gemma4_tool_parser._strip_spans(text: str, spans: list[tuple[int, int]]) -&gt; str</code></td>
<td>Remove the given [start, end) spans from `text` (handles overlaps).</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/tool_parsers/gemma4_tool_parser.py#L262-L275">#L262-L275</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="class" data-symbol-search="vllm_mlx.tool_parsers.gemma4_tool_parser.gemma4toolparser class vllm_mlx.tool_parsers.gemma4_tool_parser.gemma4toolparser() tool call parser for gemma 4 models.">
<td><a href="../api/vllm_mlx/tool_parsers/gemma4_tool_parser/#contract-vllm_mlx.tool_parsers.gemma4_tool_parser.Gemma4ToolParser"><code>vllm_mlx.tool_parsers.gemma4_tool_parser.Gemma4ToolParser</code></a></td>
<td>class</td>
<td><code>vllm_mlx.tool_parsers.gemma4_tool_parser.Gemma4ToolParser()</code></td>
<td>Tool call parser for Gemma 4 models.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/tool_parsers/gemma4_tool_parser.py#L284-L513">#L284-L513</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.tool_parsers.gemma4_tool_parser.gemma4toolparser._extract_canonical method vllm_mlx.tool_parsers.gemma4_tool_parser.gemma4toolparser._extract_canonical(cleaned: str) -&gt; tuple[list[dict[str, any]], str | none] parse the canonical &lt;|tool_call&gt;call:fn{...}&lt;tool_call|&gt; form.">
<td><a href="../api/vllm_mlx/tool_parsers/gemma4_tool_parser/#contract-vllm_mlx.tool_parsers.gemma4_tool_parser.Gemma4ToolParser._extract_canonical"><code>vllm_mlx.tool_parsers.gemma4_tool_parser.Gemma4ToolParser._extract_canonical</code></a></td>
<td>method</td>
<td><code>vllm_mlx.tool_parsers.gemma4_tool_parser.Gemma4ToolParser._extract_canonical(cleaned: str) -&gt; tuple[list[dict[str, Any]], str | None]</code></td>
<td>Parse the canonical &lt;|tool_call&gt;call:fn{...}&lt;tool_call|&gt; form.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/tool_parsers/gemma4_tool_parser.py#L326-L382">#L326-L382</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.tool_parsers.gemma4_tool_parser.gemma4toolparser._extract_fallback method vllm_mlx.tool_parsers.gemma4_tool_parser.gemma4toolparser._extract_fallback(cleaned: str) -&gt; extractedtoolcallinformation | none parse the python-style fallback forms (issue #80).">
<td><a href="../api/vllm_mlx/tool_parsers/gemma4_tool_parser/#contract-vllm_mlx.tool_parsers.gemma4_tool_parser.Gemma4ToolParser._extract_fallback"><code>vllm_mlx.tool_parsers.gemma4_tool_parser.Gemma4ToolParser._extract_fallback</code></a></td>
<td>method</td>
<td><code>vllm_mlx.tool_parsers.gemma4_tool_parser.Gemma4ToolParser._extract_fallback(cleaned: str) -&gt; ExtractedToolCallInformation | None</code></td>
<td>Parse the Python-style fallback forms (issue #80).</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/tool_parsers/gemma4_tool_parser.py#L384-L463">#L384-L463</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.tool_parsers.gemma4_tool_parser.gemma4toolparser._format_streaming method vllm_mlx.tool_parsers.gemma4_tool_parser.gemma4toolparser._format_streaming(result: extractedtoolcallinformation) -&gt; dict[str, any] render extracted tool calls into the streaming delta shape.">
<td><a href="../api/vllm_mlx/tool_parsers/gemma4_tool_parser/#contract-vllm_mlx.tool_parsers.gemma4_tool_parser.Gemma4ToolParser._format_streaming"><code>vllm_mlx.tool_parsers.gemma4_tool_parser.Gemma4ToolParser._format_streaming</code></a></td>
<td>method</td>
<td><code>vllm_mlx.tool_parsers.gemma4_tool_parser.Gemma4ToolParser._format_streaming(result: ExtractedToolCallInformation) -&gt; dict[str, Any]</code></td>
<td>Render extracted tool calls into the streaming delta shape.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/tool_parsers/gemma4_tool_parser.py#L465-L480">#L465-L480</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.tool_parsers.gemma4_tool_parser.gemma4toolparser.extract_tool_calls method vllm_mlx.tool_parsers.gemma4_tool_parser.gemma4toolparser.extract_tool_calls(model_output: str, request: dict[str, any] | none = none) -&gt; extractedtoolcallinformation extract tool calls from a complete gemma 4 model response.">
<td><a href="../api/vllm_mlx/tool_parsers/gemma4_tool_parser/#contract-vllm_mlx.tool_parsers.gemma4_tool_parser.Gemma4ToolParser.extract_tool_calls"><code>vllm_mlx.tool_parsers.gemma4_tool_parser.Gemma4ToolParser.extract_tool_calls</code></a></td>
<td>method</td>
<td><code>vllm_mlx.tool_parsers.gemma4_tool_parser.Gemma4ToolParser.extract_tool_calls(model_output: str, request: dict[str, Any] | None = None) -&gt; ExtractedToolCallInformation</code></td>
<td>Extract tool calls from a complete Gemma 4 model response.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/tool_parsers/gemma4_tool_parser.py#L300-L324">#L300-L324</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.tool_parsers.gemma4_tool_parser.gemma4toolparser.extract_tool_calls_streaming method vllm_mlx.tool_parsers.gemma4_tool_parser.gemma4toolparser.extract_tool_calls_streaming(previous_text: str, current_text: str, delta_text: str, previous_token_ids: sequence[int] | none = none, current_token_ids: sequence[int] | none = none, delta_token_ids: sequence[int] | none = none, request: dict[str, any] | none = none) -&gt; dict[str, any] | none extract tool calls from streaming gemma 4 model output.">
<td><a href="../api/vllm_mlx/tool_parsers/gemma4_tool_parser/#contract-vllm_mlx.tool_parsers.gemma4_tool_parser.Gemma4ToolParser.extract_tool_calls_streaming"><code>vllm_mlx.tool_parsers.gemma4_tool_parser.Gemma4ToolParser.extract_tool_calls_streaming</code></a></td>
<td>method</td>
<td><code>vllm_mlx.tool_parsers.gemma4_tool_parser.Gemma4ToolParser.extract_tool_calls_streaming(previous_text: str, current_text: str, delta_text: str, previous_token_ids: Sequence[int] | None = None, current_token_ids: Sequence[int] | None = None, delta_token_ids: Sequence[int] | None = None, request: dict[str, Any] | None = None) -&gt; dict[str, Any] | None</code></td>
<td>Extract tool calls from streaming Gemma 4 model output.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/tool_parsers/gemma4_tool_parser.py#L482-L513">#L482-L513</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.tool_parsers.gemma4_tool_parser.generate_tool_id function vllm_mlx.tool_parsers.gemma4_tool_parser.generate_tool_id() -&gt; str generate a unique tool call id.">
<td><a href="../api/vllm_mlx/tool_parsers/gemma4_tool_parser/#contract-vllm_mlx.tool_parsers.gemma4_tool_parser.generate_tool_id"><code>vllm_mlx.tool_parsers.gemma4_tool_parser.generate_tool_id</code></a></td>
<td>function</td>
<td><code>vllm_mlx.tool_parsers.gemma4_tool_parser.generate_tool_id() -&gt; str</code></td>
<td>Generate a unique tool call ID.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/tool_parsers/gemma4_tool_parser.py#L278-L280">#L278-L280</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.tool_parsers.get_parser_stop_tokens function vllm_mlx.tool_parsers.get_parser_stop_tokens(parser_name: str | none, user_stops: list[str] | none) -&gt; list[str] merge user-supplied stops with parser-declared extras (deduped).">
<td><a href="../api/vllm_mlx/tool_parsers/#contract-vllm_mlx.tool_parsers.get_parser_stop_tokens"><code>vllm_mlx.tool_parsers.get_parser_stop_tokens</code></a></td>
<td>function</td>
<td><code>vllm_mlx.tool_parsers.get_parser_stop_tokens(parser_name: str | None, user_stops: list[str] | None) -&gt; list[str]</code></td>
<td>Merge user-supplied stops with parser-declared extras (deduped).</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/tool_parsers/__init__.py#L68-L88">#L68-L88</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.tool_parsers.glm47_tool_parser.generate_tool_id function vllm_mlx.tool_parsers.glm47_tool_parser.generate_tool_id() -&gt; str generate a unique tool call id.">
<td><a href="../api/vllm_mlx/tool_parsers/glm47_tool_parser/#contract-vllm_mlx.tool_parsers.glm47_tool_parser.generate_tool_id"><code>vllm_mlx.tool_parsers.glm47_tool_parser.generate_tool_id</code></a></td>
<td>function</td>
<td><code>vllm_mlx.tool_parsers.glm47_tool_parser.generate_tool_id() -&gt; str</code></td>
<td>Generate a unique tool call ID.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/tool_parsers/glm47_tool_parser.py#L22-L24">#L22-L24</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="class" data-symbol-search="vllm_mlx.tool_parsers.glm47_tool_parser.glm47toolparser class vllm_mlx.tool_parsers.glm47_tool_parser.glm47toolparser() tool call parser for glm-4.7 and glm-4.7-flash models.">
<td><a href="../api/vllm_mlx/tool_parsers/glm47_tool_parser/#contract-vllm_mlx.tool_parsers.glm47_tool_parser.Glm47ToolParser"><code>vllm_mlx.tool_parsers.glm47_tool_parser.Glm47ToolParser</code></a></td>
<td>class</td>
<td><code>vllm_mlx.tool_parsers.glm47_tool_parser.Glm47ToolParser()</code></td>
<td>Tool call parser for GLM-4.7 and GLM-4.7-Flash models.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/tool_parsers/glm47_tool_parser.py#L28-L184">#L28-L184</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.tool_parsers.glm47_tool_parser.glm47toolparser._deserialize method vllm_mlx.tool_parsers.glm47_tool_parser.glm47toolparser._deserialize(value: str) -&gt; any convert string value to appropriate python type.">
<td><a href="../api/vllm_mlx/tool_parsers/glm47_tool_parser/#contract-vllm_mlx.tool_parsers.glm47_tool_parser.Glm47ToolParser._deserialize"><code>vllm_mlx.tool_parsers.glm47_tool_parser.Glm47ToolParser._deserialize</code></a></td>
<td>method</td>
<td><code>vllm_mlx.tool_parsers.glm47_tool_parser.Glm47ToolParser._deserialize(value: str) -&gt; Any</code></td>
<td>Convert string value to appropriate Python type.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/tool_parsers/glm47_tool_parser.py#L57-L67">#L57-L67</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.tool_parsers.glm47_tool_parser.glm47toolparser._get_tool_names method vllm_mlx.tool_parsers.glm47_tool_parser.glm47toolparser._get_tool_names(request: dict[str, any] | none) -&gt; set[str] extract valid tool names from the request.">
<td><a href="../api/vllm_mlx/tool_parsers/glm47_tool_parser/#contract-vllm_mlx.tool_parsers.glm47_tool_parser.Glm47ToolParser._get_tool_names"><code>vllm_mlx.tool_parsers.glm47_tool_parser.Glm47ToolParser._get_tool_names</code></a></td>
<td>method</td>
<td><code>vllm_mlx.tool_parsers.glm47_tool_parser.Glm47ToolParser._get_tool_names(request: dict[str, Any] | None) -&gt; set[str]</code></td>
<td>Extract valid tool names from the request.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/tool_parsers/glm47_tool_parser.py#L69-L77">#L69-L77</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.tool_parsers.glm47_tool_parser.glm47toolparser.extract_tool_calls method vllm_mlx.tool_parsers.glm47_tool_parser.glm47toolparser.extract_tool_calls(model_output: str, request: dict[str, any] | none = none) -&gt; extractedtoolcallinformation extract tool calls from a complete glm-4.7 model response.">
<td><a href="../api/vllm_mlx/tool_parsers/glm47_tool_parser/#contract-vllm_mlx.tool_parsers.glm47_tool_parser.Glm47ToolParser.extract_tool_calls"><code>vllm_mlx.tool_parsers.glm47_tool_parser.Glm47ToolParser.extract_tool_calls</code></a></td>
<td>method</td>
<td><code>vllm_mlx.tool_parsers.glm47_tool_parser.Glm47ToolParser.extract_tool_calls(model_output: str, request: dict[str, Any] | None = None) -&gt; ExtractedToolCallInformation</code></td>
<td>Extract tool calls from a complete GLM-4.7 model response.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/tool_parsers/glm47_tool_parser.py#L79-L137">#L79-L137</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.tool_parsers.glm47_tool_parser.glm47toolparser.extract_tool_calls_streaming method vllm_mlx.tool_parsers.glm47_tool_parser.glm47toolparser.extract_tool_calls_streaming(previous_text: str, current_text: str, delta_text: str, previous_token_ids: sequence[int] | none = none, current_token_ids: sequence[int] | none = none, delta_token_ids: sequence[int] | none = none, request: dict[str, any] | none = none) -&gt; dict[str, any] | none extract tool calls from streaming glm-4.7 model output.">
<td><a href="../api/vllm_mlx/tool_parsers/glm47_tool_parser/#contract-vllm_mlx.tool_parsers.glm47_tool_parser.Glm47ToolParser.extract_tool_calls_streaming"><code>vllm_mlx.tool_parsers.glm47_tool_parser.Glm47ToolParser.extract_tool_calls_streaming</code></a></td>
<td>method</td>
<td><code>vllm_mlx.tool_parsers.glm47_tool_parser.Glm47ToolParser.extract_tool_calls_streaming(previous_text: str, current_text: str, delta_text: str, previous_token_ids: Sequence[int] | None = None, current_token_ids: Sequence[int] | None = None, delta_token_ids: Sequence[int] | None = None, request: dict[str, Any] | None = None) -&gt; dict[str, Any] | None</code></td>
<td>Extract tool calls from streaming GLM-4.7 model output.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/tool_parsers/glm47_tool_parser.py#L139-L184">#L139-L184</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.tool_parsers.granite_tool_parser.generate_tool_id function vllm_mlx.tool_parsers.granite_tool_parser.generate_tool_id() -&gt; str generate a unique tool call id.">
<td><a href="../api/vllm_mlx/tool_parsers/granite_tool_parser/#contract-vllm_mlx.tool_parsers.granite_tool_parser.generate_tool_id"><code>vllm_mlx.tool_parsers.granite_tool_parser.generate_tool_id</code></a></td>
<td>function</td>
<td><code>vllm_mlx.tool_parsers.granite_tool_parser.generate_tool_id() -&gt; str</code></td>
<td>Generate a unique tool call ID.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/tool_parsers/granite_tool_parser.py#L22-L24">#L22-L24</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="class" data-symbol-search="vllm_mlx.tool_parsers.granite_tool_parser.granitetoolparser class vllm_mlx.tool_parsers.granite_tool_parser.granitetoolparser() tool call parser for ibm granite models.">
<td><a href="../api/vllm_mlx/tool_parsers/granite_tool_parser/#contract-vllm_mlx.tool_parsers.granite_tool_parser.GraniteToolParser"><code>vllm_mlx.tool_parsers.granite_tool_parser.GraniteToolParser</code></a></td>
<td>class</td>
<td><code>vllm_mlx.tool_parsers.granite_tool_parser.GraniteToolParser()</code></td>
<td>Tool call parser for IBM Granite models.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/tool_parsers/granite_tool_parser.py#L28-L147">#L28-L147</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.tool_parsers.granite_tool_parser.granitetoolparser.extract_tool_calls method vllm_mlx.tool_parsers.granite_tool_parser.granitetoolparser.extract_tool_calls(model_output: str, request: dict[str, any] | none = none) -&gt; extractedtoolcallinformation extract tool calls from granite model output.">
<td><a href="../api/vllm_mlx/tool_parsers/granite_tool_parser/#contract-vllm_mlx.tool_parsers.granite_tool_parser.GraniteToolParser.extract_tool_calls"><code>vllm_mlx.tool_parsers.granite_tool_parser.GraniteToolParser.extract_tool_calls</code></a></td>
<td>method</td>
<td><code>vllm_mlx.tool_parsers.granite_tool_parser.GraniteToolParser.extract_tool_calls(model_output: str, request: dict[str, Any] | None = None) -&gt; ExtractedToolCallInformation</code></td>
<td>Extract tool calls from Granite model output.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/tool_parsers/granite_tool_parser.py#L47-L105">#L47-L105</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.tool_parsers.granite_tool_parser.granitetoolparser.extract_tool_calls_streaming method vllm_mlx.tool_parsers.granite_tool_parser.granitetoolparser.extract_tool_calls_streaming(previous_text: str, current_text: str, delta_text: str, previous_token_ids: sequence[int] | none = none, current_token_ids: sequence[int] | none = none, delta_token_ids: sequence[int] | none = none, request: dict[str, any] | none = none) -&gt; dict[str, any] | none extract tool calls from streaming granite model output.">
<td><a href="../api/vllm_mlx/tool_parsers/granite_tool_parser/#contract-vllm_mlx.tool_parsers.granite_tool_parser.GraniteToolParser.extract_tool_calls_streaming"><code>vllm_mlx.tool_parsers.granite_tool_parser.GraniteToolParser.extract_tool_calls_streaming</code></a></td>
<td>method</td>
<td><code>vllm_mlx.tool_parsers.granite_tool_parser.GraniteToolParser.extract_tool_calls_streaming(previous_text: str, current_text: str, delta_text: str, previous_token_ids: Sequence[int] | None = None, current_token_ids: Sequence[int] | None = None, delta_token_ids: Sequence[int] | None = None, request: dict[str, Any] | None = None) -&gt; dict[str, Any] | None</code></td>
<td>Extract tool calls from streaming Granite model output.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/tool_parsers/granite_tool_parser.py#L107-L147">#L107-L147</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.tool_parsers.harmony_tool_parser._generate_tool_id function vllm_mlx.tool_parsers.harmony_tool_parser._generate_tool_id() -&gt; str generate a unique tool call id.">
<td><a href="../api/vllm_mlx/tool_parsers/harmony_tool_parser/#contract-vllm_mlx.tool_parsers.harmony_tool_parser._generate_tool_id"><code>vllm_mlx.tool_parsers.harmony_tool_parser._generate_tool_id</code></a></td>
<td>function</td>
<td><code>vllm_mlx.tool_parsers.harmony_tool_parser._generate_tool_id() -&gt; str</code></td>
<td>Generate a unique tool call ID.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/tool_parsers/harmony_tool_parser.py#L32-L34">#L32-L34</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.tool_parsers.harmony_tool_parser._is_control_token function vllm_mlx.tool_parsers.harmony_tool_parser._is_control_token(text: str) -&gt; bool check if text is a harmony control token.">
<td><a href="../api/vllm_mlx/tool_parsers/harmony_tool_parser/#contract-vllm_mlx.tool_parsers.harmony_tool_parser._is_control_token"><code>vllm_mlx.tool_parsers.harmony_tool_parser._is_control_token</code></a></td>
<td>function</td>
<td><code>vllm_mlx.tool_parsers.harmony_tool_parser._is_control_token(text: str) -&gt; bool</code></td>
<td>Check if text is a Harmony control token.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/tool_parsers/harmony_tool_parser.py#L243-L253">#L243-L253</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.tool_parsers.harmony_tool_parser._strip_control_tokens function vllm_mlx.tool_parsers.harmony_tool_parser._strip_control_tokens(text: str) -&gt; str remove harmony control tokens from text.">
<td><a href="../api/vllm_mlx/tool_parsers/harmony_tool_parser/#contract-vllm_mlx.tool_parsers.harmony_tool_parser._strip_control_tokens"><code>vllm_mlx.tool_parsers.harmony_tool_parser._strip_control_tokens</code></a></td>
<td>function</td>
<td><code>vllm_mlx.tool_parsers.harmony_tool_parser._strip_control_tokens(text: str) -&gt; str</code></td>
<td>Remove Harmony control tokens from text.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/tool_parsers/harmony_tool_parser.py#L222-L240">#L222-L240</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="class" data-symbol-search="vllm_mlx.tool_parsers.harmony_tool_parser.harmonytoolparser class vllm_mlx.tool_parsers.harmony_tool_parser.harmonytoolparser() tool call parser for gpt-oss models using harmony format.">
<td><a href="../api/vllm_mlx/tool_parsers/harmony_tool_parser/#contract-vllm_mlx.tool_parsers.harmony_tool_parser.HarmonyToolParser"><code>vllm_mlx.tool_parsers.harmony_tool_parser.HarmonyToolParser</code></a></td>
<td>class</td>
<td><code>vllm_mlx.tool_parsers.harmony_tool_parser.HarmonyToolParser()</code></td>
<td>Tool call parser for GPT-OSS models using Harmony format.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/tool_parsers/harmony_tool_parser.py#L57-L219">#L57-L219</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.tool_parsers.harmony_tool_parser.harmonytoolparser.extract_tool_calls method vllm_mlx.tool_parsers.harmony_tool_parser.harmonytoolparser.extract_tool_calls(model_output: str, request: dict[str, any] | none = none) -&gt; extractedtoolcallinformation extract tool calls from a complete harmony model response.">
<td><a href="../api/vllm_mlx/tool_parsers/harmony_tool_parser/#contract-vllm_mlx.tool_parsers.harmony_tool_parser.HarmonyToolParser.extract_tool_calls"><code>vllm_mlx.tool_parsers.harmony_tool_parser.HarmonyToolParser.extract_tool_calls</code></a></td>
<td>method</td>
<td><code>vllm_mlx.tool_parsers.harmony_tool_parser.HarmonyToolParser.extract_tool_calls(model_output: str, request: dict[str, Any] | None = None) -&gt; ExtractedToolCallInformation</code></td>
<td>Extract tool calls from a complete Harmony model response.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/tool_parsers/harmony_tool_parser.py#L71-L140">#L71-L140</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.tool_parsers.harmony_tool_parser.harmonytoolparser.extract_tool_calls_streaming method vllm_mlx.tool_parsers.harmony_tool_parser.harmonytoolparser.extract_tool_calls_streaming(previous_text: str, current_text: str, delta_text: str, previous_token_ids: sequence[int] | none = none, current_token_ids: sequence[int] | none = none, delta_token_ids: sequence[int] | none = none, request: dict[str, any] | none = none) -&gt; dict[str, any] | none extract tool calls from streaming harmony model output.">
<td><a href="../api/vllm_mlx/tool_parsers/harmony_tool_parser/#contract-vllm_mlx.tool_parsers.harmony_tool_parser.HarmonyToolParser.extract_tool_calls_streaming"><code>vllm_mlx.tool_parsers.harmony_tool_parser.HarmonyToolParser.extract_tool_calls_streaming</code></a></td>
<td>method</td>
<td><code>vllm_mlx.tool_parsers.harmony_tool_parser.HarmonyToolParser.extract_tool_calls_streaming(previous_text: str, current_text: str, delta_text: str, previous_token_ids: Sequence[int] | None = None, current_token_ids: Sequence[int] | None = None, delta_token_ids: Sequence[int] | None = None, request: dict[str, Any] | None = None) -&gt; dict[str, Any] | None</code></td>
<td>Extract tool calls from streaming Harmony model output.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/tool_parsers/harmony_tool_parser.py#L142-L214">#L142-L214</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.tool_parsers.harmony_tool_parser.harmonytoolparser.reset method vllm_mlx.tool_parsers.harmony_tool_parser.harmonytoolparser.reset() -&gt; none reset parser state for a new request.">
<td><a href="../api/vllm_mlx/tool_parsers/harmony_tool_parser/#contract-vllm_mlx.tool_parsers.harmony_tool_parser.HarmonyToolParser.reset"><code>vllm_mlx.tool_parsers.harmony_tool_parser.HarmonyToolParser.reset</code></a></td>
<td>method</td>
<td><code>vllm_mlx.tool_parsers.harmony_tool_parser.HarmonyToolParser.reset() -&gt; None</code></td>
<td>Reset parser state for a new request.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/tool_parsers/harmony_tool_parser.py#L216-L219">#L216-L219</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.tool_parsers.hermes_tool_parser._parse_param_value function vllm_mlx.tool_parsers.hermes_tool_parser._parse_param_value(val: str) -&gt; any parse a tool call parameter value, handling both json and python literals.">
<td><a href="../api/vllm_mlx/tool_parsers/hermes_tool_parser/#contract-vllm_mlx.tool_parsers.hermes_tool_parser._parse_param_value"><code>vllm_mlx.tool_parsers.hermes_tool_parser._parse_param_value</code></a></td>
<td>function</td>
<td><code>vllm_mlx.tool_parsers.hermes_tool_parser._parse_param_value(val: str) -&gt; Any</code></td>
<td>Parse a tool call parameter value, handling both JSON and Python literals.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/tool_parsers/hermes_tool_parser.py#L27-L49">#L27-L49</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.tool_parsers.hermes_tool_parser.generate_tool_id function vllm_mlx.tool_parsers.hermes_tool_parser.generate_tool_id() -&gt; str generate a unique tool call id.">
<td><a href="../api/vllm_mlx/tool_parsers/hermes_tool_parser/#contract-vllm_mlx.tool_parsers.hermes_tool_parser.generate_tool_id"><code>vllm_mlx.tool_parsers.hermes_tool_parser.generate_tool_id</code></a></td>
<td>function</td>
<td><code>vllm_mlx.tool_parsers.hermes_tool_parser.generate_tool_id() -&gt; str</code></td>
<td>Generate a unique tool call ID.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/tool_parsers/hermes_tool_parser.py#L22-L24">#L22-L24</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="class" data-symbol-search="vllm_mlx.tool_parsers.hermes_tool_parser.hermestoolparser class vllm_mlx.tool_parsers.hermes_tool_parser.hermestoolparser() tool call parser for hermes/nous models.">
<td><a href="../api/vllm_mlx/tool_parsers/hermes_tool_parser/#contract-vllm_mlx.tool_parsers.hermes_tool_parser.HermesToolParser"><code>vllm_mlx.tool_parsers.hermes_tool_parser.HermesToolParser</code></a></td>
<td>class</td>
<td><code>vllm_mlx.tool_parsers.hermes_tool_parser.HermesToolParser()</code></td>
<td>Tool call parser for Hermes/Nous models.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/tool_parsers/hermes_tool_parser.py#L53-L336">#L53-L336</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.tool_parsers.hermes_tool_parser.hermestoolparser._format_streaming_tool_calls method vllm_mlx.tool_parsers.hermes_tool_parser.hermestoolparser._format_streaming_tool_calls(tool_calls: list[dict], start_index: int = 0) -&gt; dict[str, any] format tool calls for streaming response.">
<td><a href="../api/vllm_mlx/tool_parsers/hermes_tool_parser/#contract-vllm_mlx.tool_parsers.hermes_tool_parser.HermesToolParser._format_streaming_tool_calls"><code>vllm_mlx.tool_parsers.hermes_tool_parser.HermesToolParser._format_streaming_tool_calls</code></a></td>
<td>method</td>
<td><code>vllm_mlx.tool_parsers.hermes_tool_parser.HermesToolParser._format_streaming_tool_calls(tool_calls: list[dict], start_index: int = 0) -&gt; dict[str, Any]</code></td>
<td>Format tool calls for streaming response.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/tool_parsers/hermes_tool_parser.py#L248-L265">#L248-L265</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.tool_parsers.hermes_tool_parser.hermestoolparser.extract_tool_calls method vllm_mlx.tool_parsers.hermes_tool_parser.hermestoolparser.extract_tool_calls(model_output: str, request: dict[str, any] | none = none) -&gt; extractedtoolcallinformation extract tool calls from a complete hermes model response.">
<td><a href="../api/vllm_mlx/tool_parsers/hermes_tool_parser/#contract-vllm_mlx.tool_parsers.hermes_tool_parser.HermesToolParser.extract_tool_calls"><code>vllm_mlx.tool_parsers.hermes_tool_parser.HermesToolParser.extract_tool_calls</code></a></td>
<td>method</td>
<td><code>vllm_mlx.tool_parsers.hermes_tool_parser.HermesToolParser.extract_tool_calls(model_output: str, request: dict[str, Any] | None = None) -&gt; ExtractedToolCallInformation</code></td>
<td>Extract tool calls from a complete Hermes model response.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/tool_parsers/hermes_tool_parser.py#L92-L245">#L92-L245</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.tool_parsers.hermes_tool_parser.hermestoolparser.extract_tool_calls_streaming method vllm_mlx.tool_parsers.hermes_tool_parser.hermestoolparser.extract_tool_calls_streaming(previous_text: str, current_text: str, delta_text: str, previous_token_ids: sequence[int] | none = none, current_token_ids: sequence[int] | none = none, delta_token_ids: sequence[int] | none = none, request: dict[str, any] | none = none) -&gt; dict[str, any] | none extract tool calls from streaming hermes model output.">
<td><a href="../api/vllm_mlx/tool_parsers/hermes_tool_parser/#contract-vllm_mlx.tool_parsers.hermes_tool_parser.HermesToolParser.extract_tool_calls_streaming"><code>vllm_mlx.tool_parsers.hermes_tool_parser.HermesToolParser.extract_tool_calls_streaming</code></a></td>
<td>method</td>
<td><code>vllm_mlx.tool_parsers.hermes_tool_parser.HermesToolParser.extract_tool_calls_streaming(previous_text: str, current_text: str, delta_text: str, previous_token_ids: Sequence[int] | None = None, current_token_ids: Sequence[int] | None = None, delta_token_ids: Sequence[int] | None = None, request: dict[str, Any] | None = None) -&gt; dict[str, Any] | None</code></td>
<td>Extract tool calls from streaming Hermes model output.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/tool_parsers/hermes_tool_parser.py#L267-L336">#L267-L336</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.tool_parsers.kimi_tool_parser.generate_tool_id function vllm_mlx.tool_parsers.kimi_tool_parser.generate_tool_id() -&gt; str generate a unique tool call id.">
<td><a href="../api/vllm_mlx/tool_parsers/kimi_tool_parser/#contract-vllm_mlx.tool_parsers.kimi_tool_parser.generate_tool_id"><code>vllm_mlx.tool_parsers.kimi_tool_parser.generate_tool_id</code></a></td>
<td>function</td>
<td><code>vllm_mlx.tool_parsers.kimi_tool_parser.generate_tool_id() -&gt; str</code></td>
<td>Generate a unique tool call ID.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/tool_parsers/kimi_tool_parser.py#L23-L25">#L23-L25</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="class" data-symbol-search="vllm_mlx.tool_parsers.kimi_tool_parser.kimitoolparser class vllm_mlx.tool_parsers.kimi_tool_parser.kimitoolparser() tool call parser for kimi k2 and moonshot models.">
<td><a href="../api/vllm_mlx/tool_parsers/kimi_tool_parser/#contract-vllm_mlx.tool_parsers.kimi_tool_parser.KimiToolParser"><code>vllm_mlx.tool_parsers.kimi_tool_parser.KimiToolParser</code></a></td>
<td>class</td>
<td><code>vllm_mlx.tool_parsers.kimi_tool_parser.KimiToolParser()</code></td>
<td>Tool call parser for Kimi K2 and Moonshot models.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/tool_parsers/kimi_tool_parser.py#L29-L160">#L29-L160</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.tool_parsers.kimi_tool_parser.kimitoolparser._has_tool_section method vllm_mlx.tool_parsers.kimi_tool_parser.kimitoolparser._has_tool_section(text: str) -&gt; bool check if text contains tool section markers.">
<td><a href="../api/vllm_mlx/tool_parsers/kimi_tool_parser/#contract-vllm_mlx.tool_parsers.kimi_tool_parser.KimiToolParser._has_tool_section"><code>vllm_mlx.tool_parsers.kimi_tool_parser.KimiToolParser._has_tool_section</code></a></td>
<td>method</td>
<td><code>vllm_mlx.tool_parsers.kimi_tool_parser.KimiToolParser._has_tool_section(text: str) -&gt; bool</code></td>
<td>Check if text contains tool section markers.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/tool_parsers/kimi_tool_parser.py#L59-L65">#L59-L65</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.tool_parsers.kimi_tool_parser.kimitoolparser.extract_tool_calls method vllm_mlx.tool_parsers.kimi_tool_parser.kimitoolparser.extract_tool_calls(model_output: str, request: dict[str, any] | none = none) -&gt; extractedtoolcallinformation extract tool calls from kimi model output.">
<td><a href="../api/vllm_mlx/tool_parsers/kimi_tool_parser/#contract-vllm_mlx.tool_parsers.kimi_tool_parser.KimiToolParser.extract_tool_calls"><code>vllm_mlx.tool_parsers.kimi_tool_parser.KimiToolParser.extract_tool_calls</code></a></td>
<td>method</td>
<td><code>vllm_mlx.tool_parsers.kimi_tool_parser.KimiToolParser.extract_tool_calls(model_output: str, request: dict[str, Any] | None = None) -&gt; ExtractedToolCallInformation</code></td>
<td>Extract tool calls from Kimi model output.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/tool_parsers/kimi_tool_parser.py#L67-L124">#L67-L124</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.tool_parsers.kimi_tool_parser.kimitoolparser.extract_tool_calls_streaming method vllm_mlx.tool_parsers.kimi_tool_parser.kimitoolparser.extract_tool_calls_streaming(previous_text: str, current_text: str, delta_text: str, previous_token_ids: sequence[int] | none = none, current_token_ids: sequence[int] | none = none, delta_token_ids: sequence[int] | none = none, request: dict[str, any] | none = none) -&gt; dict[str, any] | none extract tool calls from streaming kimi model output.">
<td><a href="../api/vllm_mlx/tool_parsers/kimi_tool_parser/#contract-vllm_mlx.tool_parsers.kimi_tool_parser.KimiToolParser.extract_tool_calls_streaming"><code>vllm_mlx.tool_parsers.kimi_tool_parser.KimiToolParser.extract_tool_calls_streaming</code></a></td>
<td>method</td>
<td><code>vllm_mlx.tool_parsers.kimi_tool_parser.KimiToolParser.extract_tool_calls_streaming(previous_text: str, current_text: str, delta_text: str, previous_token_ids: Sequence[int] | None = None, current_token_ids: Sequence[int] | None = None, delta_token_ids: Sequence[int] | None = None, request: dict[str, Any] | None = None) -&gt; dict[str, Any] | None</code></td>
<td>Extract tool calls from streaming Kimi model output.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/tool_parsers/kimi_tool_parser.py#L126-L160">#L126-L160</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.tool_parsers.llama_tool_parser.generate_tool_id function vllm_mlx.tool_parsers.llama_tool_parser.generate_tool_id() -&gt; str generate a unique tool call id.">
<td><a href="../api/vllm_mlx/tool_parsers/llama_tool_parser/#contract-vllm_mlx.tool_parsers.llama_tool_parser.generate_tool_id"><code>vllm_mlx.tool_parsers.llama_tool_parser.generate_tool_id</code></a></td>
<td>function</td>
<td><code>vllm_mlx.tool_parsers.llama_tool_parser.generate_tool_id() -&gt; str</code></td>
<td>Generate a unique tool call ID.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/tool_parsers/llama_tool_parser.py#L22-L24">#L22-L24</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="class" data-symbol-search="vllm_mlx.tool_parsers.llama_tool_parser.llamatoolparser class vllm_mlx.tool_parsers.llama_tool_parser.llamatoolparser() tool call parser for llama models.">
<td><a href="../api/vllm_mlx/tool_parsers/llama_tool_parser/#contract-vllm_mlx.tool_parsers.llama_tool_parser.LlamaToolParser"><code>vllm_mlx.tool_parsers.llama_tool_parser.LlamaToolParser</code></a></td>
<td>class</td>
<td><code>vllm_mlx.tool_parsers.llama_tool_parser.LlamaToolParser()</code></td>
<td>Tool call parser for Llama models.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/tool_parsers/llama_tool_parser.py#L28-L128">#L28-L128</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.tool_parsers.llama_tool_parser.llamatoolparser.extract_tool_calls method vllm_mlx.tool_parsers.llama_tool_parser.llamatoolparser.extract_tool_calls(model_output: str, request: dict[str, any] | none = none) -&gt; extractedtoolcallinformation extract tool calls from a complete llama model response.">
<td><a href="../api/vllm_mlx/tool_parsers/llama_tool_parser/#contract-vllm_mlx.tool_parsers.llama_tool_parser.LlamaToolParser.extract_tool_calls"><code>vllm_mlx.tool_parsers.llama_tool_parser.LlamaToolParser.extract_tool_calls</code></a></td>
<td>method</td>
<td><code>vllm_mlx.tool_parsers.llama_tool_parser.LlamaToolParser.extract_tool_calls(model_output: str, request: dict[str, Any] | None = None) -&gt; ExtractedToolCallInformation</code></td>
<td>Extract tool calls from a complete Llama model response.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/tool_parsers/llama_tool_parser.py#L44-L90">#L44-L90</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.tool_parsers.llama_tool_parser.llamatoolparser.extract_tool_calls_streaming method vllm_mlx.tool_parsers.llama_tool_parser.llamatoolparser.extract_tool_calls_streaming(previous_text: str, current_text: str, delta_text: str, previous_token_ids: sequence[int] | none = none, current_token_ids: sequence[int] | none = none, delta_token_ids: sequence[int] | none = none, request: dict[str, any] | none = none) -&gt; dict[str, any] | none extract tool calls from streaming llama model output.">
<td><a href="../api/vllm_mlx/tool_parsers/llama_tool_parser/#contract-vllm_mlx.tool_parsers.llama_tool_parser.LlamaToolParser.extract_tool_calls_streaming"><code>vllm_mlx.tool_parsers.llama_tool_parser.LlamaToolParser.extract_tool_calls_streaming</code></a></td>
<td>method</td>
<td><code>vllm_mlx.tool_parsers.llama_tool_parser.LlamaToolParser.extract_tool_calls_streaming(previous_text: str, current_text: str, delta_text: str, previous_token_ids: Sequence[int] | None = None, current_token_ids: Sequence[int] | None = None, delta_token_ids: Sequence[int] | None = None, request: dict[str, Any] | None = None) -&gt; dict[str, Any] | None</code></td>
<td>Extract tool calls from streaming Llama model output.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/tool_parsers/llama_tool_parser.py#L92-L128">#L92-L128</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.tool_parsers.minimax_tool_parser.generate_tool_id function vllm_mlx.tool_parsers.minimax_tool_parser.generate_tool_id() -&gt; str return a short openai-compatible identifier for a parsed tool call.">
<td><a href="../api/vllm_mlx/tool_parsers/minimax_tool_parser/#contract-vllm_mlx.tool_parsers.minimax_tool_parser.generate_tool_id"><code>vllm_mlx.tool_parsers.minimax_tool_parser.generate_tool_id</code></a></td>
<td>function</td>
<td><code>vllm_mlx.tool_parsers.minimax_tool_parser.generate_tool_id() -&gt; str</code></td>
<td>Return a short OpenAI-compatible identifier for a parsed tool call.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/tool_parsers/minimax_tool_parser.py#L26-L29">#L26-L29</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="class" data-symbol-search="vllm_mlx.tool_parsers.minimax_tool_parser.minimaxtoolparser class vllm_mlx.tool_parsers.minimax_tool_parser.minimaxtoolparser() parser for minimax-m2 tool call format.">
<td><a href="../api/vllm_mlx/tool_parsers/minimax_tool_parser/#contract-vllm_mlx.tool_parsers.minimax_tool_parser.MiniMaxToolParser"><code>vllm_mlx.tool_parsers.minimax_tool_parser.MiniMaxToolParser</code></a></td>
<td>class</td>
<td><code>vllm_mlx.tool_parsers.minimax_tool_parser.MiniMaxToolParser()</code></td>
<td>Parser for MiniMax-M2 tool call format.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/tool_parsers/minimax_tool_parser.py#L33-L178">#L33-L178</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.tool_parsers.minimax_tool_parser.minimaxtoolparser._extract_invokes method vllm_mlx.tool_parsers.minimax_tool_parser.minimaxtoolparser._extract_invokes(text: str) -&gt; list[dict[str, any]] extract tool calls from invoke elements, with or without wrapper.">
<td><a href="../api/vllm_mlx/tool_parsers/minimax_tool_parser/#contract-vllm_mlx.tool_parsers.minimax_tool_parser.MiniMaxToolParser._extract_invokes"><code>vllm_mlx.tool_parsers.minimax_tool_parser.MiniMaxToolParser._extract_invokes</code></a></td>
<td>method</td>
<td><code>vllm_mlx.tool_parsers.minimax_tool_parser.MiniMaxToolParser._extract_invokes(text: str) -&gt; list[dict[str, Any]]</code></td>
<td>Extract tool calls from invoke elements, with or without wrapper.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/tool_parsers/minimax_tool_parser.py#L54-L78">#L54-L78</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.tool_parsers.minimax_tool_parser.minimaxtoolparser._has_tool_end method vllm_mlx.tool_parsers.minimax_tool_parser.minimaxtoolparser._has_tool_end(current: str, previous: str) -&gt; bool check if a tool call block just completed.">
<td><a href="../api/vllm_mlx/tool_parsers/minimax_tool_parser/#contract-vllm_mlx.tool_parsers.minimax_tool_parser.MiniMaxToolParser._has_tool_end"><code>vllm_mlx.tool_parsers.minimax_tool_parser.MiniMaxToolParser._has_tool_end</code></a></td>
<td>method</td>
<td><code>vllm_mlx.tool_parsers.minimax_tool_parser.MiniMaxToolParser._has_tool_end(current: str, previous: str) -&gt; bool</code></td>
<td>Check if a tool call block just completed.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/tool_parsers/minimax_tool_parser.py#L129-L140">#L129-L140</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.tool_parsers.minimax_tool_parser.minimaxtoolparser._has_tool_start method vllm_mlx.tool_parsers.minimax_tool_parser.minimaxtoolparser._has_tool_start(text: str) -&gt; bool check if text contains the start of a tool call block.">
<td><a href="../api/vllm_mlx/tool_parsers/minimax_tool_parser/#contract-vllm_mlx.tool_parsers.minimax_tool_parser.MiniMaxToolParser._has_tool_start"><code>vllm_mlx.tool_parsers.minimax_tool_parser.MiniMaxToolParser._has_tool_start</code></a></td>
<td>method</td>
<td><code>vllm_mlx.tool_parsers.minimax_tool_parser.MiniMaxToolParser._has_tool_start(text: str) -&gt; bool</code></td>
<td>Check if text contains the start of a tool call block.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/tool_parsers/minimax_tool_parser.py#L123-L127">#L123-L127</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.tool_parsers.minimax_tool_parser.minimaxtoolparser.extract_tool_calls method vllm_mlx.tool_parsers.minimax_tool_parser.minimaxtoolparser.extract_tool_calls(model_output: str, request: dict[str, any] | none = none) -&gt; extractedtoolcallinformation extract wrapped or bare minimax invoke elements from complete output.">
<td><a href="../api/vllm_mlx/tool_parsers/minimax_tool_parser/#contract-vllm_mlx.tool_parsers.minimax_tool_parser.MiniMaxToolParser.extract_tool_calls"><code>vllm_mlx.tool_parsers.minimax_tool_parser.MiniMaxToolParser.extract_tool_calls</code></a></td>
<td>method</td>
<td><code>vllm_mlx.tool_parsers.minimax_tool_parser.MiniMaxToolParser.extract_tool_calls(model_output: str, request: dict[str, Any] | None = None) -&gt; ExtractedToolCallInformation</code></td>
<td>Extract wrapped or bare MiniMax invoke elements from complete output.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/tool_parsers/minimax_tool_parser.py#L80-L121">#L80-L121</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.tool_parsers.minimax_tool_parser.minimaxtoolparser.extract_tool_calls_streaming method vllm_mlx.tool_parsers.minimax_tool_parser.minimaxtoolparser.extract_tool_calls_streaming(previous_text: str, current_text: str, delta_text: str, previous_token_ids: sequence[int] | none = none, current_token_ids: sequence[int] | none = none, delta_token_ids: sequence[int] | none = none, request: dict[str, any] | none = none) -&gt; dict[str, any] | none emit content deltas or a completed minimax tool-call delta.">
<td><a href="../api/vllm_mlx/tool_parsers/minimax_tool_parser/#contract-vllm_mlx.tool_parsers.minimax_tool_parser.MiniMaxToolParser.extract_tool_calls_streaming"><code>vllm_mlx.tool_parsers.minimax_tool_parser.MiniMaxToolParser.extract_tool_calls_streaming</code></a></td>
<td>method</td>
<td><code>vllm_mlx.tool_parsers.minimax_tool_parser.MiniMaxToolParser.extract_tool_calls_streaming(previous_text: str, current_text: str, delta_text: str, previous_token_ids: Sequence[int] | None = None, current_token_ids: Sequence[int] | None = None, delta_token_ids: Sequence[int] | None = None, request: dict[str, Any] | None = None) -&gt; dict[str, Any] | None</code></td>
<td>Emit content deltas or a completed MiniMax tool-call delta.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/tool_parsers/minimax_tool_parser.py#L142-L178">#L142-L178</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.tool_parsers.mistral_tool_parser._is_plain_tool_name function vllm_mlx.tool_parsers.mistral_tool_parser._is_plain_tool_name(name: str) -&gt; bool return true for names that are safe to dispatch as function calls.">
<td><a href="../api/vllm_mlx/tool_parsers/mistral_tool_parser/#contract-vllm_mlx.tool_parsers.mistral_tool_parser._is_plain_tool_name"><code>vllm_mlx.tool_parsers.mistral_tool_parser._is_plain_tool_name</code></a></td>
<td>function</td>
<td><code>vllm_mlx.tool_parsers.mistral_tool_parser._is_plain_tool_name(name: str) -&gt; bool</code></td>
<td>Return True for names that are safe to dispatch as function calls.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/tool_parsers/mistral_tool_parser.py#L43-L45">#L43-L45</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.tool_parsers.mistral_tool_parser.generate_mistral_tool_id function vllm_mlx.tool_parsers.mistral_tool_parser.generate_mistral_tool_id() -&gt; str generate a random mistral-compatible tool call id.">
<td><a href="../api/vllm_mlx/tool_parsers/mistral_tool_parser/#contract-vllm_mlx.tool_parsers.mistral_tool_parser.generate_mistral_tool_id"><code>vllm_mlx.tool_parsers.mistral_tool_parser.generate_mistral_tool_id</code></a></td>
<td>function</td>
<td><code>vllm_mlx.tool_parsers.mistral_tool_parser.generate_mistral_tool_id() -&gt; str</code></td>
<td>Generate a random Mistral-compatible tool call ID.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/tool_parsers/mistral_tool_parser.py#L34-L40">#L34-L40</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="class" data-symbol-search="vllm_mlx.tool_parsers.mistral_tool_parser.mistraltoolparser class vllm_mlx.tool_parsers.mistral_tool_parser.mistraltoolparser(tokenizer = none) tool call parser for mistral models.">
<td><a href="../api/vllm_mlx/tool_parsers/mistral_tool_parser/#contract-vllm_mlx.tool_parsers.mistral_tool_parser.MistralToolParser"><code>vllm_mlx.tool_parsers.mistral_tool_parser.MistralToolParser</code></a></td>
<td>class</td>
<td><code>vllm_mlx.tool_parsers.mistral_tool_parser.MistralToolParser(tokenizer = None)</code></td>
<td>Tool call parser for Mistral models.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/tool_parsers/mistral_tool_parser.py#L49-L512">#L49-L512</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.tool_parsers.mistral_tool_parser.mistraltoolparser.__init__ method vllm_mlx.tool_parsers.mistral_tool_parser.mistraltoolparser.__init__(tokenizer = none) -&gt; not annotated method `mistraltoolparser.__init__` updates `self.bot_token_id`, `self._args_started`, `self._args_in_string`, `self._args_escaped`; calls `super().__init__`, `super`, `self.vocab.get`.">
<td><a href="../api/vllm_mlx/tool_parsers/mistral_tool_parser/#contract-vllm_mlx.tool_parsers.mistral_tool_parser.MistralToolParser.__init__"><code>vllm_mlx.tool_parsers.mistral_tool_parser.MistralToolParser.__init__</code></a></td>
<td>method</td>
<td><code>vllm_mlx.tool_parsers.mistral_tool_parser.MistralToolParser.__init__(tokenizer = None) -&gt; not annotated</code></td>
<td>Method `MistralToolParser.__init__` updates `self.bot_token_id`, `self._args_started`, `self._args_in_string`, `self._args_escaped`; calls `super().__init__`, `super`, `self.vocab.get`.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/tool_parsers/mistral_tool_parser.py#L68-L90">#L68-L90</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.tool_parsers.mistral_tool_parser.mistraltoolparser._parse_streaming_tool_delta method vllm_mlx.tool_parsers.mistral_tool_parser.mistraltoolparser._parse_streaming_tool_delta(text: str) -&gt; dict[str, str] | none parse a streaming delta for tool call information.">
<td><a href="../api/vllm_mlx/tool_parsers/mistral_tool_parser/#contract-vllm_mlx.tool_parsers.mistral_tool_parser.MistralToolParser._parse_streaming_tool_delta"><code>vllm_mlx.tool_parsers.mistral_tool_parser.MistralToolParser._parse_streaming_tool_delta</code></a></td>
<td>method</td>
<td><code>vllm_mlx.tool_parsers.mistral_tool_parser.MistralToolParser._parse_streaming_tool_delta(text: str) -&gt; dict[str, str] | None</code></td>
<td>Parse a streaming delta for tool call information.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/tool_parsers/mistral_tool_parser.py#L455-L512">#L455-L512</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.tool_parsers.mistral_tool_parser.mistraltoolparser._scan_args_for_new_call method vllm_mlx.tool_parsers.mistral_tool_parser.mistraltoolparser._scan_args_for_new_call(text: str) -&gt; int scan an argument delta, updating the persistent json string state, and return the position of the first [tool_calls] marker that sits outside a string (a new call), or -1 when there is none.">
<td><a href="../api/vllm_mlx/tool_parsers/mistral_tool_parser/#contract-vllm_mlx.tool_parsers.mistral_tool_parser.MistralToolParser._scan_args_for_new_call"><code>vllm_mlx.tool_parsers.mistral_tool_parser.MistralToolParser._scan_args_for_new_call</code></a></td>
<td>method</td>
<td><code>vllm_mlx.tool_parsers.mistral_tool_parser.MistralToolParser._scan_args_for_new_call(text: str) -&gt; int</code></td>
<td>Scan an argument delta, updating the persistent JSON string state, and return the position of the first [TOOL_CALLS] marker that sits outside a string (a new call), or -1 when there is none.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/tool_parsers/mistral_tool_parser.py#L116-L146">#L116-L146</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.tool_parsers.mistral_tool_parser.mistraltoolparser._split_on_tool_call_markers method vllm_mlx.tool_parsers.mistral_tool_parser.mistraltoolparser._split_on_tool_call_markers(text: str) -&gt; list[str] split on [tool_calls] occurrences that are outside json strings.">
<td><a href="../api/vllm_mlx/tool_parsers/mistral_tool_parser/#contract-vllm_mlx.tool_parsers.mistral_tool_parser.MistralToolParser._split_on_tool_call_markers"><code>vllm_mlx.tool_parsers.mistral_tool_parser.MistralToolParser._split_on_tool_call_markers</code></a></td>
<td>method</td>
<td><code>vllm_mlx.tool_parsers.mistral_tool_parser.MistralToolParser._split_on_tool_call_markers(text: str) -&gt; list[str]</code></td>
<td>Split on [TOOL_CALLS] occurrences that are outside JSON strings.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/tool_parsers/mistral_tool_parser.py#L148-L192">#L148-L192</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.tool_parsers.mistral_tool_parser.mistraltoolparser._start_new_tool_call method vllm_mlx.tool_parsers.mistral_tool_parser.mistraltoolparser._start_new_tool_call() -&gt; none begin a new streaming tool call: bump the index and reset the per-call name/arguments and id state.">
<td><a href="../api/vllm_mlx/tool_parsers/mistral_tool_parser/#contract-vllm_mlx.tool_parsers.mistral_tool_parser.MistralToolParser._start_new_tool_call"><code>vllm_mlx.tool_parsers.mistral_tool_parser.MistralToolParser._start_new_tool_call</code></a></td>
<td>method</td>
<td><code>vllm_mlx.tool_parsers.mistral_tool_parser.MistralToolParser._start_new_tool_call() -&gt; None</code></td>
<td>Begin a new streaming tool call: bump the index and reset the per-call name/arguments and id state.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/tool_parsers/mistral_tool_parser.py#L104-L114">#L104-L114</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.tool_parsers.mistral_tool_parser.mistraltoolparser.extract_tool_calls method vllm_mlx.tool_parsers.mistral_tool_parser.mistraltoolparser.extract_tool_calls(model_output: str, request: dict[str, any] | none = none) -&gt; extractedtoolcallinformation extract tool calls from a complete mistral model response.">
<td><a href="../api/vllm_mlx/tool_parsers/mistral_tool_parser/#contract-vllm_mlx.tool_parsers.mistral_tool_parser.MistralToolParser.extract_tool_calls"><code>vllm_mlx.tool_parsers.mistral_tool_parser.MistralToolParser.extract_tool_calls</code></a></td>
<td>method</td>
<td><code>vllm_mlx.tool_parsers.mistral_tool_parser.MistralToolParser.extract_tool_calls(model_output: str, request: dict[str, Any] | None = None) -&gt; ExtractedToolCallInformation</code></td>
<td>Extract tool calls from a complete Mistral model response.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/tool_parsers/mistral_tool_parser.py#L194-L332">#L194-L332</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.tool_parsers.mistral_tool_parser.mistraltoolparser.extract_tool_calls_streaming method vllm_mlx.tool_parsers.mistral_tool_parser.mistraltoolparser.extract_tool_calls_streaming(previous_text: str, current_text: str, delta_text: str, previous_token_ids: sequence[int] | none = none, current_token_ids: sequence[int] | none = none, delta_token_ids: sequence[int] | none = none, request: dict[str, any] | none = none) -&gt; dict[str, any] | none extract tool calls from streaming mistral model output.">
<td><a href="../api/vllm_mlx/tool_parsers/mistral_tool_parser/#contract-vllm_mlx.tool_parsers.mistral_tool_parser.MistralToolParser.extract_tool_calls_streaming"><code>vllm_mlx.tool_parsers.mistral_tool_parser.MistralToolParser.extract_tool_calls_streaming</code></a></td>
<td>method</td>
<td><code>vllm_mlx.tool_parsers.mistral_tool_parser.MistralToolParser.extract_tool_calls_streaming(previous_text: str, current_text: str, delta_text: str, previous_token_ids: Sequence[int] | None = None, current_token_ids: Sequence[int] | None = None, delta_token_ids: Sequence[int] | None = None, request: dict[str, Any] | None = None) -&gt; dict[str, Any] | None</code></td>
<td>Extract tool calls from streaming Mistral model output.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/tool_parsers/mistral_tool_parser.py#L334-L453">#L334-L453</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.tool_parsers.mistral_tool_parser.mistraltoolparser.reset method vllm_mlx.tool_parsers.mistral_tool_parser.mistraltoolparser.reset() -&gt; none reset shared and mistral-specific streaming tool-call state.">
<td><a href="../api/vllm_mlx/tool_parsers/mistral_tool_parser/#contract-vllm_mlx.tool_parsers.mistral_tool_parser.MistralToolParser.reset"><code>vllm_mlx.tool_parsers.mistral_tool_parser.MistralToolParser.reset</code></a></td>
<td>method</td>
<td><code>vllm_mlx.tool_parsers.mistral_tool_parser.MistralToolParser.reset() -&gt; None</code></td>
<td>Reset shared and Mistral-specific streaming tool-call state.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/tool_parsers/mistral_tool_parser.py#L92-L102">#L92-L102</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.tool_parsers.nemotron_tool_parser.generate_tool_id function vllm_mlx.tool_parsers.nemotron_tool_parser.generate_tool_id() -&gt; str generate a unique tool call id.">
<td><a href="../api/vllm_mlx/tool_parsers/nemotron_tool_parser/#contract-vllm_mlx.tool_parsers.nemotron_tool_parser.generate_tool_id"><code>vllm_mlx.tool_parsers.nemotron_tool_parser.generate_tool_id</code></a></td>
<td>function</td>
<td><code>vllm_mlx.tool_parsers.nemotron_tool_parser.generate_tool_id() -&gt; str</code></td>
<td>Generate a unique tool call ID.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/tool_parsers/nemotron_tool_parser.py#L24-L26">#L24-L26</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="class" data-symbol-search="vllm_mlx.tool_parsers.nemotron_tool_parser.nemotrontoolparser class vllm_mlx.tool_parsers.nemotron_tool_parser.nemotrontoolparser() tool call parser for nvidia nemotron models.">
<td><a href="../api/vllm_mlx/tool_parsers/nemotron_tool_parser/#contract-vllm_mlx.tool_parsers.nemotron_tool_parser.NemotronToolParser"><code>vllm_mlx.tool_parsers.nemotron_tool_parser.NemotronToolParser</code></a></td>
<td>class</td>
<td><code>vllm_mlx.tool_parsers.nemotron_tool_parser.NemotronToolParser()</code></td>
<td>Tool call parser for NVIDIA Nemotron models.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/tool_parsers/nemotron_tool_parser.py#L30-L166">#L30-L166</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.tool_parsers.nemotron_tool_parser.nemotrontoolparser.extract_tool_calls method vllm_mlx.tool_parsers.nemotron_tool_parser.nemotrontoolparser.extract_tool_calls(model_output: str, request: dict[str, any] | none = none) -&gt; extractedtoolcallinformation extract tool calls from nemotron model output.">
<td><a href="../api/vllm_mlx/tool_parsers/nemotron_tool_parser/#contract-vllm_mlx.tool_parsers.nemotron_tool_parser.NemotronToolParser.extract_tool_calls"><code>vllm_mlx.tool_parsers.nemotron_tool_parser.NemotronToolParser.extract_tool_calls</code></a></td>
<td>method</td>
<td><code>vllm_mlx.tool_parsers.nemotron_tool_parser.NemotronToolParser.extract_tool_calls(model_output: str, request: dict[str, Any] | None = None) -&gt; ExtractedToolCallInformation</code></td>
<td>Extract tool calls from Nemotron model output.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/tool_parsers/nemotron_tool_parser.py#L55-L130">#L55-L130</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.tool_parsers.nemotron_tool_parser.nemotrontoolparser.extract_tool_calls_streaming method vllm_mlx.tool_parsers.nemotron_tool_parser.nemotrontoolparser.extract_tool_calls_streaming(previous_text: str, current_text: str, delta_text: str, previous_token_ids: sequence[int] | none = none, current_token_ids: sequence[int] | none = none, delta_token_ids: sequence[int] | none = none, request: dict[str, any] | none = none) -&gt; dict[str, any] | none extract tool calls from streaming nemotron model output.">
<td><a href="../api/vllm_mlx/tool_parsers/nemotron_tool_parser/#contract-vllm_mlx.tool_parsers.nemotron_tool_parser.NemotronToolParser.extract_tool_calls_streaming"><code>vllm_mlx.tool_parsers.nemotron_tool_parser.NemotronToolParser.extract_tool_calls_streaming</code></a></td>
<td>method</td>
<td><code>vllm_mlx.tool_parsers.nemotron_tool_parser.NemotronToolParser.extract_tool_calls_streaming(previous_text: str, current_text: str, delta_text: str, previous_token_ids: Sequence[int] | None = None, current_token_ids: Sequence[int] | None = None, delta_token_ids: Sequence[int] | None = None, request: dict[str, Any] | None = None) -&gt; dict[str, Any] | None</code></td>
<td>Extract tool calls from streaming Nemotron model output.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/tool_parsers/nemotron_tool_parser.py#L132-L166">#L132-L166</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.tool_parsers.poolside_v1_tool_parser._consume_stream_state function vllm_mlx.tool_parsers.poolside_v1_tool_parser._consume_stream_state(parser, pending: dict[int, dict[str, any]], valid_names: set[str], request: dict[str, any] | none) -&gt; tuple[bool, str] function `_consume_stream_state` calls `parser._consume_text_before_tool`, `parser._consume_tool_name`, `parser._consume_string_value`, `parser._consume_pending_key`; has 5 explicit return paths.">
<td><a href="../api/vllm_mlx/tool_parsers/poolside_v1_tool_parser/#contract-vllm_mlx.tool_parsers.poolside_v1_tool_parser._consume_stream_state"><code>vllm_mlx.tool_parsers.poolside_v1_tool_parser._consume_stream_state</code></a></td>
<td>function</td>
<td><code>vllm_mlx.tool_parsers.poolside_v1_tool_parser._consume_stream_state(parser, pending: dict[int, dict[str, Any]], valid_names: set[str], request: dict[str, Any] | None) -&gt; tuple[bool, str]</code></td>
<td>Function `_consume_stream_state` calls `parser._consume_text_before_tool`, `parser._consume_tool_name`, `parser._consume_string_value`, `parser._consume_pending_key`; has 5 explicit return paths.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/tool_parsers/poolside_v1_tool_parser.py#L16-L30">#L16-L30</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="class" data-symbol-search="vllm_mlx.tool_parsers.poolside_v1_tool_parser.poolsidev1toolparser class vllm_mlx.tool_parsers.poolside_v1_tool_parser.poolsidev1toolparser(tokenizer = none) parse laguna tool calls and stream schema-declared strings incrementally.">
<td><a href="../api/vllm_mlx/tool_parsers/poolside_v1_tool_parser/#contract-vllm_mlx.tool_parsers.poolside_v1_tool_parser.PoolsideV1ToolParser"><code>vllm_mlx.tool_parsers.poolside_v1_tool_parser.PoolsideV1ToolParser</code></a></td>
<td>class</td>
<td><code>vllm_mlx.tool_parsers.poolside_v1_tool_parser.PoolsideV1ToolParser(tokenizer = None)</code></td>
<td>Parse Laguna tool calls and stream schema-declared strings incrementally.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/tool_parsers/poolside_v1_tool_parser.py#L34-L362">#L34-L362</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.tool_parsers.poolside_v1_tool_parser.poolsidev1toolparser.__init__ method vllm_mlx.tool_parsers.poolside_v1_tool_parser.poolsidev1toolparser.__init__(tokenizer = none) -&gt; not annotated method `poolsidev1toolparser.__init__` calls `super().__init__`, `super`, `self.reset`.">
<td><a href="../api/vllm_mlx/tool_parsers/poolside_v1_tool_parser/#contract-vllm_mlx.tool_parsers.poolside_v1_tool_parser.PoolsideV1ToolParser.__init__"><code>vllm_mlx.tool_parsers.poolside_v1_tool_parser.PoolsideV1ToolParser.__init__</code></a></td>
<td>method</td>
<td><code>vllm_mlx.tool_parsers.poolside_v1_tool_parser.PoolsideV1ToolParser.__init__(tokenizer = None) -&gt; not annotated</code></td>
<td>Method `PoolsideV1ToolParser.__init__` calls `super().__init__`, `super`, `self.reset`.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/tool_parsers/poolside_v1_tool_parser.py#L45-L47">#L45-L47</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.tool_parsers.poolside_v1_tool_parser.poolsidev1toolparser._argument_prefix method vllm_mlx.tool_parsers.poolside_v1_tool_parser.poolsidev1toolparser._argument_prefix(key: str) -&gt; str | none method `poolsidev1toolparser._argument_prefix` calls `seen.add`, `json.dumps`; has 2 explicit return paths.">
<td><a href="../api/vllm_mlx/tool_parsers/poolside_v1_tool_parser/#contract-vllm_mlx.tool_parsers.poolside_v1_tool_parser.PoolsideV1ToolParser._argument_prefix"><code>vllm_mlx.tool_parsers.poolside_v1_tool_parser.PoolsideV1ToolParser._argument_prefix</code></a></td>
<td>method</td>
<td><code>vllm_mlx.tool_parsers.poolside_v1_tool_parser.PoolsideV1ToolParser._argument_prefix(key: str) -&gt; str | None</code></td>
<td>Method `PoolsideV1ToolParser._argument_prefix` calls `seen.add`, `json.dumps`; has 2 explicit return paths.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/tool_parsers/poolside_v1_tool_parser.py#L181-L188">#L181-L188</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.tool_parsers.poolside_v1_tool_parser.poolsidev1toolparser._begin_tool_call method vllm_mlx.tool_parsers.poolside_v1_tool_parser.poolsidev1toolparser._begin_tool_call() -&gt; none method `poolsidev1toolparser._begin_tool_call` updates `self.current_tool_id`, `self._in_tool_call`, `self._current_tool_name`, `self._pending_key`; calls `self._tool_ids.append`, `generate_tool_id`, `self._args_started.append`, `self._args_closed.append`.">
<td><a href="../api/vllm_mlx/tool_parsers/poolside_v1_tool_parser/#contract-vllm_mlx.tool_parsers.poolside_v1_tool_parser.PoolsideV1ToolParser._begin_tool_call"><code>vllm_mlx.tool_parsers.poolside_v1_tool_parser.PoolsideV1ToolParser._begin_tool_call</code></a></td>
<td>method</td>
<td><code>vllm_mlx.tool_parsers.poolside_v1_tool_parser.PoolsideV1ToolParser._begin_tool_call() -&gt; None</code></td>
<td>Method `PoolsideV1ToolParser._begin_tool_call` updates `self.current_tool_id`, `self._in_tool_call`, `self._current_tool_name`, `self._pending_key`; calls `self._tool_ids.append`, `generate_tool_id`, `self._args_started.append`, `self._args_closed.append`.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/tool_parsers/poolside_v1_tool_parser.py#L140-L150">#L140-L150</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.tool_parsers.poolside_v1_tool_parser.poolsidev1toolparser._close_arguments method vllm_mlx.tool_parsers.poolside_v1_tool_parser.poolsidev1toolparser._close_arguments() -&gt; str method `poolsidev1toolparser._close_arguments` has 2 explicit return paths.">
<td><a href="../api/vllm_mlx/tool_parsers/poolside_v1_tool_parser/#contract-vllm_mlx.tool_parsers.poolside_v1_tool_parser.PoolsideV1ToolParser._close_arguments"><code>vllm_mlx.tool_parsers.poolside_v1_tool_parser.PoolsideV1ToolParser._close_arguments</code></a></td>
<td>method</td>
<td><code>vllm_mlx.tool_parsers.poolside_v1_tool_parser.PoolsideV1ToolParser._close_arguments() -&gt; str</code></td>
<td>Method `PoolsideV1ToolParser._close_arguments` has 2 explicit return paths.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/tool_parsers/poolside_v1_tool_parser.py#L190-L194">#L190-L194</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.tool_parsers.poolside_v1_tool_parser.poolsidev1toolparser._consume_pending_key method vllm_mlx.tool_parsers.poolside_v1_tool_parser.poolsidev1toolparser._consume_pending_key(pending: dict[int, dict[str, any]], request: dict[str, any] | none) -&gt; bool consume the value for the currently buffered argument key.">
<td><a href="../api/vllm_mlx/tool_parsers/poolside_v1_tool_parser/#contract-vllm_mlx.tool_parsers.poolside_v1_tool_parser.PoolsideV1ToolParser._consume_pending_key"><code>vllm_mlx.tool_parsers.poolside_v1_tool_parser.PoolsideV1ToolParser._consume_pending_key</code></a></td>
<td>method</td>
<td><code>vllm_mlx.tool_parsers.poolside_v1_tool_parser.PoolsideV1ToolParser._consume_pending_key(pending: dict[int, dict[str, Any]], request: dict[str, Any] | None) -&gt; bool</code></td>
<td>Consume the value for the currently buffered argument key.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/tool_parsers/poolside_v1_tool_parser.py#L269-L305">#L269-L305</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.tool_parsers.poolside_v1_tool_parser.poolsidev1toolparser._consume_string_value method vllm_mlx.tool_parsers.poolside_v1_tool_parser.poolsidev1toolparser._consume_string_value(pending: dict[int, dict[str, any]]) -&gt; bool consume a string argument value, retaining incomplete suffixes.">
<td><a href="../api/vllm_mlx/tool_parsers/poolside_v1_tool_parser/#contract-vllm_mlx.tool_parsers.poolside_v1_tool_parser.PoolsideV1ToolParser._consume_string_value"><code>vllm_mlx.tool_parsers.poolside_v1_tool_parser.PoolsideV1ToolParser._consume_string_value</code></a></td>
<td>method</td>
<td><code>vllm_mlx.tool_parsers.poolside_v1_tool_parser.PoolsideV1ToolParser._consume_string_value(pending: dict[int, dict[str, Any]]) -&gt; bool</code></td>
<td>Consume a string argument value, retaining incomplete suffixes.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/tool_parsers/poolside_v1_tool_parser.py#L249-L267">#L249-L267</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.tool_parsers.poolside_v1_tool_parser.poolsidev1toolparser._consume_text_before_tool method vllm_mlx.tool_parsers.poolside_v1_tool_parser.poolsidev1toolparser._consume_text_before_tool() -&gt; tuple[bool, str] consume plain text or enter the next ``&lt;tool_call&gt;`` state.">
<td><a href="../api/vllm_mlx/tool_parsers/poolside_v1_tool_parser/#contract-vllm_mlx.tool_parsers.poolside_v1_tool_parser.PoolsideV1ToolParser._consume_text_before_tool"><code>vllm_mlx.tool_parsers.poolside_v1_tool_parser.PoolsideV1ToolParser._consume_text_before_tool</code></a></td>
<td>method</td>
<td><code>vllm_mlx.tool_parsers.poolside_v1_tool_parser.PoolsideV1ToolParser._consume_text_before_tool() -&gt; tuple[bool, str]</code></td>
<td>Consume plain text or enter the next ``&lt;tool_call&gt;`` state.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/tool_parsers/poolside_v1_tool_parser.py#L204-L214">#L204-L214</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.tool_parsers.poolside_v1_tool_parser.poolsidev1toolparser._consume_tool_body method vllm_mlx.tool_parsers.poolside_v1_tool_parser.poolsidev1toolparser._consume_tool_body(pending: dict[int, dict[str, any]]) -&gt; bool consume an argument key or close the current tool call.">
<td><a href="../api/vllm_mlx/tool_parsers/poolside_v1_tool_parser/#contract-vllm_mlx.tool_parsers.poolside_v1_tool_parser.PoolsideV1ToolParser._consume_tool_body"><code>vllm_mlx.tool_parsers.poolside_v1_tool_parser.PoolsideV1ToolParser._consume_tool_body</code></a></td>
<td>method</td>
<td><code>vllm_mlx.tool_parsers.poolside_v1_tool_parser.PoolsideV1ToolParser._consume_tool_body(pending: dict[int, dict[str, Any]]) -&gt; bool</code></td>
<td>Consume an argument key or close the current tool call.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/tool_parsers/poolside_v1_tool_parser.py#L307-L328">#L307-L328</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.tool_parsers.poolside_v1_tool_parser.poolsidev1toolparser._consume_tool_name method vllm_mlx.tool_parsers.poolside_v1_tool_parser.poolsidev1toolparser._consume_tool_name(pending: dict[int, dict[str, any]], valid_names: set[str]) -&gt; bool consume a tool name, or wait for enough input to identify it.">
<td><a href="../api/vllm_mlx/tool_parsers/poolside_v1_tool_parser/#contract-vllm_mlx.tool_parsers.poolside_v1_tool_parser.PoolsideV1ToolParser._consume_tool_name"><code>vllm_mlx.tool_parsers.poolside_v1_tool_parser.PoolsideV1ToolParser._consume_tool_name</code></a></td>
<td>method</td>
<td><code>vllm_mlx.tool_parsers.poolside_v1_tool_parser.PoolsideV1ToolParser._consume_tool_name(pending: dict[int, dict[str, Any]], valid_names: set[str]) -&gt; bool</code></td>
<td>Consume a tool name, or wait for enough input to identify it.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/tool_parsers/poolside_v1_tool_parser.py#L216-L247">#L216-L247</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.tool_parsers.poolside_v1_tool_parser.poolsidev1toolparser._delta method vllm_mlx.tool_parsers.poolside_v1_tool_parser.poolsidev1toolparser._delta(pending: dict[int, dict[str, any]], *, name: str | none = none, arguments: str = &#x27;&#x27;) -&gt; none method `poolsidev1toolparser._delta` calls `pending.setdefault`; returns `none`.">
<td><a href="../api/vllm_mlx/tool_parsers/poolside_v1_tool_parser/#contract-vllm_mlx.tool_parsers.poolside_v1_tool_parser.PoolsideV1ToolParser._delta"><code>vllm_mlx.tool_parsers.poolside_v1_tool_parser.PoolsideV1ToolParser._delta</code></a></td>
<td>method</td>
<td><code>vllm_mlx.tool_parsers.poolside_v1_tool_parser.PoolsideV1ToolParser._delta(pending: dict[int, dict[str, Any]], *, name: str | None = None, arguments: str = &#x27;&#x27;) -&gt; None</code></td>
<td>Method `PoolsideV1ToolParser._delta` calls `pending.setdefault`; returns `None`.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/tool_parsers/poolside_v1_tool_parser.py#L159-L179">#L159-L179</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.tool_parsers.poolside_v1_tool_parser.poolsidev1toolparser._discard_through_tool_end method vllm_mlx.tool_parsers.poolside_v1_tool_parser.poolsidev1toolparser._discard_through_tool_end() -&gt; bool method `poolsidev1toolparser._discard_through_tool_end` updates `self._buffer`; calls `self._buffer.find`, `len`, `self._finish_tool_call`; has 2 explicit return paths.">
<td><a href="../api/vllm_mlx/tool_parsers/poolside_v1_tool_parser/#contract-vllm_mlx.tool_parsers.poolside_v1_tool_parser.PoolsideV1ToolParser._discard_through_tool_end"><code>vllm_mlx.tool_parsers.poolside_v1_tool_parser.PoolsideV1ToolParser._discard_through_tool_end</code></a></td>
<td>method</td>
<td><code>vllm_mlx.tool_parsers.poolside_v1_tool_parser.PoolsideV1ToolParser._discard_through_tool_end() -&gt; bool</code></td>
<td>Method `PoolsideV1ToolParser._discard_through_tool_end` updates `self._buffer`; calls `self._buffer.find`, `len`, `self._finish_tool_call`; has 2 explicit return paths.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/tool_parsers/poolside_v1_tool_parser.py#L196-L202">#L196-L202</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.tool_parsers.poolside_v1_tool_parser.poolsidev1toolparser._escape_string_content method vllm_mlx.tool_parsers.poolside_v1_tool_parser.poolsidev1toolparser._escape_string_content(value: str) -&gt; str method `poolsidev1toolparser._escape_string_content` calls `json.dumps`; returns `json.dumps(value, ensure_ascii=false)[1:-1]`.">
<td><a href="../api/vllm_mlx/tool_parsers/poolside_v1_tool_parser/#contract-vllm_mlx.tool_parsers.poolside_v1_tool_parser.PoolsideV1ToolParser._escape_string_content"><code>vllm_mlx.tool_parsers.poolside_v1_tool_parser.PoolsideV1ToolParser._escape_string_content</code></a></td>
<td>method</td>
<td><code>vllm_mlx.tool_parsers.poolside_v1_tool_parser.PoolsideV1ToolParser._escape_string_content(value: str) -&gt; str</code></td>
<td>Method `PoolsideV1ToolParser._escape_string_content` calls `json.dumps`; returns `json.dumps(value, ensure_ascii=False)[1:-1]`.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/tool_parsers/poolside_v1_tool_parser.py#L88-L89">#L88-L89</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.tool_parsers.poolside_v1_tool_parser.poolsidev1toolparser._finish_tool_call method vllm_mlx.tool_parsers.poolside_v1_tool_parser.poolsidev1toolparser._finish_tool_call() -&gt; none method `poolsidev1toolparser._finish_tool_call` updates `self._in_tool_call`, `self._current_tool_name`, `self._pending_key`, `self._streaming_string_value`.">
<td><a href="../api/vllm_mlx/tool_parsers/poolside_v1_tool_parser/#contract-vllm_mlx.tool_parsers.poolside_v1_tool_parser.PoolsideV1ToolParser._finish_tool_call"><code>vllm_mlx.tool_parsers.poolside_v1_tool_parser.PoolsideV1ToolParser._finish_tool_call</code></a></td>
<td>method</td>
<td><code>vllm_mlx.tool_parsers.poolside_v1_tool_parser.PoolsideV1ToolParser._finish_tool_call() -&gt; None</code></td>
<td>Method `PoolsideV1ToolParser._finish_tool_call` updates `self._in_tool_call`, `self._current_tool_name`, `self._pending_key`, `self._streaming_string_value`.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/tool_parsers/poolside_v1_tool_parser.py#L152-L157">#L152-L157</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.tool_parsers.poolside_v1_tool_parser.poolsidev1toolparser._hold_partial_suffix method vllm_mlx.tool_parsers.poolside_v1_tool_parser.poolsidev1toolparser._hold_partial_suffix(buffer: str, marker: str) -&gt; tuple[str, str] method `poolsidev1toolparser._hold_partial_suffix` calls `range`, `min`, `len`, `buffer.endswith`; has 2 explicit return paths.">
<td><a href="../api/vllm_mlx/tool_parsers/poolside_v1_tool_parser/#contract-vllm_mlx.tool_parsers.poolside_v1_tool_parser.PoolsideV1ToolParser._hold_partial_suffix"><code>vllm_mlx.tool_parsers.poolside_v1_tool_parser.PoolsideV1ToolParser._hold_partial_suffix</code></a></td>
<td>method</td>
<td><code>vllm_mlx.tool_parsers.poolside_v1_tool_parser.PoolsideV1ToolParser._hold_partial_suffix(buffer: str, marker: str) -&gt; tuple[str, str]</code></td>
<td>Method `PoolsideV1ToolParser._hold_partial_suffix` calls `range`, `min`, `len`, `buffer.endswith`; has 2 explicit return paths.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/tool_parsers/poolside_v1_tool_parser.py#L92-L96">#L92-L96</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.tool_parsers.poolside_v1_tool_parser.poolsidev1toolparser._string_argument_names method vllm_mlx.tool_parsers.poolside_v1_tool_parser.poolsidev1toolparser._string_argument_names(request: dict[str, any] | none, tool_name: str) -&gt; set[str] method `poolsidev1toolparser._string_argument_names` calls `set`, `request.get`, `isinstance`, `tool.get`; has 2 explicit return paths.">
<td><a href="../api/vllm_mlx/tool_parsers/poolside_v1_tool_parser/#contract-vllm_mlx.tool_parsers.poolside_v1_tool_parser.PoolsideV1ToolParser._string_argument_names"><code>vllm_mlx.tool_parsers.poolside_v1_tool_parser.PoolsideV1ToolParser._string_argument_names</code></a></td>
<td>method</td>
<td><code>vllm_mlx.tool_parsers.poolside_v1_tool_parser.PoolsideV1ToolParser._string_argument_names(request: dict[str, Any] | None, tool_name: str) -&gt; set[str]</code></td>
<td>Method `PoolsideV1ToolParser._string_argument_names` calls `set`, `request.get`, `isinstance`, `tool.get`; has 2 explicit return paths.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/tool_parsers/poolside_v1_tool_parser.py#L65-L85">#L65-L85</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.tool_parsers.poolside_v1_tool_parser.poolsidev1toolparser.extract_tool_calls method vllm_mlx.tool_parsers.poolside_v1_tool_parser.poolsidev1toolparser.extract_tool_calls(model_output: str, request: dict[str, any] | none = none) -&gt; extractedtoolcallinformation extract complete laguna tool blocks and preserve remaining content.">
<td><a href="../api/vllm_mlx/tool_parsers/poolside_v1_tool_parser/#contract-vllm_mlx.tool_parsers.poolside_v1_tool_parser.PoolsideV1ToolParser.extract_tool_calls"><code>vllm_mlx.tool_parsers.poolside_v1_tool_parser.PoolsideV1ToolParser.extract_tool_calls</code></a></td>
<td>method</td>
<td><code>vllm_mlx.tool_parsers.poolside_v1_tool_parser.PoolsideV1ToolParser.extract_tool_calls(model_output: str, request: dict[str, Any] | None = None) -&gt; ExtractedToolCallInformation</code></td>
<td>Extract complete Laguna tool blocks and preserve remaining content.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/tool_parsers/poolside_v1_tool_parser.py#L98-L138">#L98-L138</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.tool_parsers.poolside_v1_tool_parser.poolsidev1toolparser.extract_tool_calls_streaming method vllm_mlx.tool_parsers.poolside_v1_tool_parser.poolsidev1toolparser.extract_tool_calls_streaming(previous_text: str, current_text: str, delta_text: str, previous_token_ids: sequence[int] | none = none, current_token_ids: sequence[int] | none = none, delta_token_ids: sequence[int] | none = none, request: dict[str, any] | none = none) -&gt; dict[str, any] | none incrementally emit laguna content and schema-aware tool arguments.">
<td><a href="../api/vllm_mlx/tool_parsers/poolside_v1_tool_parser/#contract-vllm_mlx.tool_parsers.poolside_v1_tool_parser.PoolsideV1ToolParser.extract_tool_calls_streaming"><code>vllm_mlx.tool_parsers.poolside_v1_tool_parser.PoolsideV1ToolParser.extract_tool_calls_streaming</code></a></td>
<td>method</td>
<td><code>vllm_mlx.tool_parsers.poolside_v1_tool_parser.PoolsideV1ToolParser.extract_tool_calls_streaming(previous_text: str, current_text: str, delta_text: str, previous_token_ids: Sequence[int] | None = None, current_token_ids: Sequence[int] | None = None, delta_token_ids: Sequence[int] | None = None, request: dict[str, Any] | None = None) -&gt; dict[str, Any] | None</code></td>
<td>Incrementally emit Laguna content and schema-aware tool arguments.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/tool_parsers/poolside_v1_tool_parser.py#L330-L362">#L330-L362</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.tool_parsers.poolside_v1_tool_parser.poolsidev1toolparser.reset method vllm_mlx.tool_parsers.poolside_v1_tool_parser.poolsidev1toolparser.reset() -&gt; none reset laguna parser buffers and per-call argument state.">
<td><a href="../api/vllm_mlx/tool_parsers/poolside_v1_tool_parser/#contract-vllm_mlx.tool_parsers.poolside_v1_tool_parser.PoolsideV1ToolParser.reset"><code>vllm_mlx.tool_parsers.poolside_v1_tool_parser.PoolsideV1ToolParser.reset</code></a></td>
<td>method</td>
<td><code>vllm_mlx.tool_parsers.poolside_v1_tool_parser.PoolsideV1ToolParser.reset() -&gt; None</code></td>
<td>Reset Laguna parser buffers and per-call argument state.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/tool_parsers/poolside_v1_tool_parser.py#L49-L62">#L49-L62</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="class" data-symbol-search="vllm_mlx.tool_parsers.qwen3_xml_tool_parser._functiondef class vllm_mlx.tool_parsers.qwen3_xml_tool_parser._functiondef(d: dict) wrap a function definition dict for attribute access.">
<td><a href="../api/vllm_mlx/tool_parsers/qwen3_xml_tool_parser/#contract-vllm_mlx.tool_parsers.qwen3_xml_tool_parser._FunctionDef"><code>vllm_mlx.tool_parsers.qwen3_xml_tool_parser._FunctionDef</code></a></td>
<td>class</td>
<td><code>vllm_mlx.tool_parsers.qwen3_xml_tool_parser._FunctionDef(d: dict)</code></td>
<td>Wrap a function definition dict for attribute access.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/tool_parsers/qwen3_xml_tool_parser.py#L85-L99">#L85-L99</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.tool_parsers.qwen3_xml_tool_parser._functiondef.__init__ method vllm_mlx.tool_parsers.qwen3_xml_tool_parser._functiondef.__init__(d: dict) -&gt; not annotated method `_functiondef.__init__` updates `self._d`.">
<td><a href="../api/vllm_mlx/tool_parsers/qwen3_xml_tool_parser/#contract-vllm_mlx.tool_parsers.qwen3_xml_tool_parser._FunctionDef.__init__"><code>vllm_mlx.tool_parsers.qwen3_xml_tool_parser._FunctionDef.__init__</code></a></td>
<td>method</td>
<td><code>vllm_mlx.tool_parsers.qwen3_xml_tool_parser._FunctionDef.__init__(d: dict) -&gt; not annotated</code></td>
<td>Method `_FunctionDef.__init__` updates `self._d`.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/tool_parsers/qwen3_xml_tool_parser.py#L90-L91">#L90-L91</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.tool_parsers.qwen3_xml_tool_parser._functiondef.name method vllm_mlx.tool_parsers.qwen3_xml_tool_parser._functiondef.name() -&gt; str method `_functiondef.name` calls `self._d.get`; returns `self._d.get(&#x27;name&#x27;, &#x27;&#x27;)`.">
<td><a href="../api/vllm_mlx/tool_parsers/qwen3_xml_tool_parser/#contract-vllm_mlx.tool_parsers.qwen3_xml_tool_parser._FunctionDef.name"><code>vllm_mlx.tool_parsers.qwen3_xml_tool_parser._FunctionDef.name</code></a></td>
<td>method</td>
<td><code>vllm_mlx.tool_parsers.qwen3_xml_tool_parser._FunctionDef.name() -&gt; str</code></td>
<td>Method `_FunctionDef.name` calls `self._d.get`; returns `self._d.get(&#x27;name&#x27;, &#x27;&#x27;)`.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/tool_parsers/qwen3_xml_tool_parser.py#L94-L95">#L94-L95</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.tool_parsers.qwen3_xml_tool_parser._functiondef.parameters method vllm_mlx.tool_parsers.qwen3_xml_tool_parser._functiondef.parameters() -&gt; dict method `_functiondef.parameters` calls `self._d.get`; returns `self._d.get(&#x27;parameters&#x27;, {})`.">
<td><a href="../api/vllm_mlx/tool_parsers/qwen3_xml_tool_parser/#contract-vllm_mlx.tool_parsers.qwen3_xml_tool_parser._FunctionDef.parameters"><code>vllm_mlx.tool_parsers.qwen3_xml_tool_parser._FunctionDef.parameters</code></a></td>
<td>method</td>
<td><code>vllm_mlx.tool_parsers.qwen3_xml_tool_parser._FunctionDef.parameters() -&gt; dict</code></td>
<td>Method `_FunctionDef.parameters` calls `self._d.get`; returns `self._d.get(&#x27;parameters&#x27;, {})`.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/tool_parsers/qwen3_xml_tool_parser.py#L98-L99">#L98-L99</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="class" data-symbol-search="vllm_mlx.tool_parsers.qwen3_xml_tool_parser._tooldef class vllm_mlx.tool_parsers.qwen3_xml_tool_parser._tooldef(d: dict) wrap a tool definition dict for attribute access.">
<td><a href="../api/vllm_mlx/tool_parsers/qwen3_xml_tool_parser/#contract-vllm_mlx.tool_parsers.qwen3_xml_tool_parser._ToolDef"><code>vllm_mlx.tool_parsers.qwen3_xml_tool_parser._ToolDef</code></a></td>
<td>class</td>
<td><code>vllm_mlx.tool_parsers.qwen3_xml_tool_parser._ToolDef(d: dict)</code></td>
<td>Wrap a tool definition dict for attribute access.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/tool_parsers/qwen3_xml_tool_parser.py#L102-L117">#L102-L117</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.tool_parsers.qwen3_xml_tool_parser._tooldef.__init__ method vllm_mlx.tool_parsers.qwen3_xml_tool_parser._tooldef.__init__(d: dict) -&gt; not annotated method `_tooldef.__init__` updates `self._d`, `self._func`; calls `_functiondef`, `d.get`.">
<td><a href="../api/vllm_mlx/tool_parsers/qwen3_xml_tool_parser/#contract-vllm_mlx.tool_parsers.qwen3_xml_tool_parser._ToolDef.__init__"><code>vllm_mlx.tool_parsers.qwen3_xml_tool_parser._ToolDef.__init__</code></a></td>
<td>method</td>
<td><code>vllm_mlx.tool_parsers.qwen3_xml_tool_parser._ToolDef.__init__(d: dict) -&gt; not annotated</code></td>
<td>Method `_ToolDef.__init__` updates `self._d`, `self._func`; calls `_FunctionDef`, `d.get`.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/tool_parsers/qwen3_xml_tool_parser.py#L107-L109">#L107-L109</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.tool_parsers.qwen3_xml_tool_parser._tooldef.function method vllm_mlx.tool_parsers.qwen3_xml_tool_parser._tooldef.function() -&gt; _functiondef method `_tooldef.function` returns `self._func`.">
<td><a href="../api/vllm_mlx/tool_parsers/qwen3_xml_tool_parser/#contract-vllm_mlx.tool_parsers.qwen3_xml_tool_parser._ToolDef.function"><code>vllm_mlx.tool_parsers.qwen3_xml_tool_parser._ToolDef.function</code></a></td>
<td>method</td>
<td><code>vllm_mlx.tool_parsers.qwen3_xml_tool_parser._ToolDef.function() -&gt; _FunctionDef</code></td>
<td>Method `_ToolDef.function` returns `self._func`.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/tool_parsers/qwen3_xml_tool_parser.py#L116-L117">#L116-L117</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.tool_parsers.qwen3_xml_tool_parser._tooldef.type method vllm_mlx.tool_parsers.qwen3_xml_tool_parser._tooldef.type() -&gt; str method `_tooldef.type` calls `self._d.get`; returns `self._d.get(&#x27;type&#x27;, &#x27;function&#x27;)`.">
<td><a href="../api/vllm_mlx/tool_parsers/qwen3_xml_tool_parser/#contract-vllm_mlx.tool_parsers.qwen3_xml_tool_parser._ToolDef.type"><code>vllm_mlx.tool_parsers.qwen3_xml_tool_parser._ToolDef.type</code></a></td>
<td>method</td>
<td><code>vllm_mlx.tool_parsers.qwen3_xml_tool_parser._ToolDef.type() -&gt; str</code></td>
<td>Method `_ToolDef.type` calls `self._d.get`; returns `self._d.get(&#x27;type&#x27;, &#x27;function&#x27;)`.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/tool_parsers/qwen3_xml_tool_parser.py#L112-L113">#L112-L113</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="class" data-symbol-search="vllm_mlx.tool_parsers.qwen3_xml_tool_parser.deltafunctioncall class vllm_mlx.tool_parsers.qwen3_xml_tool_parser.deltafunctioncall(name: optional[str] = none, arguments: str = &#x27;&#x27;) incremental function name and argument payload used by the xml parser.">
<td><a href="../api/vllm_mlx/tool_parsers/qwen3_xml_tool_parser/#contract-vllm_mlx.tool_parsers.qwen3_xml_tool_parser.DeltaFunctionCall"><code>vllm_mlx.tool_parsers.qwen3_xml_tool_parser.DeltaFunctionCall</code></a></td>
<td>class</td>
<td><code>vllm_mlx.tool_parsers.qwen3_xml_tool_parser.DeltaFunctionCall(name: Optional[str] = None, arguments: str = &#x27;&#x27;)</code></td>
<td>Incremental function name and argument payload used by the XML parser.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/tool_parsers/qwen3_xml_tool_parser.py#L54-L58">#L54-L58</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="class" data-symbol-search="vllm_mlx.tool_parsers.qwen3_xml_tool_parser.deltamessage class vllm_mlx.tool_parsers.qwen3_xml_tool_parser.deltamessage(content: optional[str] = none, tool_calls: optional[list[deltatoolcall]] = none, role: optional[str] = none, reasoning_content: optional[str] = none) incremental content, reasoning, and tool calls from the parser shim.">
<td><a href="../api/vllm_mlx/tool_parsers/qwen3_xml_tool_parser/#contract-vllm_mlx.tool_parsers.qwen3_xml_tool_parser.DeltaMessage"><code>vllm_mlx.tool_parsers.qwen3_xml_tool_parser.DeltaMessage</code></a></td>
<td>class</td>
<td><code>vllm_mlx.tool_parsers.qwen3_xml_tool_parser.DeltaMessage(content: Optional[str] = None, tool_calls: Optional[list[DeltaToolCall]] = None, role: Optional[str] = None, reasoning_content: Optional[str] = None)</code></td>
<td>Incremental content, reasoning, and tool calls from the parser shim.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/tool_parsers/qwen3_xml_tool_parser.py#L72-L78">#L72-L78</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="class" data-symbol-search="vllm_mlx.tool_parsers.qwen3_xml_tool_parser.deltatoolcall class vllm_mlx.tool_parsers.qwen3_xml_tool_parser.deltatoolcall(index: int = 0, id: optional[str] = none, type: str = &#x27;function&#x27;, function: optional[deltafunctioncall] = none) incremental indexed tool call produced by the xml parser shim.">
<td><a href="../api/vllm_mlx/tool_parsers/qwen3_xml_tool_parser/#contract-vllm_mlx.tool_parsers.qwen3_xml_tool_parser.DeltaToolCall"><code>vllm_mlx.tool_parsers.qwen3_xml_tool_parser.DeltaToolCall</code></a></td>
<td>class</td>
<td><code>vllm_mlx.tool_parsers.qwen3_xml_tool_parser.DeltaToolCall(index: int = 0, id: Optional[str] = None, type: str = &#x27;function&#x27;, function: Optional[DeltaFunctionCall] = None)</code></td>
<td>Incremental indexed tool call produced by the XML parser shim.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/tool_parsers/qwen3_xml_tool_parser.py#L62-L68">#L62-L68</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="class" data-symbol-search="vllm_mlx.tool_parsers.qwen3_xml_tool_parser.qwen3xmltoolparser class vllm_mlx.tool_parsers.qwen3_xml_tool_parser.qwen3xmltoolparser(tokenizer = none) xml tool call parser for qwen 3.5 models, adapted for vllm-mlx.">
<td><a href="../api/vllm_mlx/tool_parsers/qwen3_xml_tool_parser/#contract-vllm_mlx.tool_parsers.qwen3_xml_tool_parser.Qwen3XMLToolParser"><code>vllm_mlx.tool_parsers.qwen3_xml_tool_parser.Qwen3XMLToolParser</code></a></td>
<td>class</td>
<td><code>vllm_mlx.tool_parsers.qwen3_xml_tool_parser.Qwen3XMLToolParser(tokenizer = None)</code></td>
<td>XML tool call parser for Qwen 3.5 models, adapted for vllm-mlx.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/tool_parsers/qwen3_xml_tool_parser.py#L1442-L1559">#L1442-L1559</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.tool_parsers.qwen3_xml_tool_parser.qwen3xmltoolparser.__init__ method vllm_mlx.tool_parsers.qwen3_xml_tool_parser.qwen3xmltoolparser.__init__(tokenizer = none) -&gt; not annotated method `qwen3xmltoolparser.__init__` updates `self._xml_parser`; calls `super().__init__`, `super`, `streamingxmltoolcallparser`, `logger.info`.">
<td><a href="../api/vllm_mlx/tool_parsers/qwen3_xml_tool_parser/#contract-vllm_mlx.tool_parsers.qwen3_xml_tool_parser.Qwen3XMLToolParser.__init__"><code>vllm_mlx.tool_parsers.qwen3_xml_tool_parser.Qwen3XMLToolParser.__init__</code></a></td>
<td>method</td>
<td><code>vllm_mlx.tool_parsers.qwen3_xml_tool_parser.Qwen3XMLToolParser.__init__(tokenizer = None) -&gt; not annotated</code></td>
<td>Method `Qwen3XMLToolParser.__init__` updates `self._xml_parser`; calls `super().__init__`, `super`, `StreamingXMLToolCallParser`, `logger.info`.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/tool_parsers/qwen3_xml_tool_parser.py#L1454-L1460">#L1454-L1460</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.tool_parsers.qwen3_xml_tool_parser.qwen3xmltoolparser._wrap_tools method vllm_mlx.tool_parsers.qwen3_xml_tool_parser.qwen3xmltoolparser._wrap_tools(request: dict[str, any] | none) -&gt; list[_tooldef] | none convert tool definition dicts to _tooldef wrappers for attribute access.">
<td><a href="../api/vllm_mlx/tool_parsers/qwen3_xml_tool_parser/#contract-vllm_mlx.tool_parsers.qwen3_xml_tool_parser.Qwen3XMLToolParser._wrap_tools"><code>vllm_mlx.tool_parsers.qwen3_xml_tool_parser.Qwen3XMLToolParser._wrap_tools</code></a></td>
<td>method</td>
<td><code>vllm_mlx.tool_parsers.qwen3_xml_tool_parser.Qwen3XMLToolParser._wrap_tools(request: dict[str, Any] | None) -&gt; list[_ToolDef] | None</code></td>
<td>Convert tool definition dicts to _ToolDef wrappers for attribute access.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/tool_parsers/qwen3_xml_tool_parser.py#L1463-L1467">#L1463-L1467</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.tool_parsers.qwen3_xml_tool_parser.qwen3xmltoolparser.extract_tool_calls method vllm_mlx.tool_parsers.qwen3_xml_tool_parser.qwen3xmltoolparser.extract_tool_calls(model_output: str, request: dict[str, any] | none = none) -&gt; extractedtoolcallinformation extract tool calls from complete qwen 3.5 output.">
<td><a href="../api/vllm_mlx/tool_parsers/qwen3_xml_tool_parser/#contract-vllm_mlx.tool_parsers.qwen3_xml_tool_parser.Qwen3XMLToolParser.extract_tool_calls"><code>vllm_mlx.tool_parsers.qwen3_xml_tool_parser.Qwen3XMLToolParser.extract_tool_calls</code></a></td>
<td>method</td>
<td><code>vllm_mlx.tool_parsers.qwen3_xml_tool_parser.Qwen3XMLToolParser.extract_tool_calls(model_output: str, request: dict[str, Any] | None = None) -&gt; ExtractedToolCallInformation</code></td>
<td>Extract tool calls from complete Qwen 3.5 output.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/tool_parsers/qwen3_xml_tool_parser.py#L1469-L1507">#L1469-L1507</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.tool_parsers.qwen3_xml_tool_parser.qwen3xmltoolparser.extract_tool_calls_streaming method vllm_mlx.tool_parsers.qwen3_xml_tool_parser.qwen3xmltoolparser.extract_tool_calls_streaming(previous_text: str, current_text: str, delta_text: str, previous_token_ids: sequence[int] | none = none, current_token_ids: sequence[int] | none = none, delta_token_ids: sequence[int] | none = none, request: dict[str, any] | none = none) -&gt; dict[str, any] | none extract tool calls from streaming qwen 3.5 output.">
<td><a href="../api/vllm_mlx/tool_parsers/qwen3_xml_tool_parser/#contract-vllm_mlx.tool_parsers.qwen3_xml_tool_parser.Qwen3XMLToolParser.extract_tool_calls_streaming"><code>vllm_mlx.tool_parsers.qwen3_xml_tool_parser.Qwen3XMLToolParser.extract_tool_calls_streaming</code></a></td>
<td>method</td>
<td><code>vllm_mlx.tool_parsers.qwen3_xml_tool_parser.Qwen3XMLToolParser.extract_tool_calls_streaming(previous_text: str, current_text: str, delta_text: str, previous_token_ids: Sequence[int] | None = None, current_token_ids: Sequence[int] | None = None, delta_token_ids: Sequence[int] | None = None, request: dict[str, Any] | None = None) -&gt; dict[str, Any] | None</code></td>
<td>Extract tool calls from streaming Qwen 3.5 output.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/tool_parsers/qwen3_xml_tool_parser.py#L1509-L1559">#L1509-L1559</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="class" data-symbol-search="vllm_mlx.tool_parsers.qwen3_xml_tool_parser.streamingxmltoolcallparser class vllm_mlx.tool_parsers.qwen3_xml_tool_parser.streamingxmltoolcallparser() streaming xml parser for qwen 3.5 ``&lt;tool_call&gt;`` format.">
<td><a href="../api/vllm_mlx/tool_parsers/qwen3_xml_tool_parser/#contract-vllm_mlx.tool_parsers.qwen3_xml_tool_parser.StreamingXMLToolCallParser"><code>vllm_mlx.tool_parsers.qwen3_xml_tool_parser.StreamingXMLToolCallParser</code></a></td>
<td>class</td>
<td><code>vllm_mlx.tool_parsers.qwen3_xml_tool_parser.StreamingXMLToolCallParser()</code></td>
<td>Streaming XML parser for Qwen 3.5 ``&lt;tool_call&gt;`` format.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/tool_parsers/qwen3_xml_tool_parser.py#L126-L1427">#L126-L1427</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.tool_parsers.qwen3_xml_tool_parser.streamingxmltoolcallparser.__init__ method vllm_mlx.tool_parsers.qwen3_xml_tool_parser.streamingxmltoolcallparser.__init__() -&gt; not annotated method `streamingxmltoolcallparser.__init__` updates `self.tools`, `self.tool_call_start_token`, `self.tool_call_end_token`, `self.function_start_token`; calls `self.reset_streaming_state`.">
<td><a href="../api/vllm_mlx/tool_parsers/qwen3_xml_tool_parser/#contract-vllm_mlx.tool_parsers.qwen3_xml_tool_parser.StreamingXMLToolCallParser.__init__"><code>vllm_mlx.tool_parsers.qwen3_xml_tool_parser.StreamingXMLToolCallParser.__init__</code></a></td>
<td>method</td>
<td><code>vllm_mlx.tool_parsers.qwen3_xml_tool_parser.StreamingXMLToolCallParser.__init__() -&gt; not annotated</code></td>
<td>Method `StreamingXMLToolCallParser.__init__` updates `self.tools`, `self.tool_call_start_token`, `self.tool_call_end_token`, `self.function_start_token`; calls `self.reset_streaming_state`.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/tool_parsers/qwen3_xml_tool_parser.py#L146-L156">#L146-L156</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.tool_parsers.qwen3_xml_tool_parser.streamingxmltoolcallparser._abandon_pending_implicit_tool_call method vllm_mlx.tool_parsers.qwen3_xml_tool_parser.streamingxmltoolcallparser._abandon_pending_implicit_tool_call() -&gt; tuple[str, str] roll back a deferred bare-&lt;function=&gt; auto-open: prose followed.">
<td><a href="../api/vllm_mlx/tool_parsers/qwen3_xml_tool_parser/#contract-vllm_mlx.tool_parsers.qwen3_xml_tool_parser.StreamingXMLToolCallParser._abandon_pending_implicit_tool_call"><code>vllm_mlx.tool_parsers.qwen3_xml_tool_parser.StreamingXMLToolCallParser._abandon_pending_implicit_tool_call</code></a></td>
<td>method</td>
<td><code>vllm_mlx.tool_parsers.qwen3_xml_tool_parser.StreamingXMLToolCallParser._abandon_pending_implicit_tool_call() -&gt; tuple[str, str]</code></td>
<td>Roll back a deferred bare-&lt;function=&gt; auto-open: prose followed.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/tool_parsers/qwen3_xml_tool_parser.py#L902-L928">#L902-L928</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.tool_parsers.qwen3_xml_tool_parser.streamingxmltoolcallparser._auto_close_open_parameter_if_needed method vllm_mlx.tool_parsers.qwen3_xml_tool_parser.streamingxmltoolcallparser._auto_close_open_parameter_if_needed(incoming_tag: optional[str] = none) -&gt; not annotated before starting to process new elements, if there are unclosed tags from before, automatically complete their endings to the parser.">
<td><a href="../api/vllm_mlx/tool_parsers/qwen3_xml_tool_parser/#contract-vllm_mlx.tool_parsers.qwen3_xml_tool_parser.StreamingXMLToolCallParser._auto_close_open_parameter_if_needed"><code>vllm_mlx.tool_parsers.qwen3_xml_tool_parser.StreamingXMLToolCallParser._auto_close_open_parameter_if_needed</code></a></td>
<td>method</td>
<td><code>vllm_mlx.tool_parsers.qwen3_xml_tool_parser.StreamingXMLToolCallParser._auto_close_open_parameter_if_needed(incoming_tag: Optional[str] = None) -&gt; not annotated</code></td>
<td>Before starting to process new elements, if there are unclosed tags from before, automatically complete their endings to the parser.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/tool_parsers/qwen3_xml_tool_parser.py#L754-L777">#L754-L777</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.tool_parsers.qwen3_xml_tool_parser.streamingxmltoolcallparser._char_data method vllm_mlx.tool_parsers.qwen3_xml_tool_parser.streamingxmltoolcallparser._char_data(data: str) -&gt; not annotated handle xml character data events">
<td><a href="../api/vllm_mlx/tool_parsers/qwen3_xml_tool_parser/#contract-vllm_mlx.tool_parsers.qwen3_xml_tool_parser.StreamingXMLToolCallParser._char_data"><code>vllm_mlx.tool_parsers.qwen3_xml_tool_parser.StreamingXMLToolCallParser._char_data</code></a></td>
<td>method</td>
<td><code>vllm_mlx.tool_parsers.qwen3_xml_tool_parser.StreamingXMLToolCallParser._char_data(data: str) -&gt; not annotated</code></td>
<td>Handle XML character data events</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/tool_parsers/qwen3_xml_tool_parser.py#L930-L1025">#L930-L1025</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.tool_parsers.qwen3_xml_tool_parser.streamingxmltoolcallparser._convert_for_json_streaming method vllm_mlx.tool_parsers.qwen3_xml_tool_parser.streamingxmltoolcallparser._convert_for_json_streaming(converted_value: any, param_type: str) -&gt; str convert converted_value based on whether it&#x27;s empty and if type is string args: converted_value: converted value param_type: parameter type returns: converted string for streaming output">
<td><a href="../api/vllm_mlx/tool_parsers/qwen3_xml_tool_parser/#contract-vllm_mlx.tool_parsers.qwen3_xml_tool_parser.StreamingXMLToolCallParser._convert_for_json_streaming"><code>vllm_mlx.tool_parsers.qwen3_xml_tool_parser.StreamingXMLToolCallParser._convert_for_json_streaming</code></a></td>
<td>method</td>
<td><code>vllm_mlx.tool_parsers.qwen3_xml_tool_parser.StreamingXMLToolCallParser._convert_for_json_streaming(converted_value: Any, param_type: str) -&gt; str</code></td>
<td>Convert converted_value based on whether it&#x27;s empty and if type is string Args: converted_value: Converted value param_type: Parameter type Returns: Converted string for streaming output</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/tool_parsers/qwen3_xml_tool_parser.py#L1373-L1395">#L1373-L1395</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.tool_parsers.qwen3_xml_tool_parser.streamingxmltoolcallparser._convert_param_value method vllm_mlx.tool_parsers.qwen3_xml_tool_parser.streamingxmltoolcallparser._convert_param_value(param_value: str, param_type: str) -&gt; any convert value based on parameter type args: param_value: parameter value param_type: parameter type returns: converted value">
<td><a href="../api/vllm_mlx/tool_parsers/qwen3_xml_tool_parser/#contract-vllm_mlx.tool_parsers.qwen3_xml_tool_parser.StreamingXMLToolCallParser._convert_param_value"><code>vllm_mlx.tool_parsers.qwen3_xml_tool_parser.StreamingXMLToolCallParser._convert_param_value</code></a></td>
<td>method</td>
<td><code>vllm_mlx.tool_parsers.qwen3_xml_tool_parser.StreamingXMLToolCallParser._convert_param_value(param_value: str, param_type: str) -&gt; Any</code></td>
<td>Convert value based on parameter type Args: param_value: Parameter value param_type: Parameter type Returns: Converted value</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/tool_parsers/qwen3_xml_tool_parser.py#L1317-L1371">#L1317-L1371</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.tool_parsers.qwen3_xml_tool_parser.streamingxmltoolcallparser._emit_delta method vllm_mlx.tool_parsers.qwen3_xml_tool_parser.streamingxmltoolcallparser._emit_delta(delta: deltamessage) -&gt; not annotated emit delta response (streaming output)">
<td><a href="../api/vllm_mlx/tool_parsers/qwen3_xml_tool_parser/#contract-vllm_mlx.tool_parsers.qwen3_xml_tool_parser.StreamingXMLToolCallParser._emit_delta"><code>vllm_mlx.tool_parsers.qwen3_xml_tool_parser.StreamingXMLToolCallParser._emit_delta</code></a></td>
<td>method</td>
<td><code>vllm_mlx.tool_parsers.qwen3_xml_tool_parser.StreamingXMLToolCallParser._emit_delta(delta: DeltaMessage) -&gt; not annotated</code></td>
<td>Emit Delta response (streaming output)</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/tool_parsers/qwen3_xml_tool_parser.py#L750-L752">#L750-L752</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.tool_parsers.qwen3_xml_tool_parser.streamingxmltoolcallparser._end_element method vllm_mlx.tool_parsers.qwen3_xml_tool_parser.streamingxmltoolcallparser._end_element(name: str) -&gt; not annotated handle xml end element events">
<td><a href="../api/vllm_mlx/tool_parsers/qwen3_xml_tool_parser/#contract-vllm_mlx.tool_parsers.qwen3_xml_tool_parser.StreamingXMLToolCallParser._end_element"><code>vllm_mlx.tool_parsers.qwen3_xml_tool_parser.StreamingXMLToolCallParser._end_element</code></a></td>
<td>method</td>
<td><code>vllm_mlx.tool_parsers.qwen3_xml_tool_parser.StreamingXMLToolCallParser._end_element(name: str) -&gt; not annotated</code></td>
<td>Handle XML end element events</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/tool_parsers/qwen3_xml_tool_parser.py#L1027-L1206">#L1027-L1206</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.tool_parsers.qwen3_xml_tool_parser.streamingxmltoolcallparser._escape_xml_special_chars method vllm_mlx.tool_parsers.qwen3_xml_tool_parser.streamingxmltoolcallparser._escape_xml_special_chars(text: str) -&gt; str escape xml special characters args: text: original text returns: escaped text">
<td><a href="../api/vllm_mlx/tool_parsers/qwen3_xml_tool_parser/#contract-vllm_mlx.tool_parsers.qwen3_xml_tool_parser.StreamingXMLToolCallParser._escape_xml_special_chars"><code>vllm_mlx.tool_parsers.qwen3_xml_tool_parser.StreamingXMLToolCallParser._escape_xml_special_chars</code></a></td>
<td>method</td>
<td><code>vllm_mlx.tool_parsers.qwen3_xml_tool_parser.StreamingXMLToolCallParser._escape_xml_special_chars(text: str) -&gt; str</code></td>
<td>Escape XML special characters Args: text: Original text Returns: Escaped text</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/tool_parsers/qwen3_xml_tool_parser.py#L332-L351">#L332-L351</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.tool_parsers.qwen3_xml_tool_parser.streamingxmltoolcallparser._extract_function_name method vllm_mlx.tool_parsers.qwen3_xml_tool_parser.streamingxmltoolcallparser._extract_function_name(name: str, attrs: dict[str, str]) -&gt; optional[str] extract function name from various formats">
<td><a href="../api/vllm_mlx/tool_parsers/qwen3_xml_tool_parser/#contract-vllm_mlx.tool_parsers.qwen3_xml_tool_parser.StreamingXMLToolCallParser._extract_function_name"><code>vllm_mlx.tool_parsers.qwen3_xml_tool_parser.StreamingXMLToolCallParser._extract_function_name</code></a></td>
<td>method</td>
<td><code>vllm_mlx.tool_parsers.qwen3_xml_tool_parser.StreamingXMLToolCallParser._extract_function_name(name: str, attrs: dict[str, str]) -&gt; Optional[str]</code></td>
<td>Extract function name from various formats</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/tool_parsers/qwen3_xml_tool_parser.py#L1223-L1233">#L1223-L1233</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.tool_parsers.qwen3_xml_tool_parser.streamingxmltoolcallparser._extract_parameter_name method vllm_mlx.tool_parsers.qwen3_xml_tool_parser.streamingxmltoolcallparser._extract_parameter_name(name: str, attrs: dict[str, str]) -&gt; optional[str] extract parameter name from various formats">
<td><a href="../api/vllm_mlx/tool_parsers/qwen3_xml_tool_parser/#contract-vllm_mlx.tool_parsers.qwen3_xml_tool_parser.StreamingXMLToolCallParser._extract_parameter_name"><code>vllm_mlx.tool_parsers.qwen3_xml_tool_parser.StreamingXMLToolCallParser._extract_parameter_name</code></a></td>
<td>method</td>
<td><code>vllm_mlx.tool_parsers.qwen3_xml_tool_parser.StreamingXMLToolCallParser._extract_parameter_name(name: str, attrs: dict[str, str]) -&gt; Optional[str]</code></td>
<td>Extract parameter name from various formats</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/tool_parsers/qwen3_xml_tool_parser.py#L1235-L1247">#L1235-L1247</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.tool_parsers.qwen3_xml_tool_parser.streamingxmltoolcallparser._find_next_complete_element method vllm_mlx.tool_parsers.qwen3_xml_tool_parser.streamingxmltoolcallparser._find_next_complete_element(start_pos: int) -&gt; tuple[optional[str], int] find next complete xml element from specified position args: start_pos: position to start searching returns: (complete element string, element end position), returns (none, start_pos) if no complete element found">
<td><a href="../api/vllm_mlx/tool_parsers/qwen3_xml_tool_parser/#contract-vllm_mlx.tool_parsers.qwen3_xml_tool_parser.StreamingXMLToolCallParser._find_next_complete_element"><code>vllm_mlx.tool_parsers.qwen3_xml_tool_parser.StreamingXMLToolCallParser._find_next_complete_element</code></a></td>
<td>method</td>
<td><code>vllm_mlx.tool_parsers.qwen3_xml_tool_parser.StreamingXMLToolCallParser._find_next_complete_element(start_pos: int) -&gt; tuple[Optional[str], int]</code></td>
<td>Find next complete XML element from specified position Args: start_pos: Position to start searching Returns: (Complete element string, element end position), returns (None, start_pos) if no complete element found</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/tool_parsers/qwen3_xml_tool_parser.py#L503-L569">#L503-L569</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.tool_parsers.qwen3_xml_tool_parser.streamingxmltoolcallparser._flush_pending_implicit_delta method vllm_mlx.tool_parsers.qwen3_xml_tool_parser.streamingxmltoolcallparser._flush_pending_implicit_delta() -&gt; none emit a deferred bare-&lt;function=&gt; delta now that the call is confirmed.">
<td><a href="../api/vllm_mlx/tool_parsers/qwen3_xml_tool_parser/#contract-vllm_mlx.tool_parsers.qwen3_xml_tool_parser.StreamingXMLToolCallParser._flush_pending_implicit_delta"><code>vllm_mlx.tool_parsers.qwen3_xml_tool_parser.StreamingXMLToolCallParser._flush_pending_implicit_delta</code></a></td>
<td>method</td>
<td><code>vllm_mlx.tool_parsers.qwen3_xml_tool_parser.StreamingXMLToolCallParser._flush_pending_implicit_delta() -&gt; None</code></td>
<td>Emit a deferred bare-&lt;function=&gt; delta now that the call is confirmed.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/tool_parsers/qwen3_xml_tool_parser.py#L890-L900">#L890-L900</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.tool_parsers.qwen3_xml_tool_parser.streamingxmltoolcallparser._get_next_call_id method vllm_mlx.tool_parsers.qwen3_xml_tool_parser.streamingxmltoolcallparser._get_next_call_id() -&gt; not annotated generate unique call id">
<td><a href="../api/vllm_mlx/tool_parsers/qwen3_xml_tool_parser/#contract-vllm_mlx.tool_parsers.qwen3_xml_tool_parser.StreamingXMLToolCallParser._get_next_call_id"><code>vllm_mlx.tool_parsers.qwen3_xml_tool_parser.StreamingXMLToolCallParser._get_next_call_id</code></a></td>
<td>method</td>
<td><code>vllm_mlx.tool_parsers.qwen3_xml_tool_parser.StreamingXMLToolCallParser._get_next_call_id() -&gt; not annotated</code></td>
<td>Generate unique call ID</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/tool_parsers/qwen3_xml_tool_parser.py#L1219-L1221">#L1219-L1221</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.tool_parsers.qwen3_xml_tool_parser.streamingxmltoolcallparser._get_param_type method vllm_mlx.tool_parsers.qwen3_xml_tool_parser.streamingxmltoolcallparser._get_param_type(param_name: str) -&gt; str get parameter type based on tool configuration, defaults to string args: param_name: parameter name returns: parameter type">
<td><a href="../api/vllm_mlx/tool_parsers/qwen3_xml_tool_parser/#contract-vllm_mlx.tool_parsers.qwen3_xml_tool_parser.StreamingXMLToolCallParser._get_param_type"><code>vllm_mlx.tool_parsers.qwen3_xml_tool_parser.StreamingXMLToolCallParser._get_param_type</code></a></td>
<td>method</td>
<td><code>vllm_mlx.tool_parsers.qwen3_xml_tool_parser.StreamingXMLToolCallParser._get_param_type(param_name: str) -&gt; str</code></td>
<td>Get parameter type based on tool configuration, defaults to string Args: param_name: Parameter name Returns: Parameter type</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/tool_parsers/qwen3_xml_tool_parser.py#L1249-L1287">#L1249-L1287</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.tool_parsers.qwen3_xml_tool_parser.streamingxmltoolcallparser._looks_like_partial_tool_open method vllm_mlx.tool_parsers.qwen3_xml_tool_parser.streamingxmltoolcallparser._looks_like_partial_tool_open(fragment: str) -&gt; bool true if `fragment` could complete into a tool-related xml tag.">
<td><a href="../api/vllm_mlx/tool_parsers/qwen3_xml_tool_parser/#contract-vllm_mlx.tool_parsers.qwen3_xml_tool_parser.StreamingXMLToolCallParser._looks_like_partial_tool_open"><code>vllm_mlx.tool_parsers.qwen3_xml_tool_parser.StreamingXMLToolCallParser._looks_like_partial_tool_open</code></a></td>
<td>method</td>
<td><code>vllm_mlx.tool_parsers.qwen3_xml_tool_parser.StreamingXMLToolCallParser._looks_like_partial_tool_open(fragment: str) -&gt; bool</code></td>
<td>True if `fragment` could complete into a tool-related XML tag.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/tool_parsers/qwen3_xml_tool_parser.py#L488-L501">#L488-L501</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.tool_parsers.qwen3_xml_tool_parser.streamingxmltoolcallparser._merge_new_deltas_to_single_response method vllm_mlx.tool_parsers.qwen3_xml_tool_parser.streamingxmltoolcallparser._merge_new_deltas_to_single_response(initial_count: int) -&gt; deltamessage merge newly generated deltas from this processing into a single deltamessage args: initial_count: delta count before processing returns: merged deltamessage containing all newly generated delta information">
<td><a href="../api/vllm_mlx/tool_parsers/qwen3_xml_tool_parser/#contract-vllm_mlx.tool_parsers.qwen3_xml_tool_parser.StreamingXMLToolCallParser._merge_new_deltas_to_single_response"><code>vllm_mlx.tool_parsers.qwen3_xml_tool_parser.StreamingXMLToolCallParser._merge_new_deltas_to_single_response</code></a></td>
<td>method</td>
<td><code>vllm_mlx.tool_parsers.qwen3_xml_tool_parser.StreamingXMLToolCallParser._merge_new_deltas_to_single_response(initial_count: int) -&gt; DeltaMessage</code></td>
<td>Merge newly generated deltas from this processing into a single DeltaMessage Args: initial_count: Delta count before processing Returns: Merged DeltaMessage containing all newly generated delta information</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/tool_parsers/qwen3_xml_tool_parser.py#L571-L633">#L571-L633</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.tool_parsers.qwen3_xml_tool_parser.streamingxmltoolcallparser._preprocess_xml_chunk method vllm_mlx.tool_parsers.qwen3_xml_tool_parser.streamingxmltoolcallparser._preprocess_xml_chunk(chunk: str) -&gt; str preprocess xml chunk, handle non-standard formats, and escape special characters args: chunk: original xml chunk returns: processed xml chunk">
<td><a href="../api/vllm_mlx/tool_parsers/qwen3_xml_tool_parser/#contract-vllm_mlx.tool_parsers.qwen3_xml_tool_parser.StreamingXMLToolCallParser._preprocess_xml_chunk"><code>vllm_mlx.tool_parsers.qwen3_xml_tool_parser.StreamingXMLToolCallParser._preprocess_xml_chunk</code></a></td>
<td>method</td>
<td><code>vllm_mlx.tool_parsers.qwen3_xml_tool_parser.StreamingXMLToolCallParser._preprocess_xml_chunk(chunk: str) -&gt; str</code></td>
<td>Preprocess XML chunk, handle non-standard formats, and escape special characters Args: chunk: Original XML chunk Returns: Processed XML chunk</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/tool_parsers/qwen3_xml_tool_parser.py#L635-L748">#L635-L748</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.tool_parsers.qwen3_xml_tool_parser.streamingxmltoolcallparser._process_complete_xml_elements method vllm_mlx.tool_parsers.qwen3_xml_tool_parser.streamingxmltoolcallparser._process_complete_xml_elements() -&gt; bool process complete xml elements in buffer returns: bool: whether complete elements were found and processed">
<td><a href="../api/vllm_mlx/tool_parsers/qwen3_xml_tool_parser/#contract-vllm_mlx.tool_parsers.qwen3_xml_tool_parser.StreamingXMLToolCallParser._process_complete_xml_elements"><code>vllm_mlx.tool_parsers.qwen3_xml_tool_parser.StreamingXMLToolCallParser._process_complete_xml_elements</code></a></td>
<td>method</td>
<td><code>vllm_mlx.tool_parsers.qwen3_xml_tool_parser.StreamingXMLToolCallParser._process_complete_xml_elements() -&gt; bool</code></td>
<td>Process complete XML elements in buffer Returns: bool: Whether complete elements were found and processed</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/tool_parsers/qwen3_xml_tool_parser.py#L353-L438">#L353-L438</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.tool_parsers.qwen3_xml_tool_parser.streamingxmltoolcallparser._reset_xml_parser_after_tool_call method vllm_mlx.tool_parsers.qwen3_xml_tool_parser.streamingxmltoolcallparser._reset_xml_parser_after_tool_call() -&gt; not annotated each tool_call is treated as a separate xml document, so we need to reset the parser after each tool_call.">
<td><a href="../api/vllm_mlx/tool_parsers/qwen3_xml_tool_parser/#contract-vllm_mlx.tool_parsers.qwen3_xml_tool_parser.StreamingXMLToolCallParser._reset_xml_parser_after_tool_call"><code>vllm_mlx.tool_parsers.qwen3_xml_tool_parser.StreamingXMLToolCallParser._reset_xml_parser_after_tool_call</code></a></td>
<td>method</td>
<td><code>vllm_mlx.tool_parsers.qwen3_xml_tool_parser.StreamingXMLToolCallParser._reset_xml_parser_after_tool_call() -&gt; not annotated</code></td>
<td>Each tool_call is treated as a separate XML document, so we need to reset the parser after each tool_call.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/tool_parsers/qwen3_xml_tool_parser.py#L1397-L1427">#L1397-L1427</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.tool_parsers.qwen3_xml_tool_parser.streamingxmltoolcallparser._should_skip_element method vllm_mlx.tool_parsers.qwen3_xml_tool_parser.streamingxmltoolcallparser._should_skip_element(element: str) -&gt; bool determine whether an element should be skipped args: element: element to evaluate returns: bool: true means should skip, false means should process">
<td><a href="../api/vllm_mlx/tool_parsers/qwen3_xml_tool_parser/#contract-vllm_mlx.tool_parsers.qwen3_xml_tool_parser.StreamingXMLToolCallParser._should_skip_element"><code>vllm_mlx.tool_parsers.qwen3_xml_tool_parser.StreamingXMLToolCallParser._should_skip_element</code></a></td>
<td>method</td>
<td><code>vllm_mlx.tool_parsers.qwen3_xml_tool_parser.StreamingXMLToolCallParser._should_skip_element(element: str) -&gt; bool</code></td>
<td>Determine whether an element should be skipped Args: element: Element to evaluate Returns: bool: True means should skip, False means should process</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/tool_parsers/qwen3_xml_tool_parser.py#L440-L474">#L440-L474</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.tool_parsers.qwen3_xml_tool_parser.streamingxmltoolcallparser._start_element method vllm_mlx.tool_parsers.qwen3_xml_tool_parser.streamingxmltoolcallparser._start_element(name: str, attrs: dict[str, str]) -&gt; not annotated handle xml start element events">
<td><a href="../api/vllm_mlx/tool_parsers/qwen3_xml_tool_parser/#contract-vllm_mlx.tool_parsers.qwen3_xml_tool_parser.StreamingXMLToolCallParser._start_element"><code>vllm_mlx.tool_parsers.qwen3_xml_tool_parser.StreamingXMLToolCallParser._start_element</code></a></td>
<td>method</td>
<td><code>vllm_mlx.tool_parsers.qwen3_xml_tool_parser.StreamingXMLToolCallParser._start_element(name: str, attrs: dict[str, str]) -&gt; not annotated</code></td>
<td>Handle XML start element events</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/tool_parsers/qwen3_xml_tool_parser.py#L779-L888">#L779-L888</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.tool_parsers.qwen3_xml_tool_parser.streamingxmltoolcallparser.parse_single_streaming_chunks method vllm_mlx.tool_parsers.qwen3_xml_tool_parser.streamingxmltoolcallparser.parse_single_streaming_chunks(xml_chunk: str) -&gt; deltamessage parse single streaming xml chunk and return delta response this is the actual streaming interface that receives chunks one by one and maintains internal state args: xml_chunk: single xml chunk string returns: deltamessage: contains delta information generated by this chunk, returns empty response if no complete elements">
<td><a href="../api/vllm_mlx/tool_parsers/qwen3_xml_tool_parser/#contract-vllm_mlx.tool_parsers.qwen3_xml_tool_parser.StreamingXMLToolCallParser.parse_single_streaming_chunks"><code>vllm_mlx.tool_parsers.qwen3_xml_tool_parser.StreamingXMLToolCallParser.parse_single_streaming_chunks</code></a></td>
<td>method</td>
<td><code>vllm_mlx.tool_parsers.qwen3_xml_tool_parser.StreamingXMLToolCallParser.parse_single_streaming_chunks(xml_chunk: str) -&gt; DeltaMessage</code></td>
<td>Parse single streaming XML chunk and return Delta response This is the actual streaming interface that receives chunks one by one and maintains internal state Args: xml_chunk: Single XML chunk string Returns: DeltaMessage: Contains delta information generated by this chunk, returns empty response if no complete elements</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/tool_parsers/qwen3_xml_tool_parser.py#L210-L330">#L210-L330</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.tool_parsers.qwen3_xml_tool_parser.streamingxmltoolcallparser.repair_param_type method vllm_mlx.tool_parsers.qwen3_xml_tool_parser.streamingxmltoolcallparser.repair_param_type(param_type: str) -&gt; str repair unknown parameter types by treating them as string args: param_type: parameter type returns: repaired parameter type">
<td><a href="../api/vllm_mlx/tool_parsers/qwen3_xml_tool_parser/#contract-vllm_mlx.tool_parsers.qwen3_xml_tool_parser.StreamingXMLToolCallParser.repair_param_type"><code>vllm_mlx.tool_parsers.qwen3_xml_tool_parser.StreamingXMLToolCallParser.repair_param_type</code></a></td>
<td>method</td>
<td><code>vllm_mlx.tool_parsers.qwen3_xml_tool_parser.StreamingXMLToolCallParser.repair_param_type(param_type: str) -&gt; str</code></td>
<td>Repair unknown parameter types by treating them as string Args: param_type: Parameter type Returns: Repaired parameter type</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/tool_parsers/qwen3_xml_tool_parser.py#L1289-L1315">#L1289-L1315</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.tool_parsers.qwen3_xml_tool_parser.streamingxmltoolcallparser.reset_streaming_state method vllm_mlx.tool_parsers.qwen3_xml_tool_parser.streamingxmltoolcallparser.reset_streaming_state() -&gt; not annotated reset streaming parsing state">
<td><a href="../api/vllm_mlx/tool_parsers/qwen3_xml_tool_parser/#contract-vllm_mlx.tool_parsers.qwen3_xml_tool_parser.StreamingXMLToolCallParser.reset_streaming_state"><code>vllm_mlx.tool_parsers.qwen3_xml_tool_parser.StreamingXMLToolCallParser.reset_streaming_state</code></a></td>
<td>method</td>
<td><code>vllm_mlx.tool_parsers.qwen3_xml_tool_parser.StreamingXMLToolCallParser.reset_streaming_state() -&gt; not annotated</code></td>
<td>Reset streaming parsing state</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/tool_parsers/qwen3_xml_tool_parser.py#L158-L208">#L158-L208</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.tool_parsers.qwen3_xml_tool_parser.streamingxmltoolcallparser.set_tools method vllm_mlx.tool_parsers.qwen3_xml_tool_parser.streamingxmltoolcallparser.set_tools(tools: union[list[chatcompletiontoolsparam], none]) -&gt; not annotated set tool configuration information">
<td><a href="../api/vllm_mlx/tool_parsers/qwen3_xml_tool_parser/#contract-vllm_mlx.tool_parsers.qwen3_xml_tool_parser.StreamingXMLToolCallParser.set_tools"><code>vllm_mlx.tool_parsers.qwen3_xml_tool_parser.StreamingXMLToolCallParser.set_tools</code></a></td>
<td>method</td>
<td><code>vllm_mlx.tool_parsers.qwen3_xml_tool_parser.StreamingXMLToolCallParser.set_tools(tools: Union[list[ChatCompletionToolsParam], None]) -&gt; not annotated</code></td>
<td>Set tool configuration information</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/tool_parsers/qwen3_xml_tool_parser.py#L1215-L1217">#L1215-L1217</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.tool_parsers.qwen3_xml_tool_parser.streamingxmltoolcallparser.setup_parser method vllm_mlx.tool_parsers.qwen3_xml_tool_parser.streamingxmltoolcallparser.setup_parser() -&gt; not annotated set up xml parser event handlers">
<td><a href="../api/vllm_mlx/tool_parsers/qwen3_xml_tool_parser/#contract-vllm_mlx.tool_parsers.qwen3_xml_tool_parser.StreamingXMLToolCallParser.setup_parser"><code>vllm_mlx.tool_parsers.qwen3_xml_tool_parser.StreamingXMLToolCallParser.setup_parser</code></a></td>
<td>method</td>
<td><code>vllm_mlx.tool_parsers.qwen3_xml_tool_parser.StreamingXMLToolCallParser.setup_parser() -&gt; not annotated</code></td>
<td>Set up XML parser event handlers</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/tool_parsers/qwen3_xml_tool_parser.py#L1208-L1213">#L1208-L1213</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.tool_parsers.qwen_tool_parser._parse_param_value function vllm_mlx.tool_parsers.qwen_tool_parser._parse_param_value(val: str) -&gt; any parse a parameter value, handling json literals and plain strings.">
<td><a href="../api/vllm_mlx/tool_parsers/qwen_tool_parser/#contract-vllm_mlx.tool_parsers.qwen_tool_parser._parse_param_value"><code>vllm_mlx.tool_parsers.qwen_tool_parser._parse_param_value</code></a></td>
<td>function</td>
<td><code>vllm_mlx.tool_parsers.qwen_tool_parser._parse_param_value(val: str) -&gt; Any</code></td>
<td>Parse a parameter value, handling JSON literals and plain strings.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/tool_parsers/qwen_tool_parser.py#L25-L40">#L25-L40</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.tool_parsers.qwen_tool_parser.generate_tool_id function vllm_mlx.tool_parsers.qwen_tool_parser.generate_tool_id() -&gt; str generate a unique tool call id.">
<td><a href="../api/vllm_mlx/tool_parsers/qwen_tool_parser/#contract-vllm_mlx.tool_parsers.qwen_tool_parser.generate_tool_id"><code>vllm_mlx.tool_parsers.qwen_tool_parser.generate_tool_id</code></a></td>
<td>function</td>
<td><code>vllm_mlx.tool_parsers.qwen_tool_parser.generate_tool_id() -&gt; str</code></td>
<td>Generate a unique tool call ID.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/tool_parsers/qwen_tool_parser.py#L43-L45">#L43-L45</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="class" data-symbol-search="vllm_mlx.tool_parsers.qwen_tool_parser.qwentoolparser class vllm_mlx.tool_parsers.qwen_tool_parser.qwentoolparser() tool call parser for qwen models.">
<td><a href="../api/vllm_mlx/tool_parsers/qwen_tool_parser/#contract-vllm_mlx.tool_parsers.qwen_tool_parser.QwenToolParser"><code>vllm_mlx.tool_parsers.qwen_tool_parser.QwenToolParser</code></a></td>
<td>class</td>
<td><code>vllm_mlx.tool_parsers.qwen_tool_parser.QwenToolParser()</code></td>
<td>Tool call parser for Qwen models.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/tool_parsers/qwen_tool_parser.py#L49-L351">#L49-L351</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.tool_parsers.qwen_tool_parser.qwentoolparser._get_partial_marker_len method vllm_mlx.tool_parsers.qwen_tool_parser.qwentoolparser._get_partial_marker_len(text: str) -&gt; int return the length of a partial tool call marker suffix at end of text.">
<td><a href="../api/vllm_mlx/tool_parsers/qwen_tool_parser/#contract-vllm_mlx.tool_parsers.qwen_tool_parser.QwenToolParser._get_partial_marker_len"><code>vllm_mlx.tool_parsers.qwen_tool_parser.QwenToolParser._get_partial_marker_len</code></a></td>
<td>method</td>
<td><code>vllm_mlx.tool_parsers.qwen_tool_parser.QwenToolParser._get_partial_marker_len(text: str) -&gt; int</code></td>
<td>Return the length of a partial tool call marker suffix at end of text.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/tool_parsers/qwen_tool_parser.py#L239-L248">#L239-L248</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.tool_parsers.qwen_tool_parser.qwentoolparser._has_partial_marker method vllm_mlx.tool_parsers.qwen_tool_parser.qwentoolparser._has_partial_marker(text: str) -&gt; bool check if text ends with an incomplete tool call marker prefix.">
<td><a href="../api/vllm_mlx/tool_parsers/qwen_tool_parser/#contract-vllm_mlx.tool_parsers.qwen_tool_parser.QwenToolParser._has_partial_marker"><code>vllm_mlx.tool_parsers.qwen_tool_parser.QwenToolParser._has_partial_marker</code></a></td>
<td>method</td>
<td><code>vllm_mlx.tool_parsers.qwen_tool_parser.QwenToolParser._has_partial_marker(text: str) -&gt; bool</code></td>
<td>Check if text ends with an incomplete tool call marker prefix.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/tool_parsers/qwen_tool_parser.py#L235-L237">#L235-L237</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.tool_parsers.qwen_tool_parser.qwentoolparser._strip_unclosed_markup method vllm_mlx.tool_parsers.qwen_tool_parser.qwentoolparser._strip_unclosed_markup(text: str) -&gt; str strip a trailing unclosed tool-call marker (truncated output).">
<td><a href="../api/vllm_mlx/tool_parsers/qwen_tool_parser/#contract-vllm_mlx.tool_parsers.qwen_tool_parser.QwenToolParser._strip_unclosed_markup"><code>vllm_mlx.tool_parsers.qwen_tool_parser.QwenToolParser._strip_unclosed_markup</code></a></td>
<td>method</td>
<td><code>vllm_mlx.tool_parsers.qwen_tool_parser.QwenToolParser._strip_unclosed_markup(text: str) -&gt; str</code></td>
<td>Strip a trailing unclosed tool-call marker (truncated output).</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/tool_parsers/qwen_tool_parser.py#L200-L228">#L200-L228</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.tool_parsers.qwen_tool_parser.qwentoolparser._was_buffering method vllm_mlx.tool_parsers.qwen_tool_parser.qwentoolparser._was_buffering(previous_text: str) -&gt; bool check if the previous call was buffering a partial marker.">
<td><a href="../api/vllm_mlx/tool_parsers/qwen_tool_parser/#contract-vllm_mlx.tool_parsers.qwen_tool_parser.QwenToolParser._was_buffering"><code>vllm_mlx.tool_parsers.qwen_tool_parser.QwenToolParser._was_buffering</code></a></td>
<td>method</td>
<td><code>vllm_mlx.tool_parsers.qwen_tool_parser.QwenToolParser._was_buffering(previous_text: str) -&gt; bool</code></td>
<td>Check if the previous call was buffering a partial marker.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/tool_parsers/qwen_tool_parser.py#L250-L252">#L250-L252</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.tool_parsers.qwen_tool_parser.qwentoolparser.extract_tool_calls method vllm_mlx.tool_parsers.qwen_tool_parser.qwentoolparser.extract_tool_calls(model_output: str, request: dict[str, any] | none = none) -&gt; extractedtoolcallinformation extract tool calls from a complete qwen model response.">
<td><a href="../api/vllm_mlx/tool_parsers/qwen_tool_parser/#contract-vllm_mlx.tool_parsers.qwen_tool_parser.QwenToolParser.extract_tool_calls"><code>vllm_mlx.tool_parsers.qwen_tool_parser.QwenToolParser.extract_tool_calls</code></a></td>
<td>method</td>
<td><code>vllm_mlx.tool_parsers.qwen_tool_parser.QwenToolParser.extract_tool_calls(model_output: str, request: dict[str, Any] | None = None) -&gt; ExtractedToolCallInformation</code></td>
<td>Extract tool calls from a complete Qwen model response.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/tool_parsers/qwen_tool_parser.py#L78-L197">#L78-L197</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.tool_parsers.qwen_tool_parser.qwentoolparser.extract_tool_calls_streaming method vllm_mlx.tool_parsers.qwen_tool_parser.qwentoolparser.extract_tool_calls_streaming(previous_text: str, current_text: str, delta_text: str, previous_token_ids: sequence[int] | none = none, current_token_ids: sequence[int] | none = none, delta_token_ids: sequence[int] | none = none, request: dict[str, any] | none = none) -&gt; dict[str, any] | none extract tool calls from streaming qwen model output.">
<td><a href="../api/vllm_mlx/tool_parsers/qwen_tool_parser/#contract-vllm_mlx.tool_parsers.qwen_tool_parser.QwenToolParser.extract_tool_calls_streaming"><code>vllm_mlx.tool_parsers.qwen_tool_parser.QwenToolParser.extract_tool_calls_streaming</code></a></td>
<td>method</td>
<td><code>vllm_mlx.tool_parsers.qwen_tool_parser.QwenToolParser.extract_tool_calls_streaming(previous_text: str, current_text: str, delta_text: str, previous_token_ids: Sequence[int] | None = None, current_token_ids: Sequence[int] | None = None, delta_token_ids: Sequence[int] | None = None, request: dict[str, Any] | None = None) -&gt; dict[str, Any] | None</code></td>
<td>Extract tool calls from streaming Qwen model output.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/tool_parsers/qwen_tool_parser.py#L254-L351">#L254-L351</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.tool_parsers.xlam_tool_parser.generate_tool_id function vllm_mlx.tool_parsers.xlam_tool_parser.generate_tool_id() -&gt; str generate a unique tool call id.">
<td><a href="../api/vllm_mlx/tool_parsers/xlam_tool_parser/#contract-vllm_mlx.tool_parsers.xlam_tool_parser.generate_tool_id"><code>vllm_mlx.tool_parsers.xlam_tool_parser.generate_tool_id</code></a></td>
<td>function</td>
<td><code>vllm_mlx.tool_parsers.xlam_tool_parser.generate_tool_id() -&gt; str</code></td>
<td>Generate a unique tool call ID.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/tool_parsers/xlam_tool_parser.py#L24-L26">#L24-L26</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="class" data-symbol-search="vllm_mlx.tool_parsers.xlam_tool_parser.xlamtoolparser class vllm_mlx.tool_parsers.xlam_tool_parser.xlamtoolparser() tool call parser for salesforce xlam models.">
<td><a href="../api/vllm_mlx/tool_parsers/xlam_tool_parser/#contract-vllm_mlx.tool_parsers.xlam_tool_parser.xLAMToolParser"><code>vllm_mlx.tool_parsers.xlam_tool_parser.xLAMToolParser</code></a></td>
<td>class</td>
<td><code>vllm_mlx.tool_parsers.xlam_tool_parser.xLAMToolParser()</code></td>
<td>Tool call parser for Salesforce xLAM models.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/tool_parsers/xlam_tool_parser.py#L30-L177">#L30-L177</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.tool_parsers.xlam_tool_parser.xlamtoolparser._try_extract_json method vllm_mlx.tool_parsers.xlam_tool_parser.xlamtoolparser._try_extract_json(text: str) -&gt; tuple[str | none, list | none] try to extract json tool calls from text.">
<td><a href="../api/vllm_mlx/tool_parsers/xlam_tool_parser/#contract-vllm_mlx.tool_parsers.xlam_tool_parser.xLAMToolParser._try_extract_json"><code>vllm_mlx.tool_parsers.xlam_tool_parser.xLAMToolParser._try_extract_json</code></a></td>
<td>method</td>
<td><code>vllm_mlx.tool_parsers.xlam_tool_parser.xLAMToolParser._try_extract_json(text: str) -&gt; tuple[str | None, list | None]</code></td>
<td>Try to extract JSON tool calls from text.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/tool_parsers/xlam_tool_parser.py#L47-L91">#L47-L91</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.tool_parsers.xlam_tool_parser.xlamtoolparser.extract_tool_calls method vllm_mlx.tool_parsers.xlam_tool_parser.xlamtoolparser.extract_tool_calls(model_output: str, request: dict[str, any] | none = none) -&gt; extractedtoolcallinformation extract tool calls from xlam model output.">
<td><a href="../api/vllm_mlx/tool_parsers/xlam_tool_parser/#contract-vllm_mlx.tool_parsers.xlam_tool_parser.xLAMToolParser.extract_tool_calls"><code>vllm_mlx.tool_parsers.xlam_tool_parser.xLAMToolParser.extract_tool_calls</code></a></td>
<td>method</td>
<td><code>vllm_mlx.tool_parsers.xlam_tool_parser.xLAMToolParser.extract_tool_calls(model_output: str, request: dict[str, Any] | None = None) -&gt; ExtractedToolCallInformation</code></td>
<td>Extract tool calls from xLAM model output.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/tool_parsers/xlam_tool_parser.py#L93-L131">#L93-L131</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.tool_parsers.xlam_tool_parser.xlamtoolparser.extract_tool_calls_streaming method vllm_mlx.tool_parsers.xlam_tool_parser.xlamtoolparser.extract_tool_calls_streaming(previous_text: str, current_text: str, delta_text: str, previous_token_ids: sequence[int] | none = none, current_token_ids: sequence[int] | none = none, delta_token_ids: sequence[int] | none = none, request: dict[str, any] | none = none) -&gt; dict[str, any] | none extract tool calls from streaming xlam model output.">
<td><a href="../api/vllm_mlx/tool_parsers/xlam_tool_parser/#contract-vllm_mlx.tool_parsers.xlam_tool_parser.xLAMToolParser.extract_tool_calls_streaming"><code>vllm_mlx.tool_parsers.xlam_tool_parser.xLAMToolParser.extract_tool_calls_streaming</code></a></td>
<td>method</td>
<td><code>vllm_mlx.tool_parsers.xlam_tool_parser.xLAMToolParser.extract_tool_calls_streaming(previous_text: str, current_text: str, delta_text: str, previous_token_ids: Sequence[int] | None = None, current_token_ids: Sequence[int] | None = None, delta_token_ids: Sequence[int] | None = None, request: dict[str, Any] | None = None) -&gt; dict[str, Any] | None</code></td>
<td>Extract tool calls from streaming xLAM model output.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/tool_parsers/xlam_tool_parser.py#L133-L177">#L133-L177</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="class" data-symbol-search="vllm_mlx.utils.download.downloadconfig class vllm_mlx.utils.download.downloadconfig(download_timeout: int = 300, max_retries: int = 3, retry_backoff_base: float = 2.0, offline: bool = false) configuration for model download behavior.">
<td><a href="../api/vllm_mlx/utils/download/#contract-vllm_mlx.utils.download.DownloadConfig"><code>vllm_mlx.utils.download.DownloadConfig</code></a></td>
<td>class</td>
<td><code>vllm_mlx.utils.download.DownloadConfig(download_timeout: int = 300, max_retries: int = 3, retry_backoff_base: float = 2.0, offline: bool = False)</code></td>
<td>Configuration for model download behavior.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/utils/download.py#L45-L51">#L45-L51</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.utils.download.ensure_model_downloaded function vllm_mlx.utils.download.ensure_model_downloaded(model_name: str, config: downloadconfig | none = none, is_mllm: bool = false) -&gt; path ensure a model is available locally, downloading with retry if needed.">
<td><a href="../api/vllm_mlx/utils/download/#contract-vllm_mlx.utils.download.ensure_model_downloaded"><code>vllm_mlx.utils.download.ensure_model_downloaded</code></a></td>
<td>function</td>
<td><code>vllm_mlx.utils.download.ensure_model_downloaded(model_name: str, config: DownloadConfig | None = None, is_mllm: bool = False) -&gt; Path</code></td>
<td>Ensure a model is available locally, downloading with retry if needed.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/utils/download.py#L54-L144">#L54-L144</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.utils.harmony_render._build_tools function vllm_mlx.utils.harmony_render._build_tools(tools: list[dict] | none) -&gt; list[any] | none function `_build_tools` calls `t.get`, `fn.get`, `tool_descs.append`, `_oh.tooldescription.new`; has 2 explicit return paths.">
<td><a href="../api/vllm_mlx/utils/harmony_render/#contract-vllm_mlx.utils.harmony_render._build_tools"><code>vllm_mlx.utils.harmony_render._build_tools</code></a></td>
<td>function</td>
<td><code>vllm_mlx.utils.harmony_render._build_tools(tools: list[dict] | None) -&gt; list[Any] | None</code></td>
<td>Function `_build_tools` calls `t.get`, `fn.get`, `tool_descs.append`, `_oh.ToolDescription.new`; has 2 explicit return paths.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/utils/harmony_render.py#L64-L80">#L64-L80</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.utils.harmony_render._content_to_text function vllm_mlx.utils.harmony_render._content_to_text(content: any) -&gt; str flatten openai content (str | list[dict]) to plain text.">
<td><a href="../api/vllm_mlx/utils/harmony_render/#contract-vllm_mlx.utils.harmony_render._content_to_text"><code>vllm_mlx.utils.harmony_render._content_to_text</code></a></td>
<td>function</td>
<td><code>vllm_mlx.utils.harmony_render._content_to_text(content: Any) -&gt; str</code></td>
<td>Flatten OpenAI content (str | list[dict]) to plain text.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/utils/harmony_render.py#L83-L97">#L83-L97</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.utils.harmony_render._convert_message function vllm_mlx.utils.harmony_render._convert_message(msg: dict) -&gt; list[any] convert one openai-format message to one or more ``openai_harmony.message``.">
<td><a href="../api/vllm_mlx/utils/harmony_render/#contract-vllm_mlx.utils.harmony_render._convert_message"><code>vllm_mlx.utils.harmony_render._convert_message</code></a></td>
<td>function</td>
<td><code>vllm_mlx.utils.harmony_render._convert_message(msg: dict) -&gt; list[Any]</code></td>
<td>Convert one OpenAI-format message to one or more ``openai_harmony.Message``.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/utils/harmony_render.py#L100-L182">#L100-L182</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.utils.harmony_render._harmony_encoding function vllm_mlx.utils.harmony_render._harmony_encoding() -&gt; any load the harmony encoding once and reuse it across requests.">
<td><a href="../api/vllm_mlx/utils/harmony_render/#contract-vllm_mlx.utils.harmony_render._harmony_encoding"><code>vllm_mlx.utils.harmony_render._harmony_encoding</code></a></td>
<td>function</td>
<td><code>vllm_mlx.utils.harmony_render._harmony_encoding() -&gt; Any</code></td>
<td>Load the harmony encoding once and reuse it across requests.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/utils/harmony_render.py#L45-L53">#L45-L53</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.utils.harmony_render._resolve_tool_names function vllm_mlx.utils.harmony_render._resolve_tool_names(messages: list[dict]) -&gt; list[dict] stamp ``name=functions.x`` on each ``role=tool`` message by tracing back the most recent assistant ``tool_call_id`` -&gt; function name.">
<td><a href="../api/vllm_mlx/utils/harmony_render/#contract-vllm_mlx.utils.harmony_render._resolve_tool_names"><code>vllm_mlx.utils.harmony_render._resolve_tool_names</code></a></td>
<td>function</td>
<td><code>vllm_mlx.utils.harmony_render._resolve_tool_names(messages: list[dict]) -&gt; list[dict]</code></td>
<td>Stamp ``name=functions.X`` on each ``role=tool`` message by tracing back the most recent assistant ``tool_call_id`` -&gt; function name.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/utils/harmony_render.py#L185-L214">#L185-L214</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.utils.harmony_render.is_harmony_parser_name function vllm_mlx.utils.harmony_render.is_harmony_parser_name(parser_name: str | none) -&gt; bool return true when the active --tool-call-parser is a harmony alias.">
<td><a href="../api/vllm_mlx/utils/harmony_render/#contract-vllm_mlx.utils.harmony_render.is_harmony_parser_name"><code>vllm_mlx.utils.harmony_render.is_harmony_parser_name</code></a></td>
<td>function</td>
<td><code>vllm_mlx.utils.harmony_render.is_harmony_parser_name(parser_name: str | None) -&gt; bool</code></td>
<td>Return True when the active --tool-call-parser is a harmony alias.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/utils/harmony_render.py#L56-L61">#L56-L61</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.utils.harmony_render.render_messages function vllm_mlx.utils.harmony_render.render_messages(messages: list[dict], tools: list[dict] | none = none, reasoning_effort: str | none = none) -&gt; str render openai-format messages as a harmony-format prompt string.">
<td><a href="../api/vllm_mlx/utils/harmony_render/#contract-vllm_mlx.utils.harmony_render.render_messages"><code>vllm_mlx.utils.harmony_render.render_messages</code></a></td>
<td>function</td>
<td><code>vllm_mlx.utils.harmony_render.render_messages(messages: list[dict], tools: list[dict] | None = None, reasoning_effort: str | None = None) -&gt; str</code></td>
<td>Render OpenAI-format messages as a harmony-format prompt string.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/utils/harmony_render.py#L217-L303">#L217-L303</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="class" data-symbol-search="vllm_mlx.utils.mamba_cache.batchmambacache class vllm_mlx.utils.mamba_cache.batchmambacache(left_padding: optional[list[int]] = none, size: int = 2) batch-aware mambacache for continuous batching.">
<td><a href="../api/vllm_mlx/utils/mamba_cache/#contract-vllm_mlx.utils.mamba_cache.BatchMambaCache"><code>vllm_mlx.utils.mamba_cache.BatchMambaCache</code></a></td>
<td>class</td>
<td><code>vllm_mlx.utils.mamba_cache.BatchMambaCache(left_padding: Optional[List[int]] = None, size: int = 2)</code></td>
<td>Batch-aware MambaCache for continuous batching.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/utils/mamba_cache.py#L24-L96">#L24-L96</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.utils.mamba_cache.batchmambacache.__init__ method vllm_mlx.utils.mamba_cache.batchmambacache.__init__(left_padding: optional[list[int]] = none, size: int = 2) -&gt; not annotated initialize batchmambacache.">
<td><a href="../api/vllm_mlx/utils/mamba_cache/#contract-vllm_mlx.utils.mamba_cache.BatchMambaCache.__init__"><code>vllm_mlx.utils.mamba_cache.BatchMambaCache.__init__</code></a></td>
<td>method</td>
<td><code>vllm_mlx.utils.mamba_cache.BatchMambaCache.__init__(left_padding: Optional[List[int]] = None, size: int = 2) -&gt; not annotated</code></td>
<td>Initialize BatchMambaCache.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/utils/mamba_cache.py#L32-L43">#L32-L43</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.utils.mamba_cache.batchmambacache.extract method vllm_mlx.utils.mamba_cache.batchmambacache.extract(idx: int) -&gt; mambacache extract a single cache from the batch.">
<td><a href="../api/vllm_mlx/utils/mamba_cache/#contract-vllm_mlx.utils.mamba_cache.BatchMambaCache.extract"><code>vllm_mlx.utils.mamba_cache.BatchMambaCache.extract</code></a></td>
<td>method</td>
<td><code>vllm_mlx.utils.mamba_cache.BatchMambaCache.extract(idx: int) -&gt; MambaCache</code></td>
<td>Extract a single cache from the batch.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/utils/mamba_cache.py#L45-L63">#L45-L63</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.utils.mamba_cache.batchmambacache.merge method vllm_mlx.utils.mamba_cache.batchmambacache.merge(caches: list[mambacache]) -&gt; &#x27;batchmambacache&#x27; merge multiple mambacache objects into a batchmambacache.">
<td><a href="../api/vllm_mlx/utils/mamba_cache/#contract-vllm_mlx.utils.mamba_cache.BatchMambaCache.merge"><code>vllm_mlx.utils.mamba_cache.BatchMambaCache.merge</code></a></td>
<td>method</td>
<td><code>vllm_mlx.utils.mamba_cache.BatchMambaCache.merge(caches: List[MambaCache]) -&gt; &#x27;BatchMambaCache&#x27;</code></td>
<td>Merge multiple MambaCache objects into a BatchMambaCache.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/utils/mamba_cache.py#L66-L96">#L66-L96</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.utils.mamba_cache.ensure_mamba_support function vllm_mlx.utils.mamba_cache.ensure_mamba_support() -&gt; not annotated ensure mambacache batching support is enabled.">
<td><a href="../api/vllm_mlx/utils/mamba_cache/#contract-vllm_mlx.utils.mamba_cache.ensure_mamba_support"><code>vllm_mlx.utils.mamba_cache.ensure_mamba_support</code></a></td>
<td>function</td>
<td><code>vllm_mlx.utils.mamba_cache.ensure_mamba_support() -&gt; not annotated</code></td>
<td>Ensure MambaCache batching support is enabled.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/utils/mamba_cache.py#L201-L215">#L201-L215</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.utils.mamba_cache.patch_mlx_lm_for_mamba function vllm_mlx.utils.mamba_cache.patch_mlx_lm_for_mamba() -&gt; not annotated patch mlx-lm to support mambacache in batchgenerator.">
<td><a href="../api/vllm_mlx/utils/mamba_cache/#contract-vllm_mlx.utils.mamba_cache.patch_mlx_lm_for_mamba"><code>vllm_mlx.utils.mamba_cache.patch_mlx_lm_for_mamba</code></a></td>
<td>function</td>
<td><code>vllm_mlx.utils.mamba_cache.patch_mlx_lm_for_mamba() -&gt; not annotated</code></td>
<td>Patch mlx-lm to support MambaCache in BatchGenerator.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/utils/mamba_cache.py#L99-L194">#L99-L194</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="nested function" data-symbol-search="vllm_mlx.utils.mamba_cache.patch_mlx_lm_for_mamba._patched_make_cache nested function vllm_mlx.utils.mamba_cache.patch_mlx_lm_for_mamba._patched_make_cache(model, left_padding, max_kv_size = none) -&gt; not annotated convert a list of regular caches into their corresponding batch-aware caches, with support for mambacache.">
<td><a href="../api/vllm_mlx/utils/mamba_cache/#contract-vllm_mlx.utils.mamba_cache.patch_mlx_lm_for_mamba._patched_make_cache"><code>vllm_mlx.utils.mamba_cache.patch_mlx_lm_for_mamba._patched_make_cache</code></a></td>
<td>nested function</td>
<td><code>vllm_mlx.utils.mamba_cache.patch_mlx_lm_for_mamba._patched_make_cache(model, left_padding, max_kv_size = None) -&gt; not annotated</code></td>
<td>Convert a list of regular caches into their corresponding batch-aware caches, with support for MambaCache.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/utils/mamba_cache.py#L126-L166">#L126-L166</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="nested function" data-symbol-search="vllm_mlx.utils.mamba_cache.patch_mlx_lm_for_mamba._patched_make_cache.to_batch_cache nested function vllm_mlx.utils.mamba_cache.patch_mlx_lm_for_mamba._patched_make_cache.to_batch_cache(c) -&gt; not annotated nested function `patch_mlx_lm_for_mamba._patched_make_cache.to_batch_cache` calls `isinstance`, `batchkvcache`, `batchmambacache`, `mx.array`; can raise `valueerror`; has 5 explicit return paths.">
<td><a href="../api/vllm_mlx/utils/mamba_cache/#contract-vllm_mlx.utils.mamba_cache.patch_mlx_lm_for_mamba._patched_make_cache.to_batch_cache"><code>vllm_mlx.utils.mamba_cache.patch_mlx_lm_for_mamba._patched_make_cache.to_batch_cache</code></a></td>
<td>nested function</td>
<td><code>vllm_mlx.utils.mamba_cache.patch_mlx_lm_for_mamba._patched_make_cache.to_batch_cache(c) -&gt; not annotated</code></td>
<td>Nested Function `patch_mlx_lm_for_mamba._patched_make_cache.to_batch_cache` calls `isinstance`, `BatchKVCache`, `BatchMambaCache`, `mx.array`; can raise `ValueError`; has 5 explicit return paths.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/utils/mamba_cache.py#L137-L155">#L137-L155</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="nested function" data-symbol-search="vllm_mlx.utils.mamba_cache.patch_mlx_lm_for_mamba._patched_merge_caches nested function vllm_mlx.utils.mamba_cache.patch_mlx_lm_for_mamba._patched_merge_caches(caches) -&gt; not annotated merge caches with mambacache support.">
<td><a href="../api/vllm_mlx/utils/mamba_cache/#contract-vllm_mlx.utils.mamba_cache.patch_mlx_lm_for_mamba._patched_merge_caches"><code>vllm_mlx.utils.mamba_cache.patch_mlx_lm_for_mamba._patched_merge_caches</code></a></td>
<td>nested function</td>
<td><code>vllm_mlx.utils.mamba_cache.patch_mlx_lm_for_mamba._patched_merge_caches(caches) -&gt; not annotated</code></td>
<td>Merge caches with MambaCache support.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/utils/mamba_cache.py#L174-L190">#L174-L190</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.utils.tokenizer._load_strict_false function vllm_mlx.utils.tokenizer._load_strict_false(model_name: str, tokenizer_config: dict = none) -&gt; not annotated load model with strict=false to discard extra weights.">
<td><a href="../api/vllm_mlx/utils/tokenizer/#contract-vllm_mlx.utils.tokenizer._load_strict_false"><code>vllm_mlx.utils.tokenizer._load_strict_false</code></a></td>
<td>function</td>
<td><code>vllm_mlx.utils.tokenizer._load_strict_false(model_name: str, tokenizer_config: dict = None) -&gt; not annotated</code></td>
<td>Load model with strict=False to discard extra weights.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/utils/tokenizer.py#L114-L153">#L114-L153</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.utils.tokenizer._load_with_tokenizer_fallback function vllm_mlx.utils.tokenizer._load_with_tokenizer_fallback(model_name: str) -&gt; not annotated load model with fallback tokenizer for non-standard models like nemotron.">
<td><a href="../api/vllm_mlx/utils/tokenizer/#contract-vllm_mlx.utils.tokenizer._load_with_tokenizer_fallback"><code>vllm_mlx.utils.tokenizer._load_with_tokenizer_fallback</code></a></td>
<td>function</td>
<td><code>vllm_mlx.utils.tokenizer._load_with_tokenizer_fallback(model_name: str) -&gt; not annotated</code></td>
<td>Load model with fallback tokenizer for non-standard models like Nemotron.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/utils/tokenizer.py#L218-L280">#L218-L280</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.utils.tokenizer._needs_strict_false function vllm_mlx.utils.tokenizer._needs_strict_false(model_name: str) -&gt; bool check if model needs strict=false loading (vlm models with extra weights).">
<td><a href="../api/vllm_mlx/utils/tokenizer/#contract-vllm_mlx.utils.tokenizer._needs_strict_false"><code>vllm_mlx.utils.tokenizer._needs_strict_false</code></a></td>
<td>function</td>
<td><code>vllm_mlx.utils.tokenizer._needs_strict_false(model_name: str) -&gt; bool</code></td>
<td>Check if model needs strict=False loading (VLM models with extra weights).</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/utils/tokenizer.py#L31-L49">#L31-L49</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.utils.tokenizer._needs_tokenizer_fallback function vllm_mlx.utils.tokenizer._needs_tokenizer_fallback(model_name: str) -&gt; bool check if model needs tokenizer fallback.">
<td><a href="../api/vllm_mlx/utils/tokenizer/#contract-vllm_mlx.utils.tokenizer._needs_tokenizer_fallback"><code>vllm_mlx.utils.tokenizer._needs_tokenizer_fallback</code></a></td>
<td>function</td>
<td><code>vllm_mlx.utils.tokenizer._needs_tokenizer_fallback(model_name: str) -&gt; bool</code></td>
<td>Check if model needs tokenizer fallback.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/utils/tokenizer.py#L25-L28">#L25-L28</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.utils.tokenizer._try_inject_mtp function vllm_mlx.utils.tokenizer._try_inject_mtp(model, model_path, config) -&gt; not annotated inject mtp support if model has mtp config + weights.">
<td><a href="../api/vllm_mlx/utils/tokenizer/#contract-vllm_mlx.utils.tokenizer._try_inject_mtp"><code>vllm_mlx.utils.tokenizer._try_inject_mtp</code></a></td>
<td>function</td>
<td><code>vllm_mlx.utils.tokenizer._try_inject_mtp(model, model_path, config) -&gt; not annotated</code></td>
<td>Inject MTP support if model has MTP config + weights.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/utils/tokenizer.py#L156-L176">#L156-L176</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.utils.tokenizer._try_inject_mtp_post_load function vllm_mlx.utils.tokenizer._try_inject_mtp_post_load(model, model_name) -&gt; not annotated check if mtp weights exist but were stripped by sanitize(), and inject.">
<td><a href="../api/vllm_mlx/utils/tokenizer/#contract-vllm_mlx.utils.tokenizer._try_inject_mtp_post_load"><code>vllm_mlx.utils.tokenizer._try_inject_mtp_post_load</code></a></td>
<td>function</td>
<td><code>vllm_mlx.utils.tokenizer._try_inject_mtp_post_load(model, model_name) -&gt; not annotated</code></td>
<td>Check if MTP weights exist but were stripped by sanitize(), and inject.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/utils/tokenizer.py#L179-L215">#L179-L215</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.utils.tokenizer.load_model_with_fallback function vllm_mlx.utils.tokenizer.load_model_with_fallback(model_name: str, tokenizer_config: dict = none) -&gt; not annotated load model and tokenizer with fallback for non-standard tokenizers.">
<td><a href="../api/vllm_mlx/utils/tokenizer/#contract-vllm_mlx.utils.tokenizer.load_model_with_fallback"><code>vllm_mlx.utils.tokenizer.load_model_with_fallback</code></a></td>
<td>function</td>
<td><code>vllm_mlx.utils.tokenizer.load_model_with_fallback(model_name: str, tokenizer_config: dict = None) -&gt; not annotated</code></td>
<td>Load model and tokenizer with fallback for non-standard tokenizers.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/utils/tokenizer.py#L52-L111">#L52-L111</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.utils.truncation._config_get function vllm_mlx.utils.truncation._config_get(config: any, key: str) -&gt; any read ``key`` from a model config that may be a dict or an object.">
<td><a href="../api/vllm_mlx/utils/truncation/#contract-vllm_mlx.utils.truncation._config_get"><code>vllm_mlx.utils.truncation._config_get</code></a></td>
<td>function</td>
<td><code>vllm_mlx.utils.truncation._config_get(config: Any, key: str) -&gt; Any</code></td>
<td>Read ``key`` from a model config that may be a dict or an object.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/utils/truncation.py#L25-L31">#L25-L31</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.utils.truncation._positive_int function vllm_mlx.utils.truncation._positive_int(value: any) -&gt; int | none function `_positive_int` calls `isinstance`; has 2 explicit return paths.">
<td><a href="../api/vllm_mlx/utils/truncation/#contract-vllm_mlx.utils.truncation._positive_int"><code>vllm_mlx.utils.truncation._positive_int</code></a></td>
<td>function</td>
<td><code>vllm_mlx.utils.truncation._positive_int(value: Any) -&gt; int | None</code></td>
<td>Function `_positive_int` calls `isinstance`; has 2 explicit return paths.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/utils/truncation.py#L39-L42">#L39-L42</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.utils.truncation.inner_tokenizer function vllm_mlx.utils.truncation.inner_tokenizer(tokenizer: any) -&gt; any unwrap a wrapping tokenizer to its inner ``_tokenizer`` when present.">
<td><a href="../api/vllm_mlx/utils/truncation/#contract-vllm_mlx.utils.truncation.inner_tokenizer"><code>vllm_mlx.utils.truncation.inner_tokenizer</code></a></td>
<td>function</td>
<td><code>vllm_mlx.utils.truncation.inner_tokenizer(tokenizer: Any) -&gt; Any</code></td>
<td>Unwrap a wrapping tokenizer to its inner ``_tokenizer`` when present.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/utils/truncation.py#L34-L36">#L34-L36</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.utils.truncation.resolve_max_length function vllm_mlx.utils.truncation.resolve_max_length(config: any, tokenizer: any, *, default: int = max_length_default, sentinel_threshold: int = tokenizer_sentinel_threshold) -&gt; int resolve the tokenizer truncation length for a model.">
<td><a href="../api/vllm_mlx/utils/truncation/#contract-vllm_mlx.utils.truncation.resolve_max_length"><code>vllm_mlx.utils.truncation.resolve_max_length</code></a></td>
<td>function</td>
<td><code>vllm_mlx.utils.truncation.resolve_max_length(config: Any, tokenizer: Any, *, default: int = MAX_LENGTH_DEFAULT, sentinel_threshold: int = TOKENIZER_SENTINEL_THRESHOLD) -&gt; int</code></td>
<td>Resolve the tokenizer truncation length for a model.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/utils/truncation.py#L45-L83">#L45-L83</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.vision_embedding_cache.compute_image_hash function vllm_mlx.vision_embedding_cache.compute_image_hash(image_path: str) -&gt; str compute hash of image content.">
<td><a href="../api/vllm_mlx/vision_embedding_cache/#contract-vllm_mlx.vision_embedding_cache.compute_image_hash"><code>vllm_mlx.vision_embedding_cache.compute_image_hash</code></a></td>
<td>function</td>
<td><code>vllm_mlx.vision_embedding_cache.compute_image_hash(image_path: str) -&gt; str</code></td>
<td>Compute hash of image content.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/vision_embedding_cache.py#L105-L124">#L105-L124</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.vision_embedding_cache.compute_images_hash function vllm_mlx.vision_embedding_cache.compute_images_hash(images: list[str]) -&gt; str compute combined hash for multiple images.">
<td><a href="../api/vllm_mlx/vision_embedding_cache/#contract-vllm_mlx.vision_embedding_cache.compute_images_hash"><code>vllm_mlx.vision_embedding_cache.compute_images_hash</code></a></td>
<td>function</td>
<td><code>vllm_mlx.vision_embedding_cache.compute_images_hash(images: List[str]) -&gt; str</code></td>
<td>Compute combined hash for multiple images.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/vision_embedding_cache.py#L127-L132">#L127-L132</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="class" data-symbol-search="vllm_mlx.vision_embedding_cache.encodingcacheentry class vllm_mlx.vision_embedding_cache.encodingcacheentry(logits: mx.array, first_token: int, logprobs: mx.array, encoding_time: float = 0.0) cached vision encoding output.">
<td><a href="../api/vllm_mlx/vision_embedding_cache/#contract-vllm_mlx.vision_embedding_cache.EncodingCacheEntry"><code>vllm_mlx.vision_embedding_cache.EncodingCacheEntry</code></a></td>
<td>class</td>
<td><code>vllm_mlx.vision_embedding_cache.EncodingCacheEntry(logits: mx.array, first_token: int, logprobs: mx.array, encoding_time: float = 0.0)</code></td>
<td>Cached vision encoding output.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/vision_embedding_cache.py#L96-L102">#L96-L102</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="class" data-symbol-search="vllm_mlx.vision_embedding_cache.pixelcacheentry class vllm_mlx.vision_embedding_cache.pixelcacheentry(pixel_values: mx.array, input_ids: mx.array, attention_mask: optional[mx.array], image_grid_thw: optional[mx.array], extra_kwargs: dict[str, any], processing_time: float = 0.0) cached pixel values from prepare_inputs.">
<td><a href="../api/vllm_mlx/vision_embedding_cache/#contract-vllm_mlx.vision_embedding_cache.PixelCacheEntry"><code>vllm_mlx.vision_embedding_cache.PixelCacheEntry</code></a></td>
<td>class</td>
<td><code>vllm_mlx.vision_embedding_cache.PixelCacheEntry(pixel_values: mx.array, input_ids: mx.array, attention_mask: Optional[mx.array], image_grid_thw: Optional[mx.array], extra_kwargs: Dict[str, Any], processing_time: float = 0.0)</code></td>
<td>Cached pixel values from prepare_inputs.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/vision_embedding_cache.py#L70-L78">#L70-L78</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="class" data-symbol-search="vllm_mlx.vision_embedding_cache.pixelonlycacheentry class vllm_mlx.vision_embedding_cache.pixelonlycacheentry(pixel_values: mx.array, image_grid_thw: optional[mx.array], processing_time: float = 0.0) cached pixel values only (prompt-independent).">
<td><a href="../api/vllm_mlx/vision_embedding_cache/#contract-vllm_mlx.vision_embedding_cache.PixelOnlyCacheEntry"><code>vllm_mlx.vision_embedding_cache.PixelOnlyCacheEntry</code></a></td>
<td>class</td>
<td><code>vllm_mlx.vision_embedding_cache.PixelOnlyCacheEntry(pixel_values: mx.array, image_grid_thw: Optional[mx.array], processing_time: float = 0.0)</code></td>
<td>Cached pixel values only (prompt-independent).</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/vision_embedding_cache.py#L82-L92">#L82-L92</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="class" data-symbol-search="vllm_mlx.vision_embedding_cache.visioncachestats class vllm_mlx.vision_embedding_cache.visioncachestats(pixel_cache_hits: int = 0, pixel_cache_misses: int = 0, encoding_cache_hits: int = 0, encoding_cache_misses: int = 0, total_time_saved: float = 0.0, total_images_processed: int = 0) statistics for vision cache performance.">
<td><a href="../api/vllm_mlx/vision_embedding_cache/#contract-vllm_mlx.vision_embedding_cache.VisionCacheStats"><code>vllm_mlx.vision_embedding_cache.VisionCacheStats</code></a></td>
<td>class</td>
<td><code>vllm_mlx.vision_embedding_cache.VisionCacheStats(pixel_cache_hits: int = 0, pixel_cache_misses: int = 0, encoding_cache_hits: int = 0, encoding_cache_misses: int = 0, total_time_saved: float = 0.0, total_images_processed: int = 0)</code></td>
<td>Statistics for vision cache performance.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/vision_embedding_cache.py#L30-L66">#L30-L66</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.vision_embedding_cache.visioncachestats.encoding_hit_rate method vllm_mlx.vision_embedding_cache.visioncachestats.encoding_hit_rate() -&gt; float return successful encoding lookups divided by all encoding lookups.">
<td><a href="../api/vllm_mlx/vision_embedding_cache/#contract-vllm_mlx.vision_embedding_cache.VisionCacheStats.encoding_hit_rate"><code>vllm_mlx.vision_embedding_cache.VisionCacheStats.encoding_hit_rate</code></a></td>
<td>method</td>
<td><code>vllm_mlx.vision_embedding_cache.VisionCacheStats.encoding_hit_rate() -&gt; float</code></td>
<td>Return successful encoding lookups divided by all encoding lookups.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/vision_embedding_cache.py#L48-L52">#L48-L52</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.vision_embedding_cache.visioncachestats.pixel_hit_rate method vllm_mlx.vision_embedding_cache.visioncachestats.pixel_hit_rate() -&gt; float return successful pixel-cache lookups divided by all pixel lookups.">
<td><a href="../api/vllm_mlx/vision_embedding_cache/#contract-vllm_mlx.vision_embedding_cache.VisionCacheStats.pixel_hit_rate"><code>vllm_mlx.vision_embedding_cache.VisionCacheStats.pixel_hit_rate</code></a></td>
<td>method</td>
<td><code>vllm_mlx.vision_embedding_cache.VisionCacheStats.pixel_hit_rate() -&gt; float</code></td>
<td>Return successful pixel-cache lookups divided by all pixel lookups.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/vision_embedding_cache.py#L41-L45">#L41-L45</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.vision_embedding_cache.visioncachestats.to_dict method vllm_mlx.vision_embedding_cache.visioncachestats.to_dict() -&gt; dict return pixel, encoding, timing, and image counters.">
<td><a href="../api/vllm_mlx/vision_embedding_cache/#contract-vllm_mlx.vision_embedding_cache.VisionCacheStats.to_dict"><code>vllm_mlx.vision_embedding_cache.VisionCacheStats.to_dict</code></a></td>
<td>method</td>
<td><code>vllm_mlx.vision_embedding_cache.VisionCacheStats.to_dict() -&gt; dict</code></td>
<td>Return pixel, encoding, timing, and image counters.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/vision_embedding_cache.py#L54-L66">#L54-L66</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="class" data-symbol-search="vllm_mlx.vision_embedding_cache.visionembeddingcache class vllm_mlx.vision_embedding_cache.visionembeddingcache(max_pixel_entries: int = 100, max_encoding_entries: int = 50, enabled: bool = true) two-level cache for vision processing in mllm.">
<td><a href="../api/vllm_mlx/vision_embedding_cache/#contract-vllm_mlx.vision_embedding_cache.VisionEmbeddingCache"><code>vllm_mlx.vision_embedding_cache.VisionEmbeddingCache</code></a></td>
<td>class</td>
<td><code>vllm_mlx.vision_embedding_cache.VisionEmbeddingCache(max_pixel_entries: int = 100, max_encoding_entries: int = 50, enabled: bool = True)</code></td>
<td>Two-level cache for vision processing in MLLM.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/vision_embedding_cache.py#L135-L413">#L135-L413</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.vision_embedding_cache.visionembeddingcache.__init__ method vllm_mlx.vision_embedding_cache.visionembeddingcache.__init__(max_pixel_entries: int = 100, max_encoding_entries: int = 50, enabled: bool = true) -&gt; not annotated initialize the vision embedding cache.">
<td><a href="../api/vllm_mlx/vision_embedding_cache/#contract-vllm_mlx.vision_embedding_cache.VisionEmbeddingCache.__init__"><code>vllm_mlx.vision_embedding_cache.VisionEmbeddingCache.__init__</code></a></td>
<td>method</td>
<td><code>vllm_mlx.vision_embedding_cache.VisionEmbeddingCache.__init__(max_pixel_entries: int = 100, max_encoding_entries: int = 50, enabled: bool = True) -&gt; not annotated</code></td>
<td>Initialize the vision embedding cache.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/vision_embedding_cache.py#L162-L185">#L162-L185</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.vision_embedding_cache.visionembeddingcache.__repr__ method vllm_mlx.vision_embedding_cache.visionembeddingcache.__repr__() -&gt; str method `visionembeddingcache.__repr__` calls `len`; returns `f&#x27;&lt;visionembeddingcache pixel={len(self._pixel_cache)}/{self.max_pixel_entries} pixel_only={len(self._pixel_only_cache)…`.">
<td><a href="../api/vllm_mlx/vision_embedding_cache/#contract-vllm_mlx.vision_embedding_cache.VisionEmbeddingCache.__repr__"><code>vllm_mlx.vision_embedding_cache.VisionEmbeddingCache.__repr__</code></a></td>
<td>method</td>
<td><code>vllm_mlx.vision_embedding_cache.VisionEmbeddingCache.__repr__() -&gt; str</code></td>
<td>Method `VisionEmbeddingCache.__repr__` calls `len`; returns `f&#x27;&lt;VisionEmbeddingCache pixel={len(self._pixel_cache)}/{self.max_pixel_entries} pixel_only={len(self._pixel_only_cache)…`.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/vision_embedding_cache.py#L407-L413">#L407-L413</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.vision_embedding_cache.visionembeddingcache._make_image_only_key method vllm_mlx.vision_embedding_cache.visionembeddingcache._make_image_only_key(images: list[str]) -&gt; str create cache key from images only (prompt-independent).">
<td><a href="../api/vllm_mlx/vision_embedding_cache/#contract-vllm_mlx.vision_embedding_cache.VisionEmbeddingCache._make_image_only_key"><code>vllm_mlx.vision_embedding_cache.VisionEmbeddingCache._make_image_only_key</code></a></td>
<td>method</td>
<td><code>vllm_mlx.vision_embedding_cache.VisionEmbeddingCache._make_image_only_key(images: List[str]) -&gt; str</code></td>
<td>Create cache key from images only (prompt-independent).</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/vision_embedding_cache.py#L194-L196">#L194-L196</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.vision_embedding_cache.visionembeddingcache._make_key method vllm_mlx.vision_embedding_cache.visionembeddingcache._make_key(images: list[str], prompt: str) -&gt; str create cache key from images and prompt.">
<td><a href="../api/vllm_mlx/vision_embedding_cache/#contract-vllm_mlx.vision_embedding_cache.VisionEmbeddingCache._make_key"><code>vllm_mlx.vision_embedding_cache.VisionEmbeddingCache._make_key</code></a></td>
<td>method</td>
<td><code>vllm_mlx.vision_embedding_cache.VisionEmbeddingCache._make_key(images: List[str], prompt: str) -&gt; str</code></td>
<td>Create cache key from images and prompt.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/vision_embedding_cache.py#L187-L192">#L187-L192</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.vision_embedding_cache.visionembeddingcache.clear method vllm_mlx.vision_embedding_cache.visionembeddingcache.clear() -&gt; none clear all caches and reset stats.">
<td><a href="../api/vllm_mlx/vision_embedding_cache/#contract-vllm_mlx.vision_embedding_cache.VisionEmbeddingCache.clear"><code>vllm_mlx.vision_embedding_cache.VisionEmbeddingCache.clear</code></a></td>
<td>method</td>
<td><code>vllm_mlx.vision_embedding_cache.VisionEmbeddingCache.clear() -&gt; None</code></td>
<td>Clear all caches and reset stats.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/vision_embedding_cache.py#L400-L405">#L400-L405</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.vision_embedding_cache.visionembeddingcache.get_encoding_cache method vllm_mlx.vision_embedding_cache.visionembeddingcache.get_encoding_cache(images: list[str], prompt: str) -&gt; optional[encodingcacheentry] get cached vision encoding output.">
<td><a href="../api/vllm_mlx/vision_embedding_cache/#contract-vllm_mlx.vision_embedding_cache.VisionEmbeddingCache.get_encoding_cache"><code>vllm_mlx.vision_embedding_cache.VisionEmbeddingCache.get_encoding_cache</code></a></td>
<td>method</td>
<td><code>vllm_mlx.vision_embedding_cache.VisionEmbeddingCache.get_encoding_cache(images: List[str], prompt: str) -&gt; Optional[EncodingCacheEntry]</code></td>
<td>Get cached vision encoding output.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/vision_embedding_cache.py#L330-L358">#L330-L358</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.vision_embedding_cache.visionembeddingcache.get_pixel_cache method vllm_mlx.vision_embedding_cache.visionembeddingcache.get_pixel_cache(images: list[str], prompt: str) -&gt; optional[pixelcacheentry] get cached pixel values for images+prompt.">
<td><a href="../api/vllm_mlx/vision_embedding_cache/#contract-vllm_mlx.vision_embedding_cache.VisionEmbeddingCache.get_pixel_cache"><code>vllm_mlx.vision_embedding_cache.VisionEmbeddingCache.get_pixel_cache</code></a></td>
<td>method</td>
<td><code>vllm_mlx.vision_embedding_cache.VisionEmbeddingCache.get_pixel_cache(images: List[str], prompt: str) -&gt; Optional[PixelCacheEntry]</code></td>
<td>Get cached pixel values for images+prompt.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/vision_embedding_cache.py#L200-L229">#L200-L229</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.vision_embedding_cache.visionembeddingcache.get_pixel_values method vllm_mlx.vision_embedding_cache.visionembeddingcache.get_pixel_values(images: list[str]) -&gt; optional[pixelonlycacheentry] get cached pixel values for images (prompt-independent).">
<td><a href="../api/vllm_mlx/vision_embedding_cache/#contract-vllm_mlx.vision_embedding_cache.VisionEmbeddingCache.get_pixel_values"><code>vllm_mlx.vision_embedding_cache.VisionEmbeddingCache.get_pixel_values</code></a></td>
<td>method</td>
<td><code>vllm_mlx.vision_embedding_cache.VisionEmbeddingCache.get_pixel_values(images: List[str]) -&gt; Optional[PixelOnlyCacheEntry]</code></td>
<td>Get cached pixel values for images (prompt-independent).</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/vision_embedding_cache.py#L268-L299">#L268-L299</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.vision_embedding_cache.visionembeddingcache.get_stats method vllm_mlx.vision_embedding_cache.visionembeddingcache.get_stats() -&gt; dict get cache statistics.">
<td><a href="../api/vllm_mlx/vision_embedding_cache/#contract-vllm_mlx.vision_embedding_cache.VisionEmbeddingCache.get_stats"><code>vllm_mlx.vision_embedding_cache.VisionEmbeddingCache.get_stats</code></a></td>
<td>method</td>
<td><code>vllm_mlx.vision_embedding_cache.VisionEmbeddingCache.get_stats() -&gt; dict</code></td>
<td>Get cache statistics.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/vision_embedding_cache.py#L392-L398">#L392-L398</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.vision_embedding_cache.visionembeddingcache.set_encoding_cache method vllm_mlx.vision_embedding_cache.visionembeddingcache.set_encoding_cache(images: list[str], prompt: str, logits: mx.array, first_token: int, logprobs: mx.array, encoding_time: float = 0.0) -&gt; none store vision encoding output in cache.">
<td><a href="../api/vllm_mlx/vision_embedding_cache/#contract-vllm_mlx.vision_embedding_cache.VisionEmbeddingCache.set_encoding_cache"><code>vllm_mlx.vision_embedding_cache.VisionEmbeddingCache.set_encoding_cache</code></a></td>
<td>method</td>
<td><code>vllm_mlx.vision_embedding_cache.VisionEmbeddingCache.set_encoding_cache(images: List[str], prompt: str, logits: mx.array, first_token: int, logprobs: mx.array, encoding_time: float = 0.0) -&gt; None</code></td>
<td>Store vision encoding output in cache.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/vision_embedding_cache.py#L360-L388">#L360-L388</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.vision_embedding_cache.visionembeddingcache.set_pixel_cache method vllm_mlx.vision_embedding_cache.visionembeddingcache.set_pixel_cache(images: list[str], prompt: str, pixel_values: mx.array, input_ids: mx.array, attention_mask: optional[mx.array] = none, image_grid_thw: optional[mx.array] = none, extra_kwargs: optional[dict[str, any]] = none, processing_time: float = 0.0) -&gt; none store pixel values in cache.">
<td><a href="../api/vllm_mlx/vision_embedding_cache/#contract-vllm_mlx.vision_embedding_cache.VisionEmbeddingCache.set_pixel_cache"><code>vllm_mlx.vision_embedding_cache.VisionEmbeddingCache.set_pixel_cache</code></a></td>
<td>method</td>
<td><code>vllm_mlx.vision_embedding_cache.VisionEmbeddingCache.set_pixel_cache(images: List[str], prompt: str, pixel_values: mx.array, input_ids: mx.array, attention_mask: Optional[mx.array] = None, image_grid_thw: Optional[mx.array] = None, extra_kwargs: Optional[Dict[str, Any]] = None, processing_time: float = 0.0) -&gt; None</code></td>
<td>Store pixel values in cache.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/vision_embedding_cache.py#L231-L264">#L231-L264</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.vision_embedding_cache.visionembeddingcache.set_pixel_values method vllm_mlx.vision_embedding_cache.visionembeddingcache.set_pixel_values(images: list[str], pixel_values: mx.array, image_grid_thw: optional[mx.array] = none, processing_time: float = 0.0) -&gt; none store pixel values in cache (prompt-independent).">
<td><a href="../api/vllm_mlx/vision_embedding_cache/#contract-vllm_mlx.vision_embedding_cache.VisionEmbeddingCache.set_pixel_values"><code>vllm_mlx.vision_embedding_cache.VisionEmbeddingCache.set_pixel_values</code></a></td>
<td>method</td>
<td><code>vllm_mlx.vision_embedding_cache.VisionEmbeddingCache.set_pixel_values(images: List[str], pixel_values: mx.array, image_grid_thw: Optional[mx.array] = None, processing_time: float = 0.0) -&gt; None</code></td>
<td>Store pixel values in cache (prompt-independent).</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/vision_embedding_cache.py#L301-L326">#L301-L326</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.vllm_platform._get_apple_chip_name function vllm_mlx.vllm_platform._get_apple_chip_name() -&gt; str get the name of the apple silicon chip.">
<td><a href="../api/vllm_mlx/vllm_platform/#contract-vllm_mlx.vllm_platform._get_apple_chip_name"><code>vllm_mlx.vllm_platform._get_apple_chip_name</code></a></td>
<td>function</td>
<td><code>vllm_mlx.vllm_platform._get_apple_chip_name() -&gt; str</code></td>
<td>Get the name of the Apple Silicon chip.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/vllm_platform.py#L24-L35">#L24-L35</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.vllm_platform._get_unified_memory_size function vllm_mlx.vllm_platform._get_unified_memory_size() -&gt; int get the total unified memory size in bytes.">
<td><a href="../api/vllm_mlx/vllm_platform/#contract-vllm_mlx.vllm_platform._get_unified_memory_size"><code>vllm_mlx.vllm_platform._get_unified_memory_size</code></a></td>
<td>function</td>
<td><code>vllm_mlx.vllm_platform._get_unified_memory_size() -&gt; int</code></td>
<td>Get the total unified memory size in bytes.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/vllm_platform.py#L38-L50">#L38-L50</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.vllm_platform._is_apple_silicon function vllm_mlx.vllm_platform._is_apple_silicon() -&gt; bool check if running on apple silicon.">
<td><a href="../api/vllm_mlx/vllm_platform/#contract-vllm_mlx.vllm_platform._is_apple_silicon"><code>vllm_mlx.vllm_platform._is_apple_silicon</code></a></td>
<td>function</td>
<td><code>vllm_mlx.vllm_platform._is_apple_silicon() -&gt; bool</code></td>
<td>Check if running on Apple Silicon.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/vllm_platform.py#L66-L68">#L66-L68</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="function" data-symbol-search="vllm_mlx.vllm_platform._is_mlx_available function vllm_mlx.vllm_platform._is_mlx_available() -&gt; bool check if mlx is available and working.">
<td><a href="../api/vllm_mlx/vllm_platform/#contract-vllm_mlx.vllm_platform._is_mlx_available"><code>vllm_mlx.vllm_platform._is_mlx_available</code></a></td>
<td>function</td>
<td><code>vllm_mlx.vllm_platform._is_mlx_available() -&gt; bool</code></td>
<td>Check if MLX is available and working.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/vllm_platform.py#L53-L63">#L53-L63</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="class" data-symbol-search="vllm_mlx.vllm_platform.mlxplatform class vllm_mlx.vllm_platform.mlxplatform() platform implementation for apple silicon using mlx.">
<td><a href="../api/vllm_mlx/vllm_platform/#contract-vllm_mlx.vllm_platform.MLXPlatform"><code>vllm_mlx.vllm_platform.MLXPlatform</code></a></td>
<td>class</td>
<td><code>vllm_mlx.vllm_platform.MLXPlatform()</code></td>
<td>Platform implementation for Apple Silicon using MLX.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/vllm_platform.py#L71-L351">#L71-L351</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.vllm_platform.mlxplatform.__repr__ method vllm_mlx.vllm_platform.mlxplatform.__repr__() -&gt; str method `mlxplatform.__repr__` returns `f&#x27;&lt;mlxplatform device={self.device_name}&gt;&#x27;`.">
<td><a href="../api/vllm_mlx/vllm_platform/#contract-vllm_mlx.vllm_platform.MLXPlatform.__repr__"><code>vllm_mlx.vllm_platform.MLXPlatform.__repr__</code></a></td>
<td>method</td>
<td><code>vllm_mlx.vllm_platform.MLXPlatform.__repr__() -&gt; str</code></td>
<td>Method `MLXPlatform.__repr__` returns `f&#x27;&lt;MLXPlatform device={self.device_name}&gt;&#x27;`.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/vllm_platform.py#L350-L351">#L350-L351</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.vllm_platform.mlxplatform._enum method vllm_mlx.vllm_platform.mlxplatform._enum() -&gt; not annotated method `mlxplatform._enum` returns `platformenum.oot`.">
<td><a href="../api/vllm_mlx/vllm_platform/#contract-vllm_mlx.vllm_platform.MLXPlatform._enum"><code>vllm_mlx.vllm_platform.MLXPlatform._enum</code></a></td>
<td>method</td>
<td><code>vllm_mlx.vllm_platform.MLXPlatform._enum() -&gt; not annotated</code></td>
<td>Method `MLXPlatform._enum` returns `PlatformEnum.OOT`.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/vllm_platform.py#L90-L93">#L90-L93</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.vllm_platform.mlxplatform.check_and_update_config method vllm_mlx.vllm_platform.mlxplatform.check_and_update_config(vllm_config: &#x27;vllmconfig&#x27;) -&gt; none check and update vllm configuration for mlx.">
<td><a href="../api/vllm_mlx/vllm_platform/#contract-vllm_mlx.vllm_platform.MLXPlatform.check_and_update_config"><code>vllm_mlx.vllm_platform.MLXPlatform.check_and_update_config</code></a></td>
<td>method</td>
<td><code>vllm_mlx.vllm_platform.MLXPlatform.check_and_update_config(vllm_config: &#x27;VllmConfig&#x27;) -&gt; None</code></td>
<td>Check and update vLLM configuration for MLX.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/vllm_platform.py#L251-L280">#L251-L280</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.vllm_platform.mlxplatform.get_attn_backend_cls method vllm_mlx.vllm_platform.mlxplatform.get_attn_backend_cls(selected_backend, head_size: int, dtype: torch.dtype, kv_cache_dtype, block_size: int, use_mla: bool, has_sink: bool, use_sparse: bool, attn_type: str | none = none) -&gt; str return mlx attention backend class path.">
<td><a href="../api/vllm_mlx/vllm_platform/#contract-vllm_mlx.vllm_platform.MLXPlatform.get_attn_backend_cls"><code>vllm_mlx.vllm_platform.MLXPlatform.get_attn_backend_cls</code></a></td>
<td>method</td>
<td><code>vllm_mlx.vllm_platform.MLXPlatform.get_attn_backend_cls(selected_backend, head_size: int, dtype: torch.dtype, kv_cache_dtype, block_size: int, use_mla: bool, has_sink: bool, use_sparse: bool, attn_type: str | None = None) -&gt; str</code></td>
<td>Return MLX attention backend class path.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/vllm_platform.py#L234-L248">#L234-L248</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.vllm_platform.mlxplatform.get_current_memory_usage method vllm_mlx.vllm_platform.mlxplatform.get_current_memory_usage(device = none) -&gt; float get current memory usage in bytes.">
<td><a href="../api/vllm_mlx/vllm_platform/#contract-vllm_mlx.vllm_platform.MLXPlatform.get_current_memory_usage"><code>vllm_mlx.vllm_platform.MLXPlatform.get_current_memory_usage</code></a></td>
<td>method</td>
<td><code>vllm_mlx.vllm_platform.MLXPlatform.get_current_memory_usage(device = None) -&gt; float</code></td>
<td>Get current memory usage in bytes.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/vllm_platform.py#L312-L323">#L312-L323</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.vllm_platform.mlxplatform.get_device_communicator_cls method vllm_mlx.vllm_platform.mlxplatform.get_device_communicator_cls() -&gt; str return the communicator class for distributed.">
<td><a href="../api/vllm_mlx/vllm_platform/#contract-vllm_mlx.vllm_platform.MLXPlatform.get_device_communicator_cls"><code>vllm_mlx.vllm_platform.MLXPlatform.get_device_communicator_cls</code></a></td>
<td>method</td>
<td><code>vllm_mlx.vllm_platform.MLXPlatform.get_device_communicator_cls() -&gt; str</code></td>
<td>Return the communicator class for distributed.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/vllm_platform.py#L341-L343">#L341-L343</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.vllm_platform.mlxplatform.get_device_name method vllm_mlx.vllm_platform.mlxplatform.get_device_name(device_id: int = 0) -&gt; str get the apple silicon chip name.">
<td><a href="../api/vllm_mlx/vllm_platform/#contract-vllm_mlx.vllm_platform.MLXPlatform.get_device_name"><code>vllm_mlx.vllm_platform.MLXPlatform.get_device_name</code></a></td>
<td>method</td>
<td><code>vllm_mlx.vllm_platform.MLXPlatform.get_device_name(device_id: int = 0) -&gt; str</code></td>
<td>Get the Apple Silicon chip name.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/vllm_platform.py#L181-L183">#L181-L183</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.vllm_platform.mlxplatform.get_device_total_memory method vllm_mlx.vllm_platform.mlxplatform.get_device_total_memory(device_id: int = 0) -&gt; int get total unified memory in bytes.">
<td><a href="../api/vllm_mlx/vllm_platform/#contract-vllm_mlx.vllm_platform.MLXPlatform.get_device_total_memory"><code>vllm_mlx.vllm_platform.MLXPlatform.get_device_total_memory</code></a></td>
<td>method</td>
<td><code>vllm_mlx.vllm_platform.MLXPlatform.get_device_total_memory(device_id: int = 0) -&gt; int</code></td>
<td>Get total unified memory in bytes.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/vllm_platform.py#L191-L193">#L191-L193</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.vllm_platform.mlxplatform.get_device_uuid method vllm_mlx.vllm_platform.mlxplatform.get_device_uuid(device_id: int = 0) -&gt; str get device uuid (not applicable for mlx).">
<td><a href="../api/vllm_mlx/vllm_platform/#contract-vllm_mlx.vllm_platform.MLXPlatform.get_device_uuid"><code>vllm_mlx.vllm_platform.MLXPlatform.get_device_uuid</code></a></td>
<td>method</td>
<td><code>vllm_mlx.vllm_platform.MLXPlatform.get_device_uuid(device_id: int = 0) -&gt; str</code></td>
<td>Get device UUID (not applicable for MLX).</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/vllm_platform.py#L186-L188">#L186-L188</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.vllm_platform.mlxplatform.get_punica_wrapper method vllm_mlx.vllm_platform.mlxplatform.get_punica_wrapper() -&gt; str return lora wrapper (not yet implemented for mlx).">
<td><a href="../api/vllm_mlx/vllm_platform/#contract-vllm_mlx.vllm_platform.MLXPlatform.get_punica_wrapper"><code>vllm_mlx.vllm_platform.MLXPlatform.get_punica_wrapper</code></a></td>
<td>method</td>
<td><code>vllm_mlx.vllm_platform.MLXPlatform.get_punica_wrapper() -&gt; str</code></td>
<td>Return LoRA wrapper (not yet implemented for MLX).</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/vllm_platform.py#L346-L348">#L346-L348</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.vllm_platform.mlxplatform.import_kernels method vllm_mlx.vllm_platform.mlxplatform.import_kernels() -&gt; none import mlx kernels (no custom c kernels).">
<td><a href="../api/vllm_mlx/vllm_platform/#contract-vllm_mlx.vllm_platform.MLXPlatform.import_kernels"><code>vllm_mlx.vllm_platform.MLXPlatform.import_kernels</code></a></td>
<td>method</td>
<td><code>vllm_mlx.vllm_platform.MLXPlatform.import_kernels() -&gt; None</code></td>
<td>Import MLX kernels (no custom C kernels).</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/vllm_platform.py#L228-L231">#L228-L231</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.vllm_platform.mlxplatform.inference_mode method vllm_mlx.vllm_platform.mlxplatform.inference_mode() -&gt; not annotated return inference mode context manager.">
<td><a href="../api/vllm_mlx/vllm_platform/#contract-vllm_mlx.vllm_platform.MLXPlatform.inference_mode"><code>vllm_mlx.vllm_platform.MLXPlatform.inference_mode</code></a></td>
<td>method</td>
<td><code>vllm_mlx.vllm_platform.MLXPlatform.inference_mode() -&gt; not annotated</code></td>
<td>Return inference mode context manager.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/vllm_platform.py#L196-L200">#L196-L200</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.vllm_platform.mlxplatform.is_cpu method vllm_mlx.vllm_platform.mlxplatform.is_cpu() -&gt; bool return ``false`` because mlx targets apple gpu acceleration here.">
<td><a href="../api/vllm_mlx/vllm_platform/#contract-vllm_mlx.vllm_platform.MLXPlatform.is_cpu"><code>vllm_mlx.vllm_platform.MLXPlatform.is_cpu</code></a></td>
<td>method</td>
<td><code>vllm_mlx.vllm_platform.MLXPlatform.is_cpu() -&gt; bool</code></td>
<td>Return ``False`` because MLX targets Apple GPU acceleration here.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/vllm_platform.py#L155-L158">#L155-L158</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.vllm_platform.mlxplatform.is_cuda method vllm_mlx.vllm_platform.mlxplatform.is_cuda() -&gt; bool return ``false`` because this platform does not use cuda.">
<td><a href="../api/vllm_mlx/vllm_platform/#contract-vllm_mlx.vllm_platform.MLXPlatform.is_cuda"><code>vllm_mlx.vllm_platform.MLXPlatform.is_cuda</code></a></td>
<td>method</td>
<td><code>vllm_mlx.vllm_platform.MLXPlatform.is_cuda() -&gt; bool</code></td>
<td>Return ``False`` because this platform does not use CUDA.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/vllm_platform.py#L135-L138">#L135-L138</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.vllm_platform.mlxplatform.is_cuda_alike method vllm_mlx.vllm_platform.mlxplatform.is_cuda_alike() -&gt; bool return ``false`` because mlx does not implement cuda semantics.">
<td><a href="../api/vllm_mlx/vllm_platform/#contract-vllm_mlx.vllm_platform.MLXPlatform.is_cuda_alike"><code>vllm_mlx.vllm_platform.MLXPlatform.is_cuda_alike</code></a></td>
<td>method</td>
<td><code>vllm_mlx.vllm_platform.MLXPlatform.is_cuda_alike() -&gt; bool</code></td>
<td>Return ``False`` because MLX does not implement CUDA semantics.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/vllm_platform.py#L170-L173">#L170-L173</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.vllm_platform.mlxplatform.is_mlx method vllm_mlx.vllm_platform.mlxplatform.is_mlx() -&gt; bool return ``true`` to identify the mlx platform plugin.">
<td><a href="../api/vllm_mlx/vllm_platform/#contract-vllm_mlx.vllm_platform.MLXPlatform.is_mlx"><code>vllm_mlx.vllm_platform.MLXPlatform.is_mlx</code></a></td>
<td>method</td>
<td><code>vllm_mlx.vllm_platform.MLXPlatform.is_mlx() -&gt; bool</code></td>
<td>Return ``True`` to identify the MLX platform plugin.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/vllm_platform.py#L160-L163">#L160-L163</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.vllm_platform.mlxplatform.is_out_of_tree method vllm_mlx.vllm_platform.mlxplatform.is_out_of_tree() -&gt; bool return ``true`` because mlx is registered as a vllm plugin.">
<td><a href="../api/vllm_mlx/vllm_platform/#contract-vllm_mlx.vllm_platform.MLXPlatform.is_out_of_tree"><code>vllm_mlx.vllm_platform.MLXPlatform.is_out_of_tree</code></a></td>
<td>method</td>
<td><code>vllm_mlx.vllm_platform.MLXPlatform.is_out_of_tree() -&gt; bool</code></td>
<td>Return ``True`` because MLX is registered as a vLLM plugin.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/vllm_platform.py#L165-L168">#L165-L168</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.vllm_platform.mlxplatform.is_pin_memory_available method vllm_mlx.vllm_platform.mlxplatform.is_pin_memory_available() -&gt; bool pin memory not needed with unified memory.">
<td><a href="../api/vllm_mlx/vllm_platform/#contract-vllm_mlx.vllm_platform.MLXPlatform.is_pin_memory_available"><code>vllm_mlx.vllm_platform.MLXPlatform.is_pin_memory_available</code></a></td>
<td>method</td>
<td><code>vllm_mlx.vllm_platform.MLXPlatform.is_pin_memory_available() -&gt; bool</code></td>
<td>Pin memory not needed with unified memory.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/vllm_platform.py#L307-L309">#L307-L309</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.vllm_platform.mlxplatform.is_rocm method vllm_mlx.vllm_platform.mlxplatform.is_rocm() -&gt; bool return ``false`` because this platform does not use rocm.">
<td><a href="../api/vllm_mlx/vllm_platform/#contract-vllm_mlx.vllm_platform.MLXPlatform.is_rocm"><code>vllm_mlx.vllm_platform.MLXPlatform.is_rocm</code></a></td>
<td>method</td>
<td><code>vllm_mlx.vllm_platform.MLXPlatform.is_rocm() -&gt; bool</code></td>
<td>Return ``False`` because this platform does not use ROCm.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/vllm_platform.py#L140-L143">#L140-L143</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.vllm_platform.mlxplatform.is_sleep_mode_available method vllm_mlx.vllm_platform.mlxplatform.is_sleep_mode_available() -&gt; bool return ``false`` because vllm sleep mode is unavailable on mlx.">
<td><a href="../api/vllm_mlx/vllm_platform/#contract-vllm_mlx.vllm_platform.MLXPlatform.is_sleep_mode_available"><code>vllm_mlx.vllm_platform.MLXPlatform.is_sleep_mode_available</code></a></td>
<td>method</td>
<td><code>vllm_mlx.vllm_platform.MLXPlatform.is_sleep_mode_available() -&gt; bool</code></td>
<td>Return ``False`` because vLLM sleep mode is unavailable on MLX.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/vllm_platform.py#L175-L178">#L175-L178</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.vllm_platform.mlxplatform.is_tpu method vllm_mlx.vllm_platform.mlxplatform.is_tpu() -&gt; bool return ``false`` because this platform is not a tpu backend.">
<td><a href="../api/vllm_mlx/vllm_platform/#contract-vllm_mlx.vllm_platform.MLXPlatform.is_tpu"><code>vllm_mlx.vllm_platform.MLXPlatform.is_tpu</code></a></td>
<td>method</td>
<td><code>vllm_mlx.vllm_platform.MLXPlatform.is_tpu() -&gt; bool</code></td>
<td>Return ``False`` because this platform is not a TPU backend.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/vllm_platform.py#L145-L148">#L145-L148</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.vllm_platform.mlxplatform.is_xpu method vllm_mlx.vllm_platform.mlxplatform.is_xpu() -&gt; bool return ``false`` because this platform does not use intel xpu.">
<td><a href="../api/vllm_mlx/vllm_platform/#contract-vllm_mlx.vllm_platform.MLXPlatform.is_xpu"><code>vllm_mlx.vllm_platform.MLXPlatform.is_xpu</code></a></td>
<td>method</td>
<td><code>vllm_mlx.vllm_platform.MLXPlatform.is_xpu() -&gt; bool</code></td>
<td>Return ``False`` because this platform does not use Intel XPU.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/vllm_platform.py#L150-L153">#L150-L153</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.vllm_platform.mlxplatform.seed_everything method vllm_mlx.vllm_platform.mlxplatform.seed_everything(seed: int | none = none) -&gt; none set random seeds for reproducibility.">
<td><a href="../api/vllm_mlx/vllm_platform/#contract-vllm_mlx.vllm_platform.MLXPlatform.seed_everything"><code>vllm_mlx.vllm_platform.MLXPlatform.seed_everything</code></a></td>
<td>method</td>
<td><code>vllm_mlx.vllm_platform.MLXPlatform.seed_everything(seed: int | None = None) -&gt; None</code></td>
<td>Set random seeds for reproducibility.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/vllm_platform.py#L209-L225">#L209-L225</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.vllm_platform.mlxplatform.set_device method vllm_mlx.vllm_platform.mlxplatform.set_device(device: torch.device) -&gt; none set the device (no-op for mlx, uses default device).">
<td><a href="../api/vllm_mlx/vllm_platform/#contract-vllm_mlx.vllm_platform.MLXPlatform.set_device"><code>vllm_mlx.vllm_platform.MLXPlatform.set_device</code></a></td>
<td>method</td>
<td><code>vllm_mlx.vllm_platform.MLXPlatform.set_device(device: torch.device) -&gt; None</code></td>
<td>Set the device (no-op for MLX, uses default device).</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/vllm_platform.py#L203-L206">#L203-L206</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.vllm_platform.mlxplatform.support_static_graph_mode method vllm_mlx.vllm_platform.mlxplatform.support_static_graph_mode() -&gt; bool static graph mode (cuda graphs) not supported.">
<td><a href="../api/vllm_mlx/vllm_platform/#contract-vllm_mlx.vllm_platform.MLXPlatform.support_static_graph_mode"><code>vllm_mlx.vllm_platform.MLXPlatform.support_static_graph_mode</code></a></td>
<td>method</td>
<td><code>vllm_mlx.vllm_platform.MLXPlatform.support_static_graph_mode() -&gt; bool</code></td>
<td>Static graph mode (CUDA graphs) not supported.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/vllm_platform.py#L336-L338">#L336-L338</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.vllm_platform.mlxplatform.supported_dtypes method vllm_mlx.vllm_platform.mlxplatform.supported_dtypes() -&gt; list[torch.dtype] return supported dtypes for mlx.">
<td><a href="../api/vllm_mlx/vllm_platform/#contract-vllm_mlx.vllm_platform.MLXPlatform.supported_dtypes"><code>vllm_mlx.vllm_platform.MLXPlatform.supported_dtypes</code></a></td>
<td>method</td>
<td><code>vllm_mlx.vllm_platform.MLXPlatform.supported_dtypes() -&gt; list[torch.dtype]</code></td>
<td>Return supported dtypes for MLX.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/vllm_platform.py#L122-L133">#L122-L133</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.vllm_platform.mlxplatform.supports_fp8 method vllm_mlx.vllm_platform.mlxplatform.supports_fp8() -&gt; bool fp8 not supported on mlx.">
<td><a href="../api/vllm_mlx/vllm_platform/#contract-vllm_mlx.vllm_platform.MLXPlatform.supports_fp8"><code>vllm_mlx.vllm_platform.MLXPlatform.supports_fp8</code></a></td>
<td>method</td>
<td><code>vllm_mlx.vllm_platform.MLXPlatform.supports_fp8() -&gt; bool</code></td>
<td>FP8 not supported on MLX.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/vllm_platform.py#L326-L328">#L326-L328</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.vllm_platform.mlxplatform.use_custom_allreduce method vllm_mlx.vllm_platform.mlxplatform.use_custom_allreduce() -&gt; bool custom allreduce not available.">
<td><a href="../api/vllm_mlx/vllm_platform/#contract-vllm_mlx.vllm_platform.MLXPlatform.use_custom_allreduce"><code>vllm_mlx.vllm_platform.MLXPlatform.use_custom_allreduce</code></a></td>
<td>method</td>
<td><code>vllm_mlx.vllm_platform.MLXPlatform.use_custom_allreduce() -&gt; bool</code></td>
<td>Custom allreduce not available.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/vllm_platform.py#L331-L333">#L331-L333</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.vllm_platform.mlxplatform.verify_model_arch method vllm_mlx.vllm_platform.mlxplatform.verify_model_arch(model_arch: str) -&gt; none verify model architecture is supported on mlx.">
<td><a href="../api/vllm_mlx/vllm_platform/#contract-vllm_mlx.vllm_platform.MLXPlatform.verify_model_arch"><code>vllm_mlx.vllm_platform.MLXPlatform.verify_model_arch</code></a></td>
<td>method</td>
<td><code>vllm_mlx.vllm_platform.MLXPlatform.verify_model_arch(model_arch: str) -&gt; None</code></td>
<td>Verify model architecture is supported on MLX.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/vllm_platform.py#L283-L294">#L283-L294</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.vllm_platform.mlxplatform.verify_quantization method vllm_mlx.vllm_platform.mlxplatform.verify_quantization(quant: str) -&gt; none verify quantization method is supported.">
<td><a href="../api/vllm_mlx/vllm_platform/#contract-vllm_mlx.vllm_platform.MLXPlatform.verify_quantization"><code>vllm_mlx.vllm_platform.MLXPlatform.verify_quantization</code></a></td>
<td>method</td>
<td><code>vllm_mlx.vllm_platform.MLXPlatform.verify_quantization(quant: str) -&gt; None</code></td>
<td>Verify quantization method is supported.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/vllm_platform.py#L297-L304">#L297-L304</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="class" data-symbol-search="vllm_mlx.worker.mlxworker class vllm_mlx.worker.mlxworker(vllm_config: &#x27;vllmconfig&#x27;, local_rank: int, rank: int, distributed_init_method: str, is_driver_worker: bool = false) worker implementation for mlx-based inference on apple silicon.">
<td><a href="../api/vllm_mlx/worker/#contract-vllm_mlx.worker.MLXWorker"><code>vllm_mlx.worker.MLXWorker</code></a></td>
<td>class</td>
<td><code>vllm_mlx.worker.MLXWorker(vllm_config: &#x27;VllmConfig&#x27;, local_rank: int, rank: int, distributed_init_method: str, is_driver_worker: bool = False)</code></td>
<td>Worker implementation for MLX-based inference on Apple Silicon.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/worker.py#L23-L278">#L23-L278</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.worker.mlxworker.__init__ method vllm_mlx.worker.mlxworker.__init__(vllm_config: &#x27;vllmconfig&#x27;, local_rank: int, rank: int, distributed_init_method: str, is_driver_worker: bool = false) -&gt; none initialize mlx worker.">
<td><a href="../api/vllm_mlx/worker/#contract-vllm_mlx.worker.MLXWorker.__init__"><code>vllm_mlx.worker.MLXWorker.__init__</code></a></td>
<td>method</td>
<td><code>vllm_mlx.worker.MLXWorker.__init__(vllm_config: &#x27;VllmConfig&#x27;, local_rank: int, rank: int, distributed_init_method: str, is_driver_worker: bool = False) -&gt; None</code></td>
<td>Initialize MLX worker.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/worker.py#L36-L75">#L36-L75</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.worker.mlxworker.__repr__ method vllm_mlx.worker.mlxworker.__repr__() -&gt; str method `mlxworker.__repr__` returns `f&#x27;&lt;mlxworker rank={self.rank} local_rank={self.local_rank}&gt;&#x27;`.">
<td><a href="../api/vllm_mlx/worker/#contract-vllm_mlx.worker.MLXWorker.__repr__"><code>vllm_mlx.worker.MLXWorker.__repr__</code></a></td>
<td>method</td>
<td><code>vllm_mlx.worker.MLXWorker.__repr__() -&gt; str</code></td>
<td>Method `MLXWorker.__repr__` returns `f&#x27;&lt;MLXWorker rank={self.rank} local_rank={self.local_rank}&gt;&#x27;`.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/worker.py#L277-L278">#L277-L278</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.worker.mlxworker.add_lora method vllm_mlx.worker.mlxworker.add_lora(lora_request) -&gt; bool report that dynamically adding a lora adapter is unsupported.">
<td><a href="../api/vllm_mlx/worker/#contract-vllm_mlx.worker.MLXWorker.add_lora"><code>vllm_mlx.worker.MLXWorker.add_lora</code></a></td>
<td>method</td>
<td><code>vllm_mlx.worker.MLXWorker.add_lora(lora_request) -&gt; bool</code></td>
<td>Report that dynamically adding a LoRA adapter is unsupported.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/worker.py#L222-L226">#L222-L226</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.worker.mlxworker.check_health method vllm_mlx.worker.mlxworker.check_health() -&gt; none check worker health.">
<td><a href="../api/vllm_mlx/worker/#contract-vllm_mlx.worker.MLXWorker.check_health"><code>vllm_mlx.worker.MLXWorker.check_health</code></a></td>
<td>method</td>
<td><code>vllm_mlx.worker.MLXWorker.check_health() -&gt; None</code></td>
<td>Check worker health.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/worker.py#L191-L200">#L191-L200</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.worker.mlxworker.compile_or_warm_up_model method vllm_mlx.worker.mlxworker.compile_or_warm_up_model() -&gt; none warm up model for inference.">
<td><a href="../api/vllm_mlx/worker/#contract-vllm_mlx.worker.MLXWorker.compile_or_warm_up_model"><code>vllm_mlx.worker.MLXWorker.compile_or_warm_up_model</code></a></td>
<td>method</td>
<td><code>vllm_mlx.worker.MLXWorker.compile_or_warm_up_model() -&gt; None</code></td>
<td>Warm up model for inference.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/worker.py#L161-L165">#L161-L165</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.worker.mlxworker.determine_available_memory method vllm_mlx.worker.mlxworker.determine_available_memory() -&gt; int determine available memory for kv cache.">
<td><a href="../api/vllm_mlx/worker/#contract-vllm_mlx.worker.MLXWorker.determine_available_memory"><code>vllm_mlx.worker.MLXWorker.determine_available_memory</code></a></td>
<td>method</td>
<td><code>vllm_mlx.worker.MLXWorker.determine_available_memory() -&gt; int</code></td>
<td>Determine available memory for KV cache.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/worker.py#L113-L143">#L113-L143</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.worker.mlxworker.execute_model method vllm_mlx.worker.mlxworker.execute_model(scheduler_output: &#x27;scheduleroutput&#x27;) -&gt; &#x27;modelrunneroutput | none&#x27; execute model inference for the given scheduler output.">
<td><a href="../api/vllm_mlx/worker/#contract-vllm_mlx.worker.MLXWorker.execute_model"><code>vllm_mlx.worker.MLXWorker.execute_model</code></a></td>
<td>method</td>
<td><code>vllm_mlx.worker.MLXWorker.execute_model(scheduler_output: &#x27;SchedulerOutput&#x27;) -&gt; &#x27;ModelRunnerOutput | None&#x27;</code></td>
<td>Execute model inference for the given scheduler output.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/worker.py#L167-L183">#L167-L183</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.worker.mlxworker.get_cache_block_size_bytes method vllm_mlx.worker.mlxworker.get_cache_block_size_bytes() -&gt; int get size of a cache block in bytes.">
<td><a href="../api/vllm_mlx/worker/#contract-vllm_mlx.worker.MLXWorker.get_cache_block_size_bytes"><code>vllm_mlx.worker.MLXWorker.get_cache_block_size_bytes</code></a></td>
<td>method</td>
<td><code>vllm_mlx.worker.MLXWorker.get_cache_block_size_bytes() -&gt; int</code></td>
<td>Get size of a cache block in bytes.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/worker.py#L259-L271">#L259-L271</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.worker.mlxworker.get_kv_cache_spec method vllm_mlx.worker.mlxworker.get_kv_cache_spec() -&gt; dict get kv cache specification.">
<td><a href="../api/vllm_mlx/worker/#contract-vllm_mlx.worker.MLXWorker.get_kv_cache_spec"><code>vllm_mlx.worker.MLXWorker.get_kv_cache_spec</code></a></td>
<td>method</td>
<td><code>vllm_mlx.worker.MLXWorker.get_kv_cache_spec() -&gt; dict</code></td>
<td>Get KV cache specification.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/worker.py#L155-L159">#L155-L159</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.worker.mlxworker.get_model method vllm_mlx.worker.mlxworker.get_model() -&gt; not annotated get the underlying model.">
<td><a href="../api/vllm_mlx/worker/#contract-vllm_mlx.worker.MLXWorker.get_model"><code>vllm_mlx.worker.MLXWorker.get_model</code></a></td>
<td>method</td>
<td><code>vllm_mlx.worker.MLXWorker.get_model() -&gt; not annotated</code></td>
<td>Get the underlying model.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/worker.py#L185-L189">#L185-L189</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.worker.mlxworker.init_device method vllm_mlx.worker.mlxworker.init_device() -&gt; none initialize mlx device and verify it&#x27;s working.">
<td><a href="../api/vllm_mlx/worker/#contract-vllm_mlx.worker.MLXWorker.init_device"><code>vllm_mlx.worker.MLXWorker.init_device</code></a></td>
<td>method</td>
<td><code>vllm_mlx.worker.MLXWorker.init_device() -&gt; None</code></td>
<td>Initialize MLX device and verify it&#x27;s working.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/worker.py#L77-L103">#L77-L103</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.worker.mlxworker.initialize_cache method vllm_mlx.worker.mlxworker.initialize_cache(num_gpu_blocks: int, num_cpu_blocks: int) -&gt; none initialize kv cache with the given size.">
<td><a href="../api/vllm_mlx/worker/#contract-vllm_mlx.worker.MLXWorker.initialize_cache"><code>vllm_mlx.worker.MLXWorker.initialize_cache</code></a></td>
<td>method</td>
<td><code>vllm_mlx.worker.MLXWorker.initialize_cache(num_gpu_blocks: int, num_cpu_blocks: int) -&gt; None</code></td>
<td>Initialize KV cache with the given size.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/worker.py#L145-L153">#L145-L153</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.worker.mlxworker.list_loras method vllm_mlx.worker.mlxworker.list_loras() -&gt; set[int] return the empty set because runtime lora adapters are unsupported.">
<td><a href="../api/vllm_mlx/worker/#contract-vllm_mlx.worker.MLXWorker.list_loras"><code>vllm_mlx.worker.MLXWorker.list_loras</code></a></td>
<td>method</td>
<td><code>vllm_mlx.worker.MLXWorker.list_loras() -&gt; set[int]</code></td>
<td>Return the empty set because runtime LoRA adapters are unsupported.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/worker.py#L238-L241">#L238-L241</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.worker.mlxworker.load_model method vllm_mlx.worker.mlxworker.load_model() -&gt; none load model using mlx-lm.">
<td><a href="../api/vllm_mlx/worker/#contract-vllm_mlx.worker.MLXWorker.load_model"><code>vllm_mlx.worker.MLXWorker.load_model</code></a></td>
<td>method</td>
<td><code>vllm_mlx.worker.MLXWorker.load_model() -&gt; None</code></td>
<td>Load model using mlx-lm.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/worker.py#L105-L111">#L105-L111</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.worker.mlxworker.pin_lora method vllm_mlx.worker.mlxworker.pin_lora(lora_id: int) -&gt; bool report that pinning a lora adapter is unsupported.">
<td><a href="../api/vllm_mlx/worker/#contract-vllm_mlx.worker.MLXWorker.pin_lora"><code>vllm_mlx.worker.MLXWorker.pin_lora</code></a></td>
<td>method</td>
<td><code>vllm_mlx.worker.MLXWorker.pin_lora(lora_id: int) -&gt; bool</code></td>
<td>Report that pinning a LoRA adapter is unsupported.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/worker.py#L233-L236">#L233-L236</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.worker.mlxworker.profile method vllm_mlx.worker.mlxworker.profile(is_start: bool = true) -&gt; none profiling (not yet implemented for mlx).">
<td><a href="../api/vllm_mlx/worker/#contract-vllm_mlx.worker.MLXWorker.profile"><code>vllm_mlx.worker.MLXWorker.profile</code></a></td>
<td>method</td>
<td><code>vllm_mlx.worker.MLXWorker.profile(is_start: bool = True) -&gt; None</code></td>
<td>Profiling (not yet implemented for MLX).</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/worker.py#L273-L275">#L273-L275</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.worker.mlxworker.remove_lora method vllm_mlx.worker.mlxworker.remove_lora(lora_id: int) -&gt; bool report that dynamically removing a lora adapter is unsupported.">
<td><a href="../api/vllm_mlx/worker/#contract-vllm_mlx.worker.MLXWorker.remove_lora"><code>vllm_mlx.worker.MLXWorker.remove_lora</code></a></td>
<td>method</td>
<td><code>vllm_mlx.worker.MLXWorker.remove_lora(lora_id: int) -&gt; bool</code></td>
<td>Report that dynamically removing a LoRA adapter is unsupported.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/worker.py#L228-L231">#L228-L231</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.worker.mlxworker.shutdown method vllm_mlx.worker.mlxworker.shutdown() -&gt; none clean up resources.">
<td><a href="../api/vllm_mlx/worker/#contract-vllm_mlx.worker.MLXWorker.shutdown"><code>vllm_mlx.worker.MLXWorker.shutdown</code></a></td>
<td>method</td>
<td><code>vllm_mlx.worker.MLXWorker.shutdown() -&gt; None</code></td>
<td>Clean up resources.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/worker.py#L202-L219">#L202-L219</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.worker.mlxworker.sleep method vllm_mlx.worker.mlxworker.sleep(level: int = 1) -&gt; none leave the worker active because mlx unified memory has no sleep mode.">
<td><a href="../api/vllm_mlx/worker/#contract-vllm_mlx.worker.MLXWorker.sleep"><code>vllm_mlx.worker.MLXWorker.sleep</code></a></td>
<td>method</td>
<td><code>vllm_mlx.worker.MLXWorker.sleep(level: int = 1) -&gt; None</code></td>
<td>Leave the worker active because MLX unified memory has no sleep mode.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/worker.py#L244-L247">#L244-L247</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.worker.mlxworker.vocab_size method vllm_mlx.worker.mlxworker.vocab_size() -&gt; int get vocabulary size.">
<td><a href="../api/vllm_mlx/worker/#contract-vllm_mlx.worker.MLXWorker.vocab_size"><code>vllm_mlx.worker.MLXWorker.vocab_size</code></a></td>
<td>method</td>
<td><code>vllm_mlx.worker.MLXWorker.vocab_size() -&gt; int</code></td>
<td>Get vocabulary size.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/worker.py#L255-L257">#L255-L257</a></td>
</tr>
<tr data-api-symbol data-symbol-kind="method" data-symbol-search="vllm_mlx.worker.mlxworker.wake_up method vllm_mlx.worker.mlxworker.wake_up(tags: list[str] | none = none) -&gt; none perform no work because the mlx worker never enters sleep mode.">
<td><a href="../api/vllm_mlx/worker/#contract-vllm_mlx.worker.MLXWorker.wake_up"><code>vllm_mlx.worker.MLXWorker.wake_up</code></a></td>
<td>method</td>
<td><code>vllm_mlx.worker.MLXWorker.wake_up(tags: list[str] | None = None) -&gt; None</code></td>
<td>Perform no work because the MLX worker never enters sleep mode.</td>
<td><a href="https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/worker.py#L249-L252">#L249-L252</a></td>
</tr>
</tbody>
</table>
</div>
