# DeepSeek-V3.1 : Comment l'exécuter localement

V3.1 de DeepSeek et **Terminus** la mise à jour introduit l’inférence à raisonnement hybride, combinant « think » et « non-think » en un seul modèle. Le modèle complet à 671 milliards de paramètres nécessite 715 Go d’espace disque. La version dynamique quantifiée 2 bits utilise 245 Go (réduction de taille de -75 %). GGUF : [**DeepSeek-V3.1-GGUF**](https://huggingface.co/unsloth/DeepSeek-V3.1-GGUF)

{% hint style="success" %}
**NOUVEAU :** DeepSeek-V3.1-Terminus est désormais disponible : [DeepSeek-V3.1-Terminus-GGUF](https://huggingface.co/unsloth/DeepSeek-V3.1-Terminus-GGUF)\
\
[**Mise à jour du 10 sept. 2025 :**](/docs/fr/bases/unsloth-dynamic-2.0-ggufs/unsloth-dynamic-ggufs-on-aider-polyglot.md) Vous avez demandé des benchmarks plus difficiles, alors nous mettons en avant les résultats d’Aider Polyglot ! Notre DeepSeek V3.1 GGUF dynamique 3 bits obtient **75.6%**, dépassant de nombreux LLM SOTA en précision complète. [En savoir plus.](/docs/fr/bases/unsloth-dynamic-2.0-ggufs/unsloth-dynamic-ggufs-on-aider-polyglot.md)

Nos GGUF DeepSeek-V3.1 incluent les corrections de modèle de chat Unsloth [corrections du modèle de chat](#chat-template-bug-fixes) pour les backends pris en charge par llama.cpp.
{% endhint %}

Tous les téléchargements utilisent Unsloth [Dynamic 2.0](/docs/fr/bases/unsloth-dynamic-2.0-ggufs.md) pour des performances SOTA en MMLU 5-shot et en divergence KL, ce qui signifie que vous pouvez exécuter et affiner des LLM DeepSeek quantifiés avec une perte de précision minimale.

**Navigation des tutoriels :**

<a href="#run-in-llama.cpp" class="button secondary">Exécuter dans llama.cpp</a><a href="#run-in-ollama-open-webui" class="button secondary">Exécuter dans Ollama/Open WebUI</a>

## :gear: Paramètres recommandés

La quantification dynamique 1 bit TQ1\_0 (1 bit pour les couches MoE peu importantes, 2 à 4 bits pour les MoE importantes, et 6 à 8 bits pour le reste) utilise 170 Go d’espace disque - cela fonctionne bien dans un **1 carte 24 Go et 128 Go de RAM** avec déchargement MoE - cela **fonctionne aussi nativement dans Ollama**!

{% hint style="info" %}
Vous devez utiliser `--jinja` pour les quantifications llama.cpp - cela utilise nos [modèles de chat fixes](#chat-template-bug-fixes) et active le bon modèle ! Vous pourriez obtenir des résultats incorrects si vous n'utilisez pas `--jinja`
{% endhint %}

Les quantifications 2 bits tiennent dans un seul GPU de 24 Go (avec les couches MoE déchargées vers la RAM). Attendez-vous à environ 5 tokens/s avec cette configuration si vous disposez aussi de 128 Go de RAM supplémentaires. Il est recommandé d’avoir au moins 226 Go de RAM pour exécuter ce modèle 2 bits. Pour des performances optimales, vous aurez besoin d’au moins 226 Go de mémoire unifiée ou de 226 Go combinés RAM+VRAM pour atteindre 5+ tokens/s. Pour apprendre à augmenter la vitesse de génération et à prendre en charge des contextes plus longs, [lisez ici](#improving-generation-speed).

{% hint style="success" %}
Bien que ce ne soit pas obligatoire, pour de meilleures performances, veillez à ce que votre VRAM + RAM combinées soient égales à la taille de la quantification que vous téléchargez. Sinon, le déchargement sur disque dur / SSD fonctionnera avec llama.cpp, mais l’inférence sera plus lente.
{% endhint %}

## :butterfly:Corrections de bugs du modèle de chat

Nous avons corrigé quelques problèmes liés au modèle de chat de DeepSeek V3.1, car il ne fonctionnait pas correctement dans llama.cpp et d’autres moteurs :

1. DeepSeek V3.1 est un modèle de raisonnement hybride, ce qui signifie que vous pouvez modifier le modèle de chat pour activer le raisonnement. Le modèle de chat introduit `thinking = True` , mais d’autres modèles utilisent `enable_thinking = True` . Nous avons ajouté l’option d’utiliser `enable_thinking` comme mot-clé à la place.
2. Le rendu jinja de llama.cpp via [minja](https://github.com/google/minja) n’autorise pas l’utilisation d’arguments supplémentaires dans la commande `.split()` donc l’utilisation de `.split(text, 1)` fonctionne en Python, mais pas dans minja. Nous avons dû modifier cela pour que llama.cpp fonctionne correctement sans erreur.\
   \
   Vous obtiendrez l’erreur suivante lors de l’utilisation d’autres quantifications :\
   `terminate called after throwing an instance of 'std::runtime_error' what(): split method must have between 1 and 1 positional arguments and between 0 and 0 keyword arguments at row 3, column 1908` Nous l’avons corrigé dans toutes nos quantifications !

### 🐳Paramètres recommandés officiels

Selon [DeepSeek](https://huggingface.co/deepseek-ai/DeepSeek-V3.1), voici les paramètres recommandés pour l’inférence V3.1 :

* Réglez <mark style="background-color:green;">**la température sur 0,6**</mark> pour réduire les répétitions et les incohérences.
* Réglez <mark style="background-color:green;">**top\_p sur 0,95**</mark> (recommandé)
* **longueur de contexte de 128K** ou moins
* Utilisez `--jinja` pour les variantes llama.cpp - nous **avons aussi corrigé certains problèmes de modèles de chat !**
* **Utilisez** `enable_thinking = True` pour utiliser le mode raisonnement/pensée. Par défaut, il est réglé sur non raisonnant.

#### :1234: Format du modèle de chat / de l’invite

Vous n’avez pas besoin de forcer `<think>\n` , mais vous pouvez quand même l’ajouter ! Avec le préfixe fourni, DeepSeek V3.1 génère des réponses aux requêtes en mode sans réflexion. Contrairement à DeepSeek V3, il introduit un jeton supplémentaire `</think>`.

```
<｜begin▁of▁sentence｜>{system prompt}<｜User｜>{query}<｜Assistant｜></think>
```

Un BOS est ajouté de force, et un EOS sépare chaque interaction. Pour contrer les doubles tokens BOS lors de l'inférence, vous ne devez appeler que `tokenizer.encode(..., add_special_tokens = False)` car le modèle de chat ajoute automatiquement aussi un jeton BOS. Pour l’inférence llama.cpp / GGUF, vous devez omettre le BOS puisqu’il l’ajoutera automatiquement.

#### :notebook\_with\_decorative\_cover: Mode sans réflexion (utiliser `thinking = False`ou `enable_thinking = False` et c’est le réglage par défaut)

**Première interaction**

Préfixe : `<｜begin▁of▁sentence｜>{system prompt}<｜User｜>{query}<｜Assistant｜></think>`

Avec le préfixe fourni, DeepSeek V3.1 génère des réponses aux requêtes en mode sans réflexion. Contrairement à DeepSeek V3, il introduit un jeton supplémentaire `</think>`.

**Contexte**

multi-tour : `<｜begin▁of▁sentence｜>{system prompt}<｜User｜>{query}<｜Assistant｜></think>{response}<｜end▁of▁sentence｜>...<｜User｜>{query}<｜Assistant｜></think>{response}<｜end▁of▁sentence｜>`

Préfixe : `<｜User｜>{query}<｜Assistant｜></think>`

En concaténant le contexte et le préfixe, nous obtenons l’invite correcte pour la requête.

#### :books: Mode raisonnement (utiliser `thinking = True`ou `enable_thinking = True` et c’est le réglage par défaut)

**Première interaction**

Préfixe : `<｜begin▁of▁sentence｜>{system prompt}<｜User｜>{query}<｜Assistant｜><think>`

Le préfixe du mode raisonnement est similaire à celui de DeepSeek-R1.

**Contexte**

multi-tour : `<｜begin▁of▁sentence｜>{system prompt}<｜User｜>{query}<｜Assistant｜></think>{response}<｜end▁of▁sentence｜>...<｜User｜>{query}<｜Assistant｜></think>{response}<｜end▁of▁sentence｜>`

Préfixe : `<｜User｜>{query}<｜Assistant｜><think>`

Le modèle multi-tour est le même que le modèle de chat multi-tour sans réflexion. Cela signifie que le jeton de pensée lors du dernier tour sera supprimé, mais le `</think>` est conservé à chaque tour du contexte.

#### :bow\_and\_arrow: Appel d’outils

L’appel d’outils est pris en charge en mode sans réflexion. Le format est le suivant :

`<｜begin▁of▁sentence｜>{system prompt}{tool_description}<｜User｜>{query}<｜Assistant｜></think>` où la zone tool\_description se trouve après l’invite système.

## :arrow\_forward:Exécutez les tutoriels DeepSeek-V3.1 :

### :llama: Exécuter dans Ollama/Open WebUI

{% stepper %}
{% step %}
Installez `ollama` si ce n’est pas déjà fait ! Pour exécuter d’autres variantes du modèle, [voir ici](#run-in-llama.cpp).

```bash
apt-get update
apt-get install pciutils -y
curl -fsSL https://ollama.com/install.sh | sh
```

{% endstep %}

{% step %}
Exécutez le modèle ! Notez que vous pouvez appeler `ollama serve`dans un autre terminal si cela échoue ! Nous incluons toutes nos corrections et les paramètres suggérés (température, etc.) dans `params` dans notre téléchargement Hugging Face !\
\&#xNAN;**(NOUVEAU) Pour exécuter le modèle complet R1-0528 dans Ollama, vous pouvez utiliser notre TQ1\_0 (quantification 170 Go) :**

```bash
OLLAMA_MODELS=unsloth ollama serve &

OLLAMA_MODELS=unsloth ollama run hf.co/unsloth/DeepSeek-V3.1-Terminus-GGUF:TQ1_0
```

{% endstep %}

{% step %}
Pour exécuter d'autres quantifications, vous devez d'abord fusionner les fichiers GGUF découpés en un seul, comme dans le code ci-dessous. Ensuite, vous devrez exécuter le modèle localement.

```bash
./llama.cpp/llama-gguf-split --merge \
  DeepSeek-V3.1-Terminus-GGUF/DeepSeek-V3.1-Terminus-UD-Q2_K_XL/DeepSeek-V3.1-Terminus-UD-Q2_K_XL-00001-of-00006.gguf \
	merged_file.gguf
```

```bash
OLLAMA_MODELS=unsloth ollama serve &

OLLAMA_MODELS=unsloth ollama run merged_file.gguf
```

{% endstep %}

{% step %}
Open WebUI a également réalisé un [tutoriel étape par étape](https://docs.openwebui.com/tutorials/integrations/deepseekr1-dynamic/) sur la manière d’exécuter R1, et pour V3.1, il vous suffira de remplacer R1 par la nouvelle quantification V3.1.
{% endstep %}
{% endstepper %}

### ✨ Exécuter dans llama.cpp

{% stepper %}
{% step %}
Obtenez la dernière version `llama.cpp` sur [GitHub ici](https://github.com/ggml-org/llama.cpp). Vous pouvez également suivre les instructions de compilation ci-dessous. Changez `-DGGML_CUDA=ON` en `-DGGML_CUDA=OFF` si vous n’avez pas de GPU ou si vous souhaitez simplement une inférence CPU.

```bash
apt-get update
apt-get install pciutils build-essential cmake curl libcurl4-openssl-dev -y
git clone https://github.com/ggml-org/llama.cpp
cmake llama.cpp -B llama.cpp/build \
    -DBUILD_SHARED_LIBS=OFF -DGGML_CUDA=ON -DLLAMA_CURL=ON
cmake --build llama.cpp/build --config Release -j --clean-first --target llama-quantize llama-cli llama-gguf-split llama-mtmd-cli llama-server
cp llama.cpp/build/bin/llama-* llama.cpp
```

{% endstep %}

{% step %}
Si vous souhaitez utiliser `llama.cpp` directement pour charger des modèles, vous pouvez faire ce qui suit : (:Q2\_K\_XL) est le type de quantification. Vous pouvez aussi télécharger via Hugging Face (point 3). C’est similaire à `ollama run` . Utilisez `export LLAMA_CACHE="folder"` pour forcer `llama.cpp` à être enregistré à un emplacement spécifique. N'oubliez pas que le modèle a une longueur de contexte maximale de 128K uniquement.

{% hint style="success" %}
Veuillez essayer `-ot ".ffn_.*_exps.=CPU"` pour décharger toutes les couches MoE vers le CPU ! Cela permet effectivement de faire tenir toutes les couches non MoE sur 1 GPU, améliorant ainsi les vitesses de génération. Vous pouvez personnaliser l'expression regex pour faire tenir davantage de couches si vous disposez de plus de capacité GPU.

Si vous avez un peu plus de mémoire GPU, essayez `-ot ".ffn_(up|down)_exps.=CPU"` Cela décharge les couches MoE de projection montante et descendante.

Essayez `-ot ".ffn_(up)_exps.=CPU"` si vous avez encore plus de mémoire GPU. Cela décharge uniquement les couches MoE de projection montante.

Et enfin, déchargez toutes les couches via `-ot ".ffn_.*_exps.=CPU"` Cela utilise le moins de VRAM.

Vous pouvez aussi personnaliser la regex, par exemple `-ot "\.(6|7|8|9|[0-9][0-9]|[0-9][0-9][0-9])\.ffn_(gate|up|down)_exps.=CPU"` signifie décharger les couches MoE gate, up et down, mais uniquement à partir de la 6e couche.
{% endhint %}

```bash
export LLAMA_CACHE="unsloth/DeepSeek-V3.1-GGUF"
./llama.cpp/llama-cli \
    -hf unsloth/DeepSeek-V3.1-Terminus-GGUF:UD-Q2_K_XL \
    --jinja \
    --n-gpu-layers 99 \
    --temp 0.6 \
    --top-p 0.95 \
    --min-p 0.01 \
    --ctx-size 16384 \
    --seed 3407 \
    -ot ".ffn_.*_exps.=CPU"
```

{% endstep %}

{% step %}
Téléchargez le modèle via (après avoir installé `pip install huggingface_hub hf_transfer` ). Vous pouvez choisir `UD-`Q2\_K\_XL (quantification dynamique 2 bits) ou d'autres versions quantifiées comme `Q4_K_M` . Nous <mark style="background-color:green;">**recommandons d’utiliser notre quantification dynamique 2,7 bits**</mark><mark style="background-color:green;">**&#x20;**</mark><mark style="background-color:green;">**`UD-Q2_K_XL`**</mark><mark style="background-color:green;">**&#x20;**</mark><mark style="background-color:green;">**pour équilibrer taille et précision**</mark>.

```python
# !pip install huggingface_hub hf_transfer
import os
os.environ["HF_HUB_ENABLE_HF_TRANSFER"] = "0" # Peut parfois être soumis à une limitation de débit, donc mettez à 0 pour désactiver
from huggingface_hub import snapshot_download
snapshot_download(
    repo_id = "unsloth/DeepSeek-V3.1-Terminus-GGUF",
    local_dir = "unsloth/DeepSeek-V3.1-Terminus-GGUF",
    allow_patterns = ["*UD-Q2_K_XL*"], # Dynamic 2bit Use "*UD-TQ1_0*" for Dynamic 1bit
)
```

{% endstep %}

{% step %}
Vous pouvez modifier `--threads 32` pour le nombre de threads CPU, `--ctx-size 16384` pour la longueur du contexte, `--n-gpu-layers 2` pour le déchargement GPU, selon le nombre de couches. Essayez de l’ajuster si votre GPU manque de mémoire. Supprimez-le aussi si vous n'avez qu'une inférence CPU.

{% code overflow="wrap" %}

```bash
./llama.cpp/llama-cli \
    --model unsloth/DeepSeek-V3.1-Terminus-GGUF/UD-Q2_K_XL/DeepSeek-V3.1-Terminus-UD-Q2_K_XL-00001-of-00006.gguf \
    --jinja \
    --n-gpu-layers 99 \
    --temp 0.6 \
    --top-p 0.95 \
    --min-p 0.01 \
    --ctx-size 16384 \
    --seed 3407 \
    -ot ".ffn_.*_exps.=CPU"
```

{% endcode %}
{% endstep %}

{% step %}
Obtenez la version 1 bit (170 Go) si vous n’avez pas assez de RAM et de VRAM combinées :

```python
from huggingface_hub import snapshot_download
snapshot_download(
    repo_id = "unsloth/DeepSeek-V3.1-Terminus-GGUF",
    local_dir = "unsloth/DeepSeek-V3.1-Terminus-GGUF",
    allow_patterns = ["*UD-TQ1_0*"], # Use "*UD-Q2_K_XL*" for Dynamic 2bit
)
```

{% endstep %}
{% endstepper %}

### ✨ Déployer avec llama-server et la bibliothèque de complétion d'OpenAI

Pour utiliser llama-server pour le déploiement, utilisez la commande suivante :

{% code overflow="wrap" %}

```bash
./llama.cpp/llama-server \
    --model unsloth/DeepSeek-V3.1-Terminus-GGUF/DeepSeek-V3.1-Terminus-UD-TQ1_0.gguf \
    --alias "unsloth/DeepSeek-V3.1-Terminus" \
    --n-gpu-layers 999 \
    -ot ".ffn_.*_exps.=CPU" \
    --prio 3 \
    --min-p 0.01 \
    --ctx-size 16384 \
    --port 8001 \
    --jinja
```

{% endcode %}

Ensuite, utilisez la bibliothèque Python d'OpenAI après `pip install openai` :

```python
from openai import OpenAI
import json
openai_client = OpenAI(
    base_url = "http://127.0.0.1:8001/v1",
    api_key = "sk-no-key-required",
)
completion = openai_client.chat.completions.create(
    model = "unsloth/DeepSeek-V3.1-Terminus",
    messages = [{"role": "user", "content": "What is 2+2?"},],
)
print(completion.choices[0].message.content)
```

## :minidisc:Téléversements du modèle

**TOUS nos téléversements** - y compris ceux qui ne sont pas basés sur imatrix ou dynamiques, utilisent notre jeu de données de calibration, spécialement optimisé pour les tâches conversationnelles, de codage et linguistiques.

* Téléversements du modèle complet DeepSeek-V3.1 ci-dessous :

Nous avons également téléversé [IQ4\_NL](https://huggingface.co/unsloth/DeepSeek-V3.1-GGUF/tree/main/IQ4_NL) et [Q4\_1](https://huggingface.co/unsloth/DeepSeek-V3.1-GGUF/tree/main/Q4_1) des quantifications qui s’exécutent spécifiquement plus rapidement sur les appareils ARM et Apple respectivement.

<table data-full-width="false"><thead><tr><th>Bits MoE</th><th>Type + Lien</th><th>Taille sur disque</th><th>Détails</th></tr></thead><tbody><tr><td>1,66 bit</td><td><a href="https://huggingface.co/unsloth/DeepSeek-V3.1-GGUF?show_file_info=DeepSeek-V3.1-UD-TQ1_0.gguf">TQ1_0</a></td><td><strong>170 Go</strong></td><td>1,92/1,56 bit</td></tr><tr><td>1,78 bit</td><td><a href="https://huggingface.co/unsloth/DeepSeek-V3.1-GGUF/tree/main/UD-IQ1_S">IQ1_S</a></td><td><strong>185 Go</strong></td><td>2,06/1,56 bit</td></tr><tr><td>1,93 bit</td><td><a href="https://huggingface.co/unsloth/DeepSeek-V3.1-GGUF/tree/main/UD-IQ1_M">IQ1_M</a></td><td><strong>200 Go</strong></td><td>2.5/2.06/1.56</td></tr><tr><td>2,42 bit</td><td><a href="https://huggingface.co/unsloth/DeepSeek-V3.1-GGUF/tree/main/UD-IQ2_XXS">IQ2_XXS</a></td><td><strong>216 Go</strong></td><td>2,5/2,06 bit</td></tr><tr><td>2,71 bit</td><td><a href="https://huggingface.co/unsloth/DeepSeek-V3.1-GGUF/tree/main/UD-Q2_K_XL">Q2_K_XL</a></td><td><strong>251 Go</strong></td><td>3,5/2,5 bit</td></tr><tr><td>3,12 bit</td><td><a href="https://huggingface.co/unsloth/DeepSeek-V3.1-GGUF/tree/main/UD-IQ3_XXS">IQ3_XXS</a></td><td><strong>273 Go</strong></td><td>3,5/2,06 bit</td></tr><tr><td>3,5 bit</td><td><a href="https://huggingface.co/unsloth/DeepSeek-V3.1-GGUF/tree/main/UD-Q3_K_XL">Q3_K_XL</a></td><td><strong>296 Go</strong></td><td>4,5/3,5 bit</td></tr><tr><td>4,5 bit</td><td><a href="https://huggingface.co/unsloth/DeepSeek-V3.1-GGUF/tree/main/UD-Q4_K_XL">Q4_K_XL</a></td><td><strong>384 Go</strong></td><td>5,5/4,5 bit</td></tr><tr><td>5,5 bit</td><td><a href="https://huggingface.co/unsloth/DeepSeek-V3.1-GGUF/tree/main/UD-Q5_K_XL">Q5_K_XL</a></td><td><strong>481 Go</strong></td><td>6,5/5,5 bit</td></tr></tbody></table>

Nous avons également téléversé des versions au format [BF16](https://huggingface.co/unsloth/DeepSeek-V3.1-BF16), et au format original [FP8 (float8)](https://huggingface.co/unsloth/DeepSeek-V3.1).

## :snowboarder: Améliorer la vitesse de génération

Si vous avez plus de VRAM, vous pouvez essayer de décharger davantage de couches MoE, ou de décharger des couches entières.

Normalement, `-ot ".ffn_.*_exps.=CPU"` décharge toutes les couches MoE vers le CPU ! Cela permet effectivement de faire tenir toutes les couches non MoE sur 1 GPU, améliorant ainsi les vitesses de génération. Vous pouvez personnaliser l'expression regex pour faire tenir davantage de couches si vous disposez de plus de capacité GPU.

Si vous avez un peu plus de mémoire GPU, essayez `-ot ".ffn_(up|down)_exps.=CPU"` Cela décharge les couches MoE de projection montante et descendante.

Essayez `-ot ".ffn_(up)_exps.=CPU"` si vous avez encore plus de mémoire GPU. Cela décharge uniquement les couches MoE de projection montante.

Vous pouvez aussi personnaliser la regex, par exemple `-ot "\.(6|7|8|9|[0-9][0-9]|[0-9][0-9][0-9])\.ffn_(gate|up|down)_exps.=CPU"` signifie décharger les couches MoE gate, up et down, mais uniquement à partir de la 6e couche.

La [dernière version de llama.cpp](https://github.com/ggml-org/llama.cpp/pull/14363) introduit également un mode à haut débit. Utilisez `llama-parallel`. En savoir plus [ici](https://github.com/ggml-org/llama.cpp/tree/master/examples/parallel). Vous pouvez aussi **quantifier le cache KV en 4 bits** par exemple pour réduire les déplacements VRAM / RAM, ce qui peut aussi accélérer le processus de génération.

## 📐Comment gérer un long contexte (128K complet)

Pour faire tenir un contexte plus long, vous pouvez utiliser **la quantification du cache KV** pour quantifier les caches K et V en moins de bits. Cela peut aussi augmenter la vitesse de génération grâce à la réduction des transferts de données RAM / VRAM. Les options autorisées pour la quantification K (la valeur par défaut est `f16`) sont les suivantes.

`--cache-type-k f32, f16, bf16, q8_0, q4_0, q4_1, iq4_nl, q5_0, q5_1`

Vous devriez utiliser les `_1` variantes pour une précision légèrement meilleure, bien que ce soit un peu plus lent. Par exemple `q4_1, q5_1`

Vous pouvez aussi quantifier le cache V, mais vous devrez **compiler llama.cpp avec la prise en charge de Flash Attention** via `-DGGML_CUDA_FA_ALL_QUANTS=ON`, et utiliser `--flash-attn` pour l’activer. Ensuite, vous pouvez l'utiliser avec `--cache-type-k` :

`--cache-type-v f32, f16, bf16, q8_0, q4_0, q4_1, iq4_nl, q5_0, q5_1`


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://unsloth.ai/docs/fr/modeles/tutorials/deepseek-v3.1-how-to-run-locally.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
