# `vllm_mlx.request`

Request management for vllm-mlx continuous batching.

[View the complete module source at #L1-L227](https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/request.py#L1-L227).

## API details

Each callable below includes its exact signature, type annotations, inputs, defaults, return contract, documented exceptions, implementation source, and parsed docstring sections when the source provides them.

::: vllm_mlx.request
    options:
      members:
        - RequestStatus
        - SamplingParams
        - Request
        - RequestOutput
      filters: []
      show_if_no_docstring: true

## Complete contract reference

Expand any definition for its exact inputs, annotations, defaults, return contract, directly raised exceptions, source-grounded behavior, and immutable line link. This section includes private and nested definitions that ordinary API generators omit.

<details class="api-contract" id="contract-vllm_mlx.request.RequestStatus" markdown="1">
<summary><code>vllm_mlx.request.RequestStatus</code> · class</summary>

```python
vllm_mlx.request.RequestStatus()
```

Status of a request in the scheduling system.

**Parameters**

This callable has no explicit inputs.

**Returns**

- Constructs: `vllm_mlx.request.RequestStatus`

**Exceptions and behavior**

Class `RequestStatus` derives from `enum.IntEnum` and declares 2 direct member(s).
No direct `raise` statement appears in this definition.

[View source #L18-L48](https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/request.py#L18-L48).

</details>

<details class="api-contract" id="contract-vllm_mlx.request.RequestStatus.is_finished" markdown="1">
<summary><code>vllm_mlx.request.RequestStatus.is_finished</code> · method</summary>

```python
vllm_mlx.request.RequestStatus.is_finished(status: 'RequestStatus') -> bool
```

Check if the status indicates a finished request.

**Parameters**

| Name | Type | Required | Default | Description |
| --- | --- | --- | --- | --- |
| `status` | `'RequestStatus'` | `yes` | `none` | Required positional or keyword input. |

**Returns**

- Type: `bool`
- Direct return expressions: `status > RequestStatus.PREEMPTED`

**Exceptions and behavior**

Method `RequestStatus.is_finished` returns `status > RequestStatus.PREEMPTED`.
No direct `raise` statement appears in this definition.

[View source #L35-L37](https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/request.py#L35-L37).

</details>

<details class="api-contract" id="contract-vllm_mlx.request.RequestStatus.get_finish_reason" markdown="1">
<summary><code>vllm_mlx.request.RequestStatus.get_finish_reason</code> · method</summary>

```python
vllm_mlx.request.RequestStatus.get_finish_reason(status: 'RequestStatus') -> Optional[str]
```

Get the finish reason string for a finished status.

**Parameters**

| Name | Type | Required | Default | Description |
| --- | --- | --- | --- | --- |
| `status` | `'RequestStatus'` | `yes` | `none` | Required positional or keyword input. |

**Returns**

- Type: `Optional[str]`
- Direct return expressions: `'stop'`; `'length'`; `'abort'`; `None`

**Exceptions and behavior**

Method `RequestStatus.get_finish_reason` has 4 explicit return paths.
No direct `raise` statement appears in this definition.

[View source #L40-L48](https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/request.py#L40-L48).

</details>

<details class="api-contract" id="contract-vllm_mlx.request.SamplingParams" markdown="1">
<summary><code>vllm_mlx.request.SamplingParams</code> · class</summary>

```python
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.

**Parameters**

| Name | Type | Required | Default | Description |
| --- | --- | --- | --- | --- |
| `max_tokens` | `int` | `no` | `256` | Optional constructor field; defaults to `256`. |
| `temperature` | `float` | `no` | `0.7` | Optional constructor field; defaults to `0.7`. |
| `top_p` | `float` | `no` | `0.9` | Optional constructor field; defaults to `0.9`. |
| `top_k` | `int` | `no` | `0` | Optional constructor field; defaults to `0`. |
| `min_p` | `float` | `no` | `0.0` | Optional constructor field; defaults to `0.0`. |
| `presence_penalty` | `float` | `no` | `0.0` | Optional constructor field; defaults to `0.0`. |
| `repetition_penalty` | `float` | `no` | `1.0` | Optional constructor field; defaults to `1.0`. |
| `stop` | `Optional[List[str]]` | `no` | `None` | Optional constructor field; defaults to `None`. |
| `stop_token_ids` | `Optional[List[int]]` | `no` | `None` | Optional constructor field; defaults to `None`. |
| `logits_processors` | `Optional[List[Callable]]` | `no` | `None` | Optional constructor field; defaults to `None`. |

**Returns**

- Constructs: `vllm_mlx.request.SamplingParams`

**Exceptions and behavior**

Class `SamplingParams` declares 1 direct member(s).
No direct `raise` statement appears in this definition.

[View source #L52-L73](https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/request.py#L52-L73).

</details>

<details class="api-contract" id="contract-vllm_mlx.request.SamplingParams.__post_init__" markdown="1">
<summary><code>vllm_mlx.request.SamplingParams.__post_init__</code> · method</summary>

```python
vllm_mlx.request.SamplingParams.__post_init__() -> not annotated
```

Method `SamplingParams.__post_init__` updates `self.stop`, `self.stop_token_ids`.

**Parameters**

This callable has no explicit inputs.

**Returns**

- Type: `not annotated`

**Exceptions and behavior**

Method `SamplingParams.__post_init__` updates `self.stop`, `self.stop_token_ids`.
No direct `raise` statement appears in this definition.

[View source #L69-L73](https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/request.py#L69-L73).

</details>

<details class="api-contract" id="contract-vllm_mlx.request.Request" markdown="1">
<summary><code>vllm_mlx.request.Request</code> · class</summary>

```python
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 = '', 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['BlockTable'] = 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.

**Parameters**

| Name | Type | Required | Default | Description |
| --- | --- | --- | --- | --- |
| `request_id` | `str` | `yes` | `none` | Required constructor field. |
| `prompt` | `Union[str, List[int]]` | `yes` | `none` | Required constructor field. |
| `sampling_params` | `SamplingParams` | `yes` | `none` | Required constructor field. |
| `arrival_time` | `float` | `no` | `field(default_factory=time.time)` | Optional constructor field; defaults to `field(default_factory=time.time)`. |
| `priority` | `int` | `no` | `0` | Optional constructor field; defaults to `0`. |
| `prompt_token_ids` | `Optional[List[int]]` | `no` | `None` | Optional constructor field; defaults to `None`. |
| `num_prompt_tokens` | `int` | `no` | `0` | Optional constructor field; defaults to `0`. |
| `status` | `RequestStatus` | `no` | `RequestStatus.WAITING` | Optional constructor field; defaults to `RequestStatus.WAITING`. |
| `num_computed_tokens` | `int` | `no` | `0` | Optional constructor field; defaults to `0`. |
| `output_token_ids` | `List[int]` | `no` | `field(default_factory=list)` | Optional constructor field; defaults to `field(default_factory=list)`. |
| `output_text` | `str` | `no` | `''` | Optional constructor field; defaults to `''`. |
| `batch_uid` | `Optional[int]` | `no` | `None` | Optional constructor field; defaults to `None`. |
| `prompt_cache` | `Optional[List[Any]]` | `no` | `None` | Optional constructor field; defaults to `None`. |
| `cached_tokens` | `int` | `no` | `0` | Optional constructor field; defaults to `0`. |
| `remaining_tokens` | `Optional[List[int]]` | `no` | `None` | Optional constructor field; defaults to `None`. |
| `prefix_boundary` | `int` | `no` | `0` | Optional constructor field; defaults to `0`. |
| `block_table` | `Optional['BlockTable']` | `no` | `None` | Optional constructor field; defaults to `None`. |
| `shared_prefix_blocks` | `int` | `no` | `0` | Optional constructor field; defaults to `0`. |
| `images` | `Optional[List[Any]]` | `no` | `None` | Optional constructor field; defaults to `None`. |
| `videos` | `Optional[List[Any]]` | `no` | `None` | Optional constructor field; defaults to `None`. |
| `pixel_values` | `Optional[Any]` | `no` | `None` | Optional constructor field; defaults to `None`. |
| `image_grid_thw` | `Optional[Any]` | `no` | `None` | Optional constructor field; defaults to `None`. |
| `attention_mask` | `Optional[Any]` | `no` | `None` | Optional constructor field; defaults to `None`. |
| `multimodal_kwargs` | `Optional[Dict[str, Any]]` | `no` | `None` | Optional constructor field; defaults to `None`. |
| `is_multimodal` | `bool` | `no` | `False` | Optional constructor field; defaults to `False`. |
| `finish_reason` | `Optional[str]` | `no` | `None` | Optional constructor field; defaults to `None`. |
| `first_token_time` | `Optional[float]` | `no` | `None` | Optional constructor field; defaults to `None`. |
| `cache_hit_type` | `Optional[str]` | `no` | `None` | Optional constructor field; defaults to `None`. |

**Returns**

- Constructs: `vllm_mlx.request.Request`

**Exceptions and behavior**

Class `Request` declares 10 direct member(s).
No direct `raise` statement appears in this definition.

[View source #L77-L192](https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/request.py#L77-L192).

</details>

<details class="api-contract" id="contract-vllm_mlx.request.Request.num_output_tokens" markdown="1">
<summary><code>vllm_mlx.request.Request.num_output_tokens</code> · method</summary>

```python
vllm_mlx.request.Request.num_output_tokens() -> int
```

Number of output tokens generated so far.

**Parameters**

This callable has no explicit inputs.

**Returns**

- Type: `int`
- Direct return expressions: `len(self.output_token_ids)`

**Exceptions and behavior**

Method `Request.num_output_tokens` calls `len`; returns `len(self.output_token_ids)`.
No direct `raise` statement appears in this definition.

[View source #L146-L148](https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/request.py#L146-L148).

</details>

<details class="api-contract" id="contract-vllm_mlx.request.Request.num_tokens" markdown="1">
<summary><code>vllm_mlx.request.Request.num_tokens</code> · method</summary>

```python
vllm_mlx.request.Request.num_tokens() -> int
```

Total number of tokens (prompt + output).

**Parameters**

This callable has no explicit inputs.

**Returns**

- Type: `int`
- Direct return expressions: `self.num_prompt_tokens + self.num_output_tokens`

**Exceptions and behavior**

Method `Request.num_tokens` returns `self.num_prompt_tokens + self.num_output_tokens`.
No direct `raise` statement appears in this definition.

[View source #L151-L153](https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/request.py#L151-L153).

</details>

<details class="api-contract" id="contract-vllm_mlx.request.Request.max_tokens" markdown="1">
<summary><code>vllm_mlx.request.Request.max_tokens</code> · method</summary>

```python
vllm_mlx.request.Request.max_tokens() -> int
```

Maximum output tokens for this request.

**Parameters**

This callable has no explicit inputs.

**Returns**

- Type: `int`
- Direct return expressions: `self.sampling_params.max_tokens`

**Exceptions and behavior**

Method `Request.max_tokens` returns `self.sampling_params.max_tokens`.
No direct `raise` statement appears in this definition.

[View source #L156-L158](https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/request.py#L156-L158).

</details>

<details class="api-contract" id="contract-vllm_mlx.request.Request.is_finished" markdown="1">
<summary><code>vllm_mlx.request.Request.is_finished</code> · method</summary>

```python
vllm_mlx.request.Request.is_finished() -> bool
```

Check if request has finished.

**Parameters**

This callable has no explicit inputs.

**Returns**

- Type: `bool`
- Direct return expressions: `RequestStatus.is_finished(self.status)`

**Exceptions and behavior**

Method `Request.is_finished` calls `RequestStatus.is_finished`; returns `RequestStatus.is_finished(self.status)`.
No direct `raise` statement appears in this definition.

[View source #L160-L162](https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/request.py#L160-L162).

</details>

<details class="api-contract" id="contract-vllm_mlx.request.Request.get_finish_reason" markdown="1">
<summary><code>vllm_mlx.request.Request.get_finish_reason</code> · method</summary>

```python
vllm_mlx.request.Request.get_finish_reason() -> Optional[str]
```

Get the finish reason if finished.

**Parameters**

This callable has no explicit inputs.

**Returns**

- Type: `Optional[str]`
- Direct return expressions: `self.finish_reason`; `RequestStatus.get_finish_reason(self.status)`

**Exceptions and behavior**

Method `Request.get_finish_reason` calls `RequestStatus.get_finish_reason`; has 2 explicit return paths.
No direct `raise` statement appears in this definition.

[View source #L164-L168](https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/request.py#L164-L168).

</details>

<details class="api-contract" id="contract-vllm_mlx.request.Request.append_output_token" markdown="1">
<summary><code>vllm_mlx.request.Request.append_output_token</code> · method</summary>

```python
vllm_mlx.request.Request.append_output_token(token_id: int) -> None
```

Append a generated token to the output.

**Parameters**

| Name | Type | Required | Default | Description |
| --- | --- | --- | --- | --- |
| `token_id` | `int` | `yes` | `none` | Required positional or keyword input. |

**Returns**

- Type: `None`

**Exceptions and behavior**

Method `Request.append_output_token` updates `self.num_computed_tokens`; calls `self.output_token_ids.append`.
No direct `raise` statement appears in this definition.

[View source #L170-L173](https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/request.py#L170-L173).

</details>

<details class="api-contract" id="contract-vllm_mlx.request.Request.set_finished" markdown="1">
<summary><code>vllm_mlx.request.Request.set_finished</code> · method</summary>

```python
vllm_mlx.request.Request.set_finished(status: RequestStatus, reason: Optional[str] = None) -> None
```

Mark the request as finished.

**Parameters**

| Name | Type | Required | Default | Description |
| --- | --- | --- | --- | --- |
| `status` | `RequestStatus` | `yes` | `none` | Required positional or keyword input. |
| `reason` | `Optional[str]` | `no` | `None` | Optional positional or keyword input; defaults to `None`. |

**Returns**

- Type: `None`

**Exceptions and behavior**

Method `Request.set_finished` updates `self.status`, `self.finish_reason`; calls `RequestStatus.get_finish_reason`.
No direct `raise` statement appears in this definition.

[View source #L175-L178](https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/request.py#L175-L178).

</details>

<details class="api-contract" id="contract-vllm_mlx.request.Request.__lt__" markdown="1">
<summary><code>vllm_mlx.request.Request.__lt__</code> · method</summary>

```python
vllm_mlx.request.Request.__lt__(other: 'Request') -> bool
```

Compare requests for priority queue ordering.

**Parameters**

| Name | Type | Required | Default | Description |
| --- | --- | --- | --- | --- |
| `other` | `'Request'` | `yes` | `none` | Required positional or keyword input. |

**Returns**

- Type: `bool`
- Direct return expressions: `self.priority < other.priority`; `self.arrival_time < other.arrival_time`

**Exceptions and behavior**

Method `Request.__lt__` has 2 explicit return paths.
No direct `raise` statement appears in this definition.

[View source #L180-L184](https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/request.py#L180-L184).

</details>

<details class="api-contract" id="contract-vllm_mlx.request.Request.__hash__" markdown="1">
<summary><code>vllm_mlx.request.Request.__hash__</code> · method</summary>

```python
vllm_mlx.request.Request.__hash__() -> int
```

Method `Request.__hash__` calls `hash`; returns `hash(self.request_id)`.

**Parameters**

This callable has no explicit inputs.

**Returns**

- Type: `int`
- Direct return expressions: `hash(self.request_id)`

**Exceptions and behavior**

Method `Request.__hash__` calls `hash`; returns `hash(self.request_id)`.
No direct `raise` statement appears in this definition.

[View source #L186-L187](https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/request.py#L186-L187).

</details>

<details class="api-contract" id="contract-vllm_mlx.request.Request.__eq__" markdown="1">
<summary><code>vllm_mlx.request.Request.__eq__</code> · method</summary>

```python
vllm_mlx.request.Request.__eq__(other: object) -> bool
```

Method `Request.__eq__` calls `isinstance`; has 2 explicit return paths.

**Parameters**

| Name | Type | Required | Default | Description |
| --- | --- | --- | --- | --- |
| `other` | `object` | `yes` | `none` | Required positional or keyword input. |

**Returns**

- Type: `bool`
- Direct return expressions: `False`; `self.request_id == other.request_id`

**Exceptions and behavior**

Method `Request.__eq__` calls `isinstance`; has 2 explicit return paths.
No direct `raise` statement appears in this definition.

[View source #L189-L192](https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/request.py#L189-L192).

</details>

<details class="api-contract" id="contract-vllm_mlx.request.RequestOutput" markdown="1">
<summary><code>vllm_mlx.request.RequestOutput</code> · class</summary>

```python
vllm_mlx.request.RequestOutput(request_id: str, new_token_ids: List[int] = field(default_factory=list), new_text: str = '', output_token_ids: List[int] = field(default_factory=list), output_text: str = '', 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.

**Parameters**

| Name | Type | Required | Default | Description |
| --- | --- | --- | --- | --- |
| `request_id` | `str` | `yes` | `none` | Required constructor field. |
| `new_token_ids` | `List[int]` | `no` | `field(default_factory=list)` | Optional constructor field; defaults to `field(default_factory=list)`. |
| `new_text` | `str` | `no` | `''` | Optional constructor field; defaults to `''`. |
| `output_token_ids` | `List[int]` | `no` | `field(default_factory=list)` | Optional constructor field; defaults to `field(default_factory=list)`. |
| `output_text` | `str` | `no` | `''` | Optional constructor field; defaults to `''`. |
| `finished` | `bool` | `no` | `False` | Optional constructor field; defaults to `False`. |
| `finish_reason` | `Optional[str]` | `no` | `None` | Optional constructor field; defaults to `None`. |
| `prompt_tokens` | `int` | `no` | `0` | Optional constructor field; defaults to `0`. |
| `completion_tokens` | `int` | `no` | `0` | Optional constructor field; defaults to `0`. |
| `mtp_drafts` | `int` | `no` | `0` | Optional constructor field; defaults to `0`. |
| `mtp_accepted` | `int` | `no` | `0` | Optional constructor field; defaults to `0`. |

**Returns**

- Constructs: `vllm_mlx.request.RequestOutput`

**Exceptions and behavior**

Class `RequestOutput` declares 1 direct member(s).
No direct `raise` statement appears in this definition.

[View source #L196-L227](https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/request.py#L196-L227).

</details>

<details class="api-contract" id="contract-vllm_mlx.request.RequestOutput.usage" markdown="1">
<summary><code>vllm_mlx.request.RequestOutput.usage</code> · method</summary>

```python
vllm_mlx.request.RequestOutput.usage() -> Dict[str, int]
```

Return usage statistics compatible with OpenAI API.

**Parameters**

This callable has no explicit inputs.

**Returns**

- Type: `Dict[str, int]`
- Direct return expressions: `{'prompt_tokens': self.prompt_tokens, 'completion_tokens': self.completion_tokens, 'total_tokens': self.prompt_tokens +…`

**Exceptions and behavior**

Method `RequestOutput.usage` returns `{'prompt_tokens': self.prompt_tokens, 'completion_tokens': self.completion_tokens, 'total_tokens': self.prompt_tokens +…`.
No direct `raise` statement appears in this definition.

[View source #L221-L227](https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/request.py#L221-L227).

</details>

## Complete symbol map

This map also includes private definitions and nested helpers. The signature column exposes every explicit input even when an internal helper has no dedicated parameter prose.

| Symbol | Kind | Signature and inputs | What it does | Source |
| --- | --- | --- | --- | --- |
| [`RequestStatus`](#contract-vllm_mlx.request.RequestStatus) | class | `RequestStatus()` | Status of a request in the scheduling system. | [#L18-L48](https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/request.py#L18-L48) |
| [`RequestStatus.is_finished`](#contract-vllm_mlx.request.RequestStatus.is_finished) | method | `RequestStatus.is_finished(status: 'RequestStatus') -> bool` | Check if the status indicates a finished request. | [#L35-L37](https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/request.py#L35-L37) |
| [`RequestStatus.get_finish_reason`](#contract-vllm_mlx.request.RequestStatus.get_finish_reason) | method | `RequestStatus.get_finish_reason(status: 'RequestStatus') -> Optional[str]` | Get the finish reason string for a finished status. | [#L40-L48](https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/request.py#L40-L48) |
| [`SamplingParams`](#contract-vllm_mlx.request.SamplingParams) | class | `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. | [#L52-L73](https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/request.py#L52-L73) |
| [`SamplingParams.__post_init__`](#contract-vllm_mlx.request.SamplingParams.__post_init__) | method | `SamplingParams.__post_init__() -> not annotated` | Method `SamplingParams.__post_init__` updates `self.stop`, `self.stop_token_ids`. | [#L69-L73](https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/request.py#L69-L73) |
| [`Request`](#contract-vllm_mlx.request.Request) | class | `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 = '', 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['BlockTable'] = 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. | [#L77-L192](https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/request.py#L77-L192) |
| [`Request.num_output_tokens`](#contract-vllm_mlx.request.Request.num_output_tokens) | method | `Request.num_output_tokens() -> int` | Number of output tokens generated so far. | [#L146-L148](https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/request.py#L146-L148) |
| [`Request.num_tokens`](#contract-vllm_mlx.request.Request.num_tokens) | method | `Request.num_tokens() -> int` | Total number of tokens (prompt + output). | [#L151-L153](https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/request.py#L151-L153) |
| [`Request.max_tokens`](#contract-vllm_mlx.request.Request.max_tokens) | method | `Request.max_tokens() -> int` | Maximum output tokens for this request. | [#L156-L158](https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/request.py#L156-L158) |
| [`Request.is_finished`](#contract-vllm_mlx.request.Request.is_finished) | method | `Request.is_finished() -> bool` | Check if request has finished. | [#L160-L162](https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/request.py#L160-L162) |
| [`Request.get_finish_reason`](#contract-vllm_mlx.request.Request.get_finish_reason) | method | `Request.get_finish_reason() -> Optional[str]` | Get the finish reason if finished. | [#L164-L168](https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/request.py#L164-L168) |
| [`Request.append_output_token`](#contract-vllm_mlx.request.Request.append_output_token) | method | `Request.append_output_token(token_id: int) -> None` | Append a generated token to the output. | [#L170-L173](https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/request.py#L170-L173) |
| [`Request.set_finished`](#contract-vllm_mlx.request.Request.set_finished) | method | `Request.set_finished(status: RequestStatus, reason: Optional[str] = None) -> None` | Mark the request as finished. | [#L175-L178](https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/request.py#L175-L178) |
| [`Request.__lt__`](#contract-vllm_mlx.request.Request.__lt__) | method | `Request.__lt__(other: 'Request') -> bool` | Compare requests for priority queue ordering. | [#L180-L184](https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/request.py#L180-L184) |
| [`Request.__hash__`](#contract-vllm_mlx.request.Request.__hash__) | method | `Request.__hash__() -> int` | Method `Request.__hash__` calls `hash`; returns `hash(self.request_id)`. | [#L186-L187](https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/request.py#L186-L187) |
| [`Request.__eq__`](#contract-vllm_mlx.request.Request.__eq__) | method | `Request.__eq__(other: object) -> bool` | Method `Request.__eq__` calls `isinstance`; has 2 explicit return paths. | [#L189-L192](https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/request.py#L189-L192) |
| [`RequestOutput`](#contract-vllm_mlx.request.RequestOutput) | class | `RequestOutput(request_id: str, new_token_ids: List[int] = field(default_factory=list), new_text: str = '', output_token_ids: List[int] = field(default_factory=list), output_text: str = '', 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. | [#L196-L227](https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/request.py#L196-L227) |
| [`RequestOutput.usage`](#contract-vllm_mlx.request.RequestOutput.usage) | method | `RequestOutput.usage() -> Dict[str, int]` | Return usage statistics compatible with OpenAI API. | [#L221-L227](https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/request.py#L221-L227) |
