# `vllm_mlx.reasoning.deepseek_r1_parser`

Reasoning parser for DeepSeek-R1 models.

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

## 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.reasoning.deepseek_r1_parser
    options:
      members:
        - DeepSeekR1ReasoningParser
      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.reasoning.deepseek_r1_parser.DeepSeekR1ReasoningParser" markdown="1">
<summary><code>vllm_mlx.reasoning.deepseek_r1_parser.DeepSeekR1ReasoningParser</code> · class</summary>

```python
vllm_mlx.reasoning.deepseek_r1_parser.DeepSeekR1ReasoningParser()
```

Reasoning parser for DeepSeek-R1 model.

**Parameters**

This callable has no explicit inputs.

**Returns**

- Constructs: `vllm_mlx.reasoning.deepseek_r1_parser.DeepSeekR1ReasoningParser`

**Exceptions and behavior**

Class `DeepSeekR1ReasoningParser` derives from `BaseThinkingReasoningParser` and declares 4 direct member(s).
No direct `raise` statement appears in this definition.

[View source #L14-L114](https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/reasoning/deepseek_r1_parser.py#L14-L114).

</details>

<details class="api-contract" id="contract-vllm_mlx.reasoning.deepseek_r1_parser.DeepSeekR1ReasoningParser.start_token" markdown="1">
<summary><code>vllm_mlx.reasoning.deepseek_r1_parser.DeepSeekR1ReasoningParser.start_token</code> · method</summary>

```python
vllm_mlx.reasoning.deepseek_r1_parser.DeepSeekR1ReasoningParser.start_token() -> str
```

Return the marker that opens an explicit DeepSeek reasoning span.

**Parameters**

This callable has no explicit inputs.

**Returns**

- Type: `str`
- Direct return expressions: `'<think>'`

**Exceptions and behavior**

Method `DeepSeekR1ReasoningParser.start_token` returns `'<think>'`.
No direct `raise` statement appears in this definition.

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

</details>

<details class="api-contract" id="contract-vllm_mlx.reasoning.deepseek_r1_parser.DeepSeekR1ReasoningParser.end_token" markdown="1">
<summary><code>vllm_mlx.reasoning.deepseek_r1_parser.DeepSeekR1ReasoningParser.end_token</code> · method</summary>

```python
vllm_mlx.reasoning.deepseek_r1_parser.DeepSeekR1ReasoningParser.end_token() -> str
```

Return the marker that closes a DeepSeek reasoning span.

**Parameters**

This callable has no explicit inputs.

**Returns**

- Type: `str`
- Direct return expressions: `'</think>'`

**Exceptions and behavior**

Method `DeepSeekR1ReasoningParser.end_token` returns `'</think>'`.
No direct `raise` statement appears in this definition.

[View source #L38-L41](https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/reasoning/deepseek_r1_parser.py#L38-L41).

</details>

<details class="api-contract" id="contract-vllm_mlx.reasoning.deepseek_r1_parser.DeepSeekR1ReasoningParser.extract_reasoning" markdown="1">
<summary><code>vllm_mlx.reasoning.deepseek_r1_parser.DeepSeekR1ReasoningParser.extract_reasoning</code> · method</summary>

```python
vllm_mlx.reasoning.deepseek_r1_parser.DeepSeekR1ReasoningParser.extract_reasoning(model_output: str) -> tuple[str | None, str | None]
```

Extract reasoning from DeepSeek-R1 output.

**Parameters**

| Name | Type | Required | Default | Description |
| --- | --- | --- | --- | --- |
| `model_output` | `str` | `yes` | `none` | Complete model output text. |

**Returns**

- Type: `tuple[str | None, str | None]`
- Direct return expressions: `self._extract_complete_reasoning(model_output)`; `(None, model_output)`; `super().extract_reasoning(model_output)`

**Exceptions and behavior**

Method `DeepSeekR1ReasoningParser.extract_reasoning` calls `self._extract_complete_reasoning`, `super().extract_reasoning`, `super`; has 3 explicit return paths.
No direct `raise` statement appears in this definition.

[View source #L43-L67](https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/reasoning/deepseek_r1_parser.py#L43-L67).

</details>

<details class="api-contract" id="contract-vllm_mlx.reasoning.deepseek_r1_parser.DeepSeekR1ReasoningParser.extract_reasoning_streaming" markdown="1">
<summary><code>vllm_mlx.reasoning.deepseek_r1_parser.DeepSeekR1ReasoningParser.extract_reasoning_streaming</code> · method</summary>

```python
vllm_mlx.reasoning.deepseek_r1_parser.DeepSeekR1ReasoningParser.extract_reasoning_streaming(previous_text: str, current_text: str, delta_text: str) -> DeltaMessage | None
```

Extract reasoning from streaming delta.

**Parameters**

| Name | Type | Required | Default | Description |
| --- | --- | --- | --- | --- |
| `previous_text` | `str` | `yes` | `none` | Text accumulated before this delta. |
| `current_text` | `str` | `yes` | `none` | Text including this delta. |
| `delta_text` | `str` | `yes` | `none` | Just the new text. |

**Returns**

- Type: `DeltaMessage | None`
- Direct return expressions: `DeltaMessage(reasoning=reasoning_part if reasoning_part else None, content=content_part if content_part else None)`; `result`

**Exceptions and behavior**

Method `DeepSeekR1ReasoningParser.extract_reasoning_streaming` calls `super().extract_reasoning_streaming`, `super`, `delta_text.find`, `len`; has 2 explicit return paths.
No direct `raise` statement appears in this definition.

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

</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 |
| --- | --- | --- | --- | --- |
| [`DeepSeekR1ReasoningParser`](#contract-vllm_mlx.reasoning.deepseek_r1_parser.DeepSeekR1ReasoningParser) | class | `DeepSeekR1ReasoningParser()` | Reasoning parser for DeepSeek-R1 model. | [#L14-L114](https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/reasoning/deepseek_r1_parser.py#L14-L114) |
| [`DeepSeekR1ReasoningParser.start_token`](#contract-vllm_mlx.reasoning.deepseek_r1_parser.DeepSeekR1ReasoningParser.start_token) | method | `DeepSeekR1ReasoningParser.start_token() -> str` | Return the marker that opens an explicit DeepSeek reasoning span. | [#L32-L35](https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/reasoning/deepseek_r1_parser.py#L32-L35) |
| [`DeepSeekR1ReasoningParser.end_token`](#contract-vllm_mlx.reasoning.deepseek_r1_parser.DeepSeekR1ReasoningParser.end_token) | method | `DeepSeekR1ReasoningParser.end_token() -> str` | Return the marker that closes a DeepSeek reasoning span. | [#L38-L41](https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/reasoning/deepseek_r1_parser.py#L38-L41) |
| [`DeepSeekR1ReasoningParser.extract_reasoning`](#contract-vllm_mlx.reasoning.deepseek_r1_parser.DeepSeekR1ReasoningParser.extract_reasoning) | method | `DeepSeekR1ReasoningParser.extract_reasoning(model_output: str) -> tuple[str \| None, str \| None]` | Extract reasoning from DeepSeek-R1 output. | [#L43-L67](https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/reasoning/deepseek_r1_parser.py#L43-L67) |
| [`DeepSeekR1ReasoningParser.extract_reasoning_streaming`](#contract-vllm_mlx.reasoning.deepseek_r1_parser.DeepSeekR1ReasoningParser.extract_reasoning_streaming) | method | `DeepSeekR1ReasoningParser.extract_reasoning_streaming(previous_text: str, current_text: str, delta_text: str) -> DeltaMessage \| None` | Extract reasoning from streaming delta. | [#L69-L114](https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/vllm_mlx/reasoning/deepseek_r1_parser.py#L69-L114) |
