# Comment exécuter des LLM locaux avec OpenAI Codex

Ce guide étape par étape vous montre comment connecter des LLM et des API ouverts à OpenAI Codex **entièrement en local**avec captures d’écran à l’appui. Codex a seulement besoin d’un endpoint local qui parle l’API OpenAI Responses. Exécutez-le avec n’importe quel modèle ouvert comme Qwen, DeepSeek, Gemma, et plus encore.

Pour ce tutoriel, nous utiliserons les modèles ouverts : [Gemma 4](/docs/fr/modeles/gemma-4.md) et [Qwen3.5](/docs/fr/modeles/qwen3.5.md) qui sont d’excellents modèles agentiques et de codage (fonctionnent sur un appareil avec 24 Go de RAM/mémoire unifiée). Pour l’inférence, nous utiliserons [Unsloth Studio](https://github.com/unslothai/unsloth) et [`llama.cpp`](https://github.com/ggml-org/llama.cpp) vous permet d’exécuter/diffuser des LLM sur macOS, Linux et Windows. Vous pouvez le remplacer par n’importe quel autre modèle, il suffit de mettre à jour les noms des modèles dans vos scripts et dans la configuration de Codex.

<a href="/pages/0bb2f0a13e244fd2f0ea640c96c4e297bf83db93#setup-codex" class="button primary" data-icon="openai">Configurer Codex</a><a href="/pages/0bb2f0a13e244fd2f0ea640c96c4e297bf83db93#quickstart-tutorials" class="button primary">📖 Tutoriel de configuration du modèle local</a>

Pour les quantifications du modèle, nous utiliserons Unsloth [**Dynamic GGUF**](/docs/fr/bases/unsloth-dynamic-2.0-ggufs.md) afin que vous puissiez exécuter des modèles GGUF quantifiés tout en conservant un maximum de précision.

{% hint style="info" %}
Codex a beaucoup changé depuis janvier 2026. Il utilise désormais [**l’API OpenAI Responses**](https://platform.openai.com/docs/api-reference/responses) **exclusivement**et la prise en charge de Chat Completions a été dépréciée. [Unsloth Studio](#unsloth-tutorial) prend les deux en charge, donc nous utiliserons `wire_api = "responses"` tout au long de ce guide.
{% endhint %}

### &#x20;<i class="fa-openai">:openai:</i> Configurer Codex

[Codex](https://github.com/openai/codex) est l’agent de codage officiel d’OpenAI qui s’exécute localement. Bien qu’il soit conçu pour ChatGPT, il prend en charge **des points de terminaison API personnalisés**ce qui le rend compatible avec des LLM locaux. Nous le pointerons ensuite vers `/v1/responses` d’Unsloth Studio une fois Studio lancé.

{% tabs %}
{% tab title="Linux / WSL" %}
Exécutez dans votre terminal :

```bash
apt update
sudo apt install nodejs npm -y
npm install -g @openai/codex
```

{% endtab %}

{% tab title="Windows" %}
Exécutez dans PowerShell Windows :

```powershell
winget install --id OpenAI.Codex
```

{% hint style="info" %}
**Vous préférez l’application de bureau Codex ?** Installez-la depuis le Microsoft Store :

```powershell
winget install --id 9PLM9XGG6VKS --source msstore
```

Ou via le [Microsoft app Store](https://apps.microsoft.com/detail/9plm9xgg6vks). L’application lit le même `%USERPROFILE%\.codex\config.toml`donc la configuration du fournisseur que nous mettrons en place plus tard s’applique dans les deux cas.
{% endhint %}

{% hint style="info" %}
**Vous préférez WSL ?** Ouvrez PowerShell en tant qu’administrateur, exécutez `wsl --install`redémarrez, puis suivez l’onglet Linux ci-dessus dans Ubuntu. Vous aurez besoin d’une petite astuce réseau pour atteindre Studio sur l’hôte Windows - voir l’astuce WSL dans Connecter Codex à Studio.
{% endhint %}
{% endtab %}

{% tab title="macOS" %}
Exécutez dans votre terminal :

<pre class="language-bash"><code class="lang-bash"><strong>bash brew install --cask codex
</strong></code></pre>

{% endtab %}
{% endtabs %}

C’est tout pour l’installation - **n’exécutez pas `codex` encore**. Lancer l’application telle quelle vous amène au sélecteur « Se connecter avec ChatGPT » d’OpenAI (qui est modal - il n’y a pas d’issue). Une fois que nous aurons configuré un profil local, `codex -p unsloth_api` ou `codex -p llama_cpp` saute entièrement cet écran car les fournisseurs personnalisés utilisent par défaut `requires_openai_auth = false`. Démarrez d’abord le serveur du modèle local, puis lancez Codex dessus.

## 📖 Tutoriels de démarrage rapide <a href="#quickstart-tutorials" id="quickstart-tutorials"></a>

Avant de commencer, nous devons d’abord terminer la configuration du modèle spécifique que vous allez utiliser. Nous utilisons [Unsloth](https://unsloth.ai/docs/new/studio) (une interface web) et llama.cpp, qui sont des frameworks open source pour exécuter et diffuser des LLM sur vos appareils Mac, Linux et Windows.

{% columns %}
{% column %}
Avant de commencer, nous devons d’abord terminer la configuration du modèle spécifique que vous allez utiliser. Nous utilisons [Unsloth](/docs/fr/nouveau/studio.md) (une interface web) et llama.cpp, qui sont des frameworks open source pour exécuter et diffuser des LLM sur vos appareils Mac, Linux et Windows.

Unsloth dispose aussi d’une fonctionnalité unique d’auto-réparation [d’appel d’outils](/docs/fr/nouveau/studio/chat.md#auto-healing-tool-calling) et [de recherche web](/docs/fr/nouveau/studio/chat.md#code-execution) . Voir à droite Claude Code connecté à Unsloth :
{% endcolumn %}

{% column %}

<div data-with-frame="true"><figure><img src="/files/118594d542737c787c92e9199010344ac1033dec" alt=""><figcaption></figcaption></figure></div>
{% endcolumn %}
{% endcolumns %}

<a href="/pages/0bb2f0a13e244fd2f0ea640c96c4e297bf83db93#unsloth-tutorial" class="button primary">🦥 Tutoriel Unsloth</a><a href="/pages/0bb2f0a13e244fd2f0ea640c96c4e297bf83db93#llama.cpp-tutorial" class="button primary">🦙 Tutoriel llama.cpp</a>

## 🦥 Tutoriel Unsloth

Pour ce tutoriel, nous allons diffuser/connecter des modèles locaux à Claude Code via une interface en utilisant [Unsloth](https://github.com/unslothai/unsloth). Unsloth fonctionne sur Windows, WSL, Linux et macOS.&#x20;

{% columns %}
{% column %}

* Rechercher, télécharger, [exécuter des GGUF](/docs/fr/nouveau/studio.md#run-models-locally) et des modèles safetensor
* [**Auto-réparation** appel d’outils](/docs/fr/nouveau/studio.md#execute-code--heal-tool-calling) + **de recherche web**
* [**Exécution de code**](/docs/fr/nouveau/studio.md#run-models-locally) (Python, Bash)
* [Inférence automatique](/docs/fr/nouveau/studio.md#model-arena) réglage des paramètres (temp, top-p, etc.)
* Inférence rapide CPU + GPU via llama.cpp
* [Entraîner des LLM](/docs/fr/nouveau/studio.md#no-code-training) 2x plus rapide avec 70 % de VRAM en moins

Voir ci-dessous pour les instructions d’installation :
{% endcolumn %}

{% column %}

<div data-with-frame="true"><figure><img src="/files/c1e3c98db9ff7047858e3dac518d5347113d27aa" alt=""><figcaption><p>Exemple de Qwen3.6 en 2 bits exécuté dans Unsloth.</p></figcaption></figure></div>
{% endcolumn %}
{% endcolumns %}

{% tabs %}
{% tab title="macOS" %}

#### Étape 1 : Configurer Unsloth

Lancez le `terminal` depuis Mac, puis installez Unsloth en saisissant la commande ci-dessous.

```bash
curl -fsSL https://unsloth.ai/install.sh | sh
```

Unsloth commencera à configurer l’environnement et à installer les packages requis comme indiqué ci-dessous. Tapez **Y** et appuyez sur `Entrée` lorsqu’on vous demande si vous voulez autoriser Studio à démarrer maintenant. Cela lancera Unsloth sur votre **8888** port

<figure><img src="/files/00ed58c09f9f7e196ffec4cd2a6a281d68dd4280" alt="" width="375"><figcaption></figcaption></figure>

{% hint style="info" %}
local. Si vous avez choisi de ne pas démarrer Unsloth pendant le processus d’installation, vous pouvez toujours lancer l’application Unsloth avec `unsloth studio -p 8888` . Si vous souhaitez que votre instance Unsloth soit accessible par des clients situés en dehors de votre PC/ordinateur, ajoutez `-H 0.0.0.0` à la `commande unsloth studio` .
{% endhint %}

#### Étape 2 : Démarrer Unsloth

Ouvrez le navigateur de votre choix et saisissez `http://127.0.0.1:8888`  dans la barre d’URL. Si c’est la première fois que vous installez Unsloth, vous serez redirigé vers la page du mot de passe où vous devrez créer un nouveau mot de passe. Ensuite, Unsloth devrait s’ouvrir sur la page de chat comme indiqué ci-dessous.

<figure><img src="/files/b66be28b24e0fe6f62367d4b52ae80b764d865ae" alt="" width="375"><figcaption></figcaption></figure>
{% endtab %}

{% tab title="Windows" %}

#### Étape 1 : Configurer Unsloth

Ouvrez le menu Démarrer, recherchez `PowerShell`et lancez-le. Copiez et saisissez la commande d’installation :

```powershell
irm https://unsloth.ai/install.ps1 | iex
```

l’installation commencera automatiquement. Une fois l’installation terminée, PowerShell vous demandera si vous voulez démarrer Unsloth Studi&#x6F;**.**

<figure><img src="/files/00ed58c09f9f7e196ffec4cd2a6a281d68dd4280" alt="" width="375"><figcaption></figcaption></figure>

Vous pouvez aussi le lancer avec la commande suivante :

```bash
unsloth studio -H 0.0.0.0 -p 8888
```

{% hint style="info" %}
Si vous souhaitez que votre instance soit accessible par des clients situés en dehors de votre PC/ordinateur.\
Ajoutez `-H 0.0.0.0` à la `commande unsloth studio` .
{% endhint %}

#### Étape 2 : Démarrer Unsloth

Ouvrir `http://127.0.0.1:8888` dans votre navigateur. Au premier lancement, créez un nouveau mot de passe pour continuer vers la page Chat. **Unsloth Studio** est maintenant installé et prêt à l’emploi.

<figure><img src="/files/b66be28b24e0fe6f62367d4b52ae80b764d865ae" alt="" width="375"><figcaption></figcaption></figure>
{% endtab %}

{% tab title="Linux, WSL" %}

#### Étape 1 : Configurer Unsloth

{% tabs %}
{% tab title="Linux" %}
Ouvrez votre application de terminal. Vous pouvez la lancer en appuyant sur `Ctrl + Alt + T`ou en recherchant `Terminal` dans le menu des applications de votre système.
{% endtab %}

{% tab title="WSL" %}
Cliquez sur le menu Démarrer de Windows, tapez le nom de votre distribution installée (par ex. `Ubuntu`), puis ouvrez-la.

{% hint style="warning" %}
Sur **WSL**assurez-vous que vos **pilotes NVIDIA** sont installés sur **Windows** (pas à l’intérieur de WSL) et que le **kit d’outils CUDA** est installé dans votre distribution WSL. Consultez les exigences système ci-dessous pour plus de détails.
{% endhint %}
{% endtab %}
{% endtabs %}

Pour installer, copiez et exécutez la commande d’installation :

```bash
curl -fsSL https://unsloth.ai/install.sh | sh
```

Puis :

1. Cliquez à l’intérieur de la fenêtre du terminal
2. Collez la commande avec `Ctrl + Shift + V`
3. Appuyez sur `Entrée`

Unsloth commencera à configurer l’environnement et à installer les packages requis comme indiqué ci-dessous. Tapez **Y** et appuyez sur `Entrée` lorsqu’on vous demande si vous voulez autoriser Studio à démarrer maintenant. Cela lancera Unsloth sur votre **8888** port

<figure><img src="/files/91f1a4dc77de4dc01f63fbbe6da63dc852117234" alt=""><figcaption></figcaption></figure>

{% hint style="info" %}
local. Si vous avez choisi de ne pas démarrer Unsloth pendant le processus d’installation, vous pouvez toujours lancer l’application Unsloth avec `unsloth studio -p 8888` . Si vous souhaitez que votre instance Unsloth soit accessible par des clients situés en dehors de votre PC/ordinateur, ajoutez `-H 0.0.0.0` à la `commande unsloth studio` .
{% endhint %}

#### Étape 2 : Démarrer Unsloth

Ouvrez le navigateur de votre choix et saisissez `http://127.0.0.1:8888`  dans la barre d’URL. Si c’est la première fois que vous installez Unsloth, vous serez redirigé vers la page du mot de passe où vous devrez créer un nouveau mot de passe. Ensuite, Unsloth devrait s’ouvrir sur la page de chat comme indiqué ci-dessous.

<figure><img src="/files/11b2aea44d2e2a1873a248975fd5b6ca451553cb" alt="" width="375"><figcaption></figcaption></figure>
{% endtab %}
{% endtabs %}

### Guide de chargement du modèle + API

{% stepper %}
{% step %}

#### Sélectionner le modèle

Avant d’utiliser l’API, chargez un modèle depuis la liste déroulante **Sélectionner le modèle** en haut à gauche de la page Chat.

<figure><img src="/files/20a3e3fe38cf2dfd454794201dd3cc499546d855" alt=""><figcaption></figcaption></figure>

Dans ce guide, nous utiliserons : `unsloth/gemma-4-26B-A4B-it-GGUF` avec la quantification recommandée `UD-Q4_K_XL` .
{% endstep %}

{% step %}

#### Tester le modèle

Avant d’utiliser le client, envoyez un message rapide :

<div data-with-frame="true"><figure><img src="/files/55ba6f6b98ba57615a8791e0bec949b1a8cc9795" alt="" width="563"><figcaption></figcaption></figure></div>

{% hint style="info" %}
Cela confirme que le modèle a été chargé correctement et qu’il est prêt à répondre.
{% endhint %}
{% endstep %}

{% step %}

#### **clé API Unsloth**

Dans Studio, ouvrez **Paramètres → API** pour voir ou créer votre clé API.

<figure><img src="/files/4cfccdbce7d628cd17ae882bafd9d2a1c70743a3" alt=""><figcaption></figcaption></figure>

Traitez votre clé API comme un mot de passe et évitez de l’exposer dans des captures d’écran ou des dépôts.
{% endstep %}
{% endstepper %}

## ⚙️ Connecter Codex

Cette section est la même, que vous ayez utilisé Unsloth Studio, llama.cpp ou un autre serveur local compatible OpenAI. Codex a besoin de trois valeurs : la **clé API**l’ **URL de base**et le **nom du modèle**. L’exemple ci-dessous utilise Unsloth Studio ; pour llama.cpp, utilisez la même structure avec le profil `llama_cpp` dans la section llama.cpp.

{% stepper %}
{% step %}

#### **Configurer le fournisseur Unsloth**

Codex recherche `~/.codex/config.toml` sur macOS/Linux/WSL ou `%USERPROFILE%\.codex\config.toml` sur Windows. Créez-le ou modifiez-le :

{% code title="\~/.codex/config.toml" overflow="wrap" %}

```toml
[model_providers.unsloth_api]
name                  = "Unsloth Studio"
base_url              = "http://localhost:8888/v1"
env_key               = "UNSLOTH_STUDIO_AUTH_TOKEN"
wire_api              = "responses"
requires_openai_auth  = false

[profiles.unsloth_api]
model_provider = "unsloth_api"
model          = "unsloth/gemma-4-26B-A4B"
```

{% endcode %}

{% hint style="info" %}
Cette configuration crée un profil Codex appelé `unsloth_api`le pointe vers Studio et indique à Codex de lire la clé API à partir d’une variable d’environnement nommée `UNSLOTH_STUDIO_AUTH_TOKEN`. Vous définirez la vraie clé à l’étape suivante.
{% endhint %}

| Champ                  | Ce qu’il fait                                                                                                                                       |
| ---------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------- |
| `base_url`             | Votre point de terminaison de serveur local + `/v1`                                                                                                 |
| `env_key`              | **Nom** de la variable d’environnement depuis laquelle Codex lit votre clé API. Ce n’est pas la clé elle-même.                                      |
| `wire_api`             | `responses`. Codex utilise désormais exclusivement l’API Responses d’OpenAI.                                                                        |
| `requires_openai_auth` | `false` fait sauter à Codex l’écran « Se connecter avec ChatGPT » pour ce fournisseur. La valeur par défaut est déjà `false`, mais soyez explicite. |
| `model`                | L’ID du modèle exposé par votre serveur. Exécutez `GET <base_url>/models` pour confirmer la chaîne exacte.                                          |

{% hint style="warning" %}
OpenAI a supprimé la prise en charge de `wire_api = "chat"` . Utilisez toujours `wire_api = "responses"`. Si vous définissez `wire_api = "chat"`, Codex refuse de démarrer avec `` `wire_api = "chat"` n’est plus pris en charge. Comment corriger : définissez `wire_api = "responses"` dans la configuration de votre fournisseur. ``
{% endhint %}

{% hint style="info" %}
Vous pouvez ajouter plusieurs profils dans le même fichier, un pour chaque modèle Unsloth entre lesquels vous alternez. Codex les détecte automatiquement.
{% endhint %}
{% endstep %}

{% step %}

#### Définir la variable d’environnement de la clé API

Utilisez le même nom de variable d’environnement que celui que vous avez écrit dans `env_key`. Dans l’exemple d’Unsloth Studio ci-dessus, `env_key = "UNSLOTH_STUDIO_AUTH_TOKEN"`, donc définissez `UNSLOTH_STUDIO_AUTH_TOKEN` dans le même terminal à partir duquel vous lancerez Codex :

{% code title="macOS / Linux / WSL" %}

```bash
export UNSLOTH_STUDIO_AUTH_TOKEN=YOUR_TOKEN
```

{% endcode %}

{% code title="Windows PowerShell" %}

```powershell
$env:UNSLOTH_STUDIO_AUTH_TOKEN = "YOUR_TOKEN"
```

{% endcode %}

Si vous avez renommé `env_key`, renommez aussi la variable dans les commandes. Par exemple, un profil llama.cpp qui utilise `env_key = "LLAMA_CPP_API_KEY"` nécessite `LLAMA_CPP_API_KEY`et non `UNSLOTH_STUDIO_AUTH_TOKEN`.

**Session vs Persistant :** les commandes ci-dessus s’appliquent uniquement au terminal actuel. Pour les rendre persistantes :

* **macOS / Linux / WSL :** ajoutez la ligne `export` à `~/.bashrc` (bash) ou `~/.zshrc` (zsh).
* **Windows :** exécutez `setx UNSLOTH_STUDIO_AUTH_TOKEN "YOUR_TOKEN"` une fois, ou ajoutez la ligne `$env:` à votre PowerShell `$PROFILE`.

{% hint style="warning" %}
**Vous exécutez Codex dans WSL avec Unsloth sur Windows ?** WSL est un espace de noms réseau distinct, donc `localhost` depuis WSL n’atteint pas Unsloth. Modifiez votre `config.toml` pour utiliser à la place l’adresse IP de l’hôte Windows :

```bash
# Récupérez l’adresse IP de l’hôte Windows depuis WSL
ip route | grep default | awk '{print $3}'
```

Puis définissez `base_url = "http://<that-ip>:8888/v1"`. Si vous avez activé le réseau miroir WSL2 (`.wslconfig` → `networkingMode=mirrored`), `localhost` cela fonctionne comme sur Windows natif.
{% endhint %}
{% endstep %}

{% step %}

#### **Lancer Codex**

```bash
mkdir my-project && cd my-project
codex -p unsloth_api
```

{% hint style="info" %}
**Premier lancement dans un nouveau répertoire** Codex demande *« Faites-vous confiance au contenu de ce répertoire ? »* - choisissez *Oui, continuer.* Il s’agit de l’invite de confiance par répertoire courant, pas de la connexion ChatGPT (celle-ci est ignorée grâce à \`requires\_openai\_auth = false\`). Les lancements suivants dans le même répertoire ignoreront cette invite.
{% endhint %}

<figure><img src="/files/e00bb9459a40d0ab23ad862e640250fadb27c384" alt=""><figcaption></figcaption></figure>

{% hint style="info" %}
**Voir `Métadonnées du modèle pour`  unsloth/gemma-4-26B-A4B  `introuvables. Utilisation des métadonnées de secours`?** Codex est livré avec un tableau intégré des fenêtres de contexte, de la prise en charge des outils et des modalités d’entrée pour les modèles d’OpenAI. Pour tout le reste, il retombe sur des valeurs par défaut sûres. L’avertissement apparaît une fois par session pour chaque identifiant autre qu’OpenAI. Tout fonctionne quand même, vous pouvez l’ignorer.

**Pour corriger cela :** ajoutez `model_context_window = 131072` en haut de `~/.codex/config.toml` afin que Codex utilise le vrai contexte 128K de Gemma 4 au lieu de son estimation de secours. Pour avoir aussi un contrôle total sur la prise en charge des outils et des modalités d’entrée, pointez `model_catalog_json` à l’intérieur de `[profiles.unsloth_api]` vers un fichier JSON contenant une entrée `ModelInfo` personnalisée pour votre identifiant.
{% endhint %}

Le `-p unsloth_api` indique à Codex d’utiliser le profil que vous venez d’ajouter. Le nom du modèle apparaît dans la barre d’état de Codex.

<figure><img src="/files/7818126fbcab42128fefe6646130717527a39823" alt=""><figcaption></figcaption></figure>

Ajoutez `--search` pour activer la recherche web :

```bash
codex -p unsloth_api --search
```

Pour contourner toutes les invites d’approbation **(ATTENTION cela fera exécuter et produire du code à Codex comme bon lui semble, sans aucune approbation !)**:

{% code overflow="wrap" %}

```bash
codex -p unsloth_api --search --dangerously-bypass-approvals-and-sandbox
```

{% endcode %}
{% endstep %}
{% endstepper %}

### Essayez une vraie tâche

Essayez cette invite pour installer et exécuter un simple fine-tuning Unsloth :

{% code overflow="wrap" %}

```
Vous ne pouvez travailler que dans le projet cwd/. Ne cherchez pas AGENTS.md - c’est ici.
Installez Unsloth via un environnement virtuel avec uv. Voir
https://unsloth.ai/docs/get-started/install/pip-install pour savoir comment faire (récupérez-le et lisez).
Puis effectuez une exécution simple de fine-tuning Unsloth décrite dans
https://github.com/unslothai/unsloth. Vous avez accès à 1 GPU.
```

{% endcode %}

et si nous attendons un peu plus longtemps, vous verrez un modèle fine-tuné avec succès grâce à Unsloth !

<figure><img src="/files/4fc42bbb0c456d64fe8c2c73cb5735622cd6bd7a" alt=""><figcaption></figcaption></figure>

### Déconnecter ou rétablir

Lancez Codex sans `-p unsloth_api` et il utilisera son fournisseur par défaut. Ou supprimez les blocs `[profiles.unsloth_api]` et `[model_providers.unsloth_api]` de `~/.codex/config.toml`.

```bash
unset UNSLOTH_STUDIO_AUTH_TOKEN
```

Vous pouvez laisser Unsloth Studio en cours d’exécution ou l’arrêter. Il n’intercepte rien lorsqu’il est arrêté.

### Dépannage

| Symptôme                                                 | Cause probable                                                                                   | Correction                                                                                                                                           |
| -------------------------------------------------------- | ------------------------------------------------------------------------------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------- |
| `Métadonnées du modèle pour ... introuvables`            | Identifiant autre qu’OpenAI, pas de métadonnées intégrées                                        | Avertissement inoffensif. Pour en supprimer les effets secondaires, définissez `model_context_window = 131072` dans `~/.codex/config.toml`ou pointez |
| Codex dit qu’il est GPT                                  | Codex injecte une invite système faisant référence à OpenAI ; les modèles locaux la reproduisent | Ce n’est pas un bug de routage. Vérifiez via le panneau d’activité de Studio. Remplacez l’invite système pour modifier l’auto-déclaration.           |
| `Connexion refusée`                                      | Studio ne fonctionne pas ou mauvais port                                                         | Vérifiez que Studio est actif à `http://localhost:8888`; vérifiez `base_url` dans `config.toml`                                                      |
| `wire_api = "chat" n’est plus pris en charge`            | Ancien `wire_api = "chat"` dans la config                                                        | Passez à `wire_api = "responses"`                                                                                                                    |
| `modèle introuvable`                                     | Erreur de frappe dans l’ID du modèle                                                             | `GET http://localhost:8888/v1/models` et copiez l’ID exact                                                                                           |
| OOM en cours de génération                               | Contexte trop grand pour la VRAM                                                                 | Réduisez le contexte dans Studio **Paramètres → Inference**ou utilisez une quantification plus petite                                                |
| Codex affiche le sélecteur « Se connecter avec ChatGPT » | Lancé tel quel `codex` (pas de `-p`)                                                             | Quittez (Ctrl+C), puis relancez avec `codex -p unsloth_api`. Les fournisseurs personnalisés sautent cette étape                                      |
| Appel d’outils peu fiable                                | Besoin d’un repli d’auto-réparation                                                              | Les appels d’outils d’ [auto-réparation de Studio](file:///1382377/new/studio/#execute-code--heal-tool-calling) sont activés par défaut              |
| WSL : `Connexion refusée` vers `localhost`               | espace de noms réseau WSL                                                                        | Utilisez l’adresse IP de l’hôte Windows dans `base_url`ou activez le réseau miroir WSL2                                                              |

## 🦙 Tutoriel Llama.cpp

Nous pouvons aussi utiliser `llama.cpp` directement. Nous devons déployer `llama-server` qui est un framework open source pour exécuter et servir efficacement des LLM sur les appareils Mac, Linux et Windows. Le modèle sera servi sur **le port 8001** avec tous les appels d’outils agentiques acheminés via ce seul endpoint compatible OpenAI.

{% hint style="info" %}
Le point de terminaison llama.cpp sera sur **le port 8001** au lieu de `8888` (par défaut d’Unsloth Studio). Ajustez votre configuration Codex `base_url` en conséquence dans `~/.codex/config.toml`.
{% endhint %}

{% stepper %}
{% step %}

#### **Installer llama.cpp**

Nous devons installer `llama.cpp` pour déployer/diffuser des LLM locaux à utiliser dans Codex. Nous suivons les instructions officielles de compilation pour des liaisons GPU correctes et des performances maximales. Modifiez `-DGGML_CUDA=ON` vers `-DGGML_CUDA=OFF` si vous n’avez pas de GPU ou si vous voulez simplement une inférence CPU. **Pour les appareils Apple Mac / Metal**définissez `-DGGML_CUDA=OFF` puis continuez normalement - la prise en charge de Metal est activée par défaut.

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

{% endstep %}

{% step %}

#### **Télécharger et utiliser des modèles localement**

Téléchargez le modèle via le CLI `hf` (`pip install huggingface_hub hf_transfer`). Nous utilisons la quantification **UD-Q4\_K\_XL** pour le meilleur équilibre taille/précision. Vous pouvez trouver tous les téléchargements GGUF d’Unsloth dans notre [Collection ici](file:///1382377/get-started/unsloth-model-catalog.md). Si les téléchargements restent bloqués, voir [https://hugging-face-hub-xet-debugging.md](https://hugging-face-hub-xet-debugging.md "mention").

```bash
hf download unsloth/gemma-4-26B-A4B-it-GGUF \\
    --local-dir unsloth/gemma-4-26B-A4B-it-GGUF \\
    --include "*UD-Q4_K_XL*"
```

{% hint style="info" %}
**Vous voulez une prise en charge de la vision ?** Ajoutez `--include "*mmproj-BF16*"` pour également récupérer le projecteur de vision, puis passer `--mmproj unsloth/gemma-4-26B-A4B-it-GGUF/mmproj-BF16.gguf` vers `llama-server`. Codex lui-même est uniquement textuel, donc c’est facultatif.
{% endhint %}

{% hint style="success" %}
Nous avons utilisé `unsloth/gemma-4-26B-A4B-it-GGUF`, mais vous pouvez utiliser n’importe quoi comme `unsloth/Qwen3.6-35B-A3B-GGUF` - voir [Qwen3.6-35B-A3B](/docs/fr/modeles/qwen3.6.md).
{% endhint %}
{% endstep %}

{% step %}

#### **Démarrez le serveur Llama**

Pour déployer Gemma-4-26B-A4B pour des charges de travail agentiques, nous utilisons `llama-server`. Nous appliquons les paramètres d’échantillonnage recommandés par Google (`temp 1.0`, `top_p 0.95`, `top_k 64`) et activons `--jinja` pour une prise en charge correcte de l’appel d’outils.

Exécutez cette commande dans un nouveau terminal (utilisez `tmux` ou ouvrez un nouveau terminal). Ce qui suit devrait **tenir confortablement dans un GPU de 24 Go (RTX 4090)** avec \~18 Go. `--fit sur` effectuera également un déchargement automatique, mais si vous constatez de mauvaises performances, réduisez `--ctx-size`.

```bash
./llama.cpp/llama-server \
    --model unsloth/gemma-4-26B-A4B-it-GGUF/gemma-4-26B-A4B-it-UD-Q4_K_XL.gguf \
    --alias "unsloth/gemma-4-26B-A4B" \
    --temp 1.0 \
    --top-p 0.95 \
    --top-k 64 \
    --port 8001 \
    --kv-unified \
    --cache-type-k q8_0 --cache-type-v q8_0 \
    --batch-size 4096 --ubatch-size 1024
```

{% hint style="info" %}
Nous avons utilisé `--cache-type-k q8_0 --cache-type-v q8_0` pour la quantification du cache KV afin de réduire l’utilisation de la VRAM. Si vous constatez une qualité réduite, utilisez `bf16` à la place (`--cache-type-k bf16 --cache-type-v bf16`), mais la VRAM double.
{% endhint %}

{% hint style="success" %}
**Désactiver le raisonnement** peut améliorer les performances pour les tâches de codage agentiques. Gemma 4 सक्रिय?

**macOS / Linux / WSL :**

`--chat-template-kwargs '{"enable_thinking":false}'`

**PowerShell Windows :**

`--chat-template-kwargs "{\"enable_thinking\":false}"`
{% endhint %}
{% endstep %}

{% step %}

#### **Dirigez Codex vers le port 8001**

Modifiez votre `~/.codex/config.toml` pour utiliser le port du serveur llama-server :

{% code title="\~/.codex/config.toml" %}

```toml
[model_providers.llama_cpp]
name      = "llama.cpp"
base_url  = "http://localhost:8001/v1"
env_key   = "LLAMA_CPP_API_KEY"
wire_api  = "responses"

[profiles.llama_cpp]
model_provider = "llama_cpp"
model          = "unsloth/gemma-4-26B-A4B"
```

{% endcode %}

Puis lancez avec le nouveau profil :

```bash
codex -p llama_cpp
```

Comme llama-server n’a pas besoin d’une vraie clé, vous pouvez définir le jeton d’authentification sur n’importe quelle valeur :

{% code title="macOS / Linux / WSL" %}

```bash
export LLAMA_CPP_API_KEY=sk-no-key-required
```

{% endcode %}

{% code title="Windows PowerShell" %}

```powershell
$env:LLAMA_CPP_API_KEY = "sk-no-key-required"
```

{% endcode %}
{% endstep %}
{% endstepper %}


---

# 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/bases/codex.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.
