# Ollama et Tchavi : modèles locaux et grands modèles sans carte

> Ollama ne sert que ses propres modèles. Ajoute Tchavi dans Open WebUI ou dans ton code pour les grands modèles, payés en mobile money : mesures et code.

- Published: 2026-10-21
- Author: Gael — fondateur de Tchavi
- Canonical: https://tchavi.com/fr/blog/ollama-tchavi-modeles-locaux-et-cloud

---


Beaucoup de développeurs installent Ollama pour la même raison : faire tourner un modèle d'IA sur leur machine, sans carte bancaire et sans payer en dollars. Ça marche, et sur une bonne machine ça marche même bien. Puis vient le jour où le modèle local est trop lent pour répondre à un client, où le portable n'a pas assez de mémoire, ou où le PC est tout simplement éteint.

La question qu'on me pose alors : peut-on brancher Tchavi dans Ollama ? La réponse courte est non, et ce n'est pas grave. Ollama ne parle qu'à tes modèles locaux et à son propre cloud. Mais tu peux faire travailler les deux ensemble, dans la même interface ou dans le même code, et c'est ce que j'ai mesuré ici.

## En bref

- **On ne branche pas Tchavi dans Ollama.** Ollama sert les modèles de ta machine et ceux de son propre service cloud, rien d'autre.
- **On les fait travailler ensemble** : Open WebUI affiche tes modèles Ollama et ceux de Tchavi dans la même liste, et un même code peut appeler l'un puis l'autre.
- **Sur un Mac M4 Pro à 48 Go, Qwen 3.6 en local a tout réussi, en 10 à 39 secondes.** GPT-6 Luna via Tchavi a donné les mêmes bonnes réponses en 3 à 4 secondes, pour moins de 0,05 F la requête.
- **Quand Ollama ne répond pas, le code bascule sur Tchavi** : réponse obtenue en 5,3 secondes, sans rien toucher.
- **Sur un portable à 8 ou 16 Go, ces modèles locaux ne tiennent pas** : Qwen 3.6 pèse 23 Go, Qwen 3.8 17 Go.
- Tchavi est une passerelle d'API IA compatible OpenAI : une seule clé donne accès à plus de 100 modèles de texte, d'image, d'audio et de vidéo, et tu la paies en mobile money, sans carte bancaire ([pays et opérateurs](https://tchavi.com/fr/docs/payments)).

## Pourquoi Tchavi ne se branche pas dans Ollama

Ollama fait deux choses : il télécharge des modèles et les fait tourner sur ta machine, et il propose aussi des modèles « cloud » qui tournent sur ses propres serveurs, avec une clé Ollama. Sa [documentation](https://docs.ollama.com/cloud) ne prévoit pas de rediriger les requêtes vers une autre API.

Ce qu'Ollama a en commun avec Tchavi, c'est le format : les deux répondent comme l'API d'OpenAI. Ollama sur `http://localhost:11434/v1`, Tchavi sur `https://tchavi.com/api/v1`. Tout outil qui accepte deux adresses compatibles OpenAI, ou tout code qui sait en appeler deux, peut donc utiliser les deux. Voici deux façons de le faire.

## Ce que donnent tes modèles locaux face à Tchavi

Avant de choisir, j'ai mesuré. Deux tâches de boutique, en français, données à quatre modèles, une fois chacune :

- **Extraction** : transformer « Bonsoir, je veux 3 pagnes wax bleus et 2 sacs en raphia, livraison à Porto-Novo samedi. Je paie par MTN MoMo. » en une commande au format JSON.
- **Calcul** : appliquer une grille de livraison (Cotonou 1 000 F, Abomey-Calavi 1 500 F, Porto-Novo 2 000 F ; offerte dès 25 000 F d'achat, sauf à Porto-Novo où elle est seulement réduite de moitié) à une cliente de Porto-Novo qui prend 3 pagnes à 6 500 F et 2 sacs à 4 000 F. La bonne réponse est 28 500 F.

| Modèle                                                 | Où     | Extraction   | Calcul        | Coût par requête |
| ------------------------------------------------------ | ------ | ------------ | ------------- | ---------------- |
| Qwen 3.6 (23 Go)                                       | Ollama | juste, 9,9 s | juste, 38,7 s | 0 F              |
| Qwen 3.8 (17 Go)                                       | Ollama | juste, 8,1 s | juste, 15,1 s | 0 F              |
| [GPT-6 Luna](https://tchavi.com/fr/m/openai/gpt-6-luna)                  | Tchavi | juste, 4,3 s | juste, 3,2 s  | moins de 0,05 F  |
| [Claude Sonnet 5.5](https://tchavi.com/fr/m/anthropic/claude-sonnet-5-5) | Tchavi | juste, 3,8 s | juste, 2,9 s  | 0,9 à 1,9 F      |

_Mesuré en octobre 2026 sur un Mac M4 Pro avec 48 Go de mémoire, Ollama 0.40.8, une exécution par modèle et par tâche, modèles locaux déjà chargés en mémoire, Tchavi appelé depuis une instance de test aux tarifs publics._

Ce tableau dit trois choses.

**Sur une machine puissante, les modèles locaux font le travail.** Les quatre modèles ont donné les bonnes réponses aux deux tâches. Pour trier des messages ou faire un calcul simple, un bon modèle local suffit.

**Mais ils prennent leur temps.** Qwen 3.6 réfléchit longuement avant de répondre : 2 431 tokens générés pour le calcul, réflexion comprise, soit près de 39 secondes. Charger le modèle en mémoire ajoute 10 à 14 secondes au premier appel. Pour un client qui attend sur WhatsApp, c'est long ; GPT-6 Luna répond en 3 à 4 secondes.

**Et la machine compte plus que tout.** Ces chiffres viennent d'un ordinateur haut de gamme. Qwen 3.6 occupe 23 Go et Qwen 3.8 17 Go : sur le portable à 8 ou 16 Go que la plupart des développeurs utilisent, ils ne se chargent pas, et il faut descendre vers des modèles beaucoup plus petits, que je n'ai pas testés ici.

## Option 1 : Open WebUI, une seule interface pour les deux

[Open WebUI](https://docs.openwebui.com) est une interface de chat très utilisée avec Ollama. Elle accepte plusieurs connexions à la fois : une vers Ollama, une vers n'importe quelle API compatible OpenAI. Tes modèles locaux et ceux de Tchavi apparaissent alors dans la même liste.

**Au lancement.** C'est la méthode que j'ai testée : trois variables d'environnement, et Open WebUI démarre avec les deux connexions.

```bash
export OLLAMA_BASE_URL=http://localhost:11434
export OPENAI_API_BASE_URL=https://tchavi.com/api/v1
export OPENAI_API_KEY=sk-tch-ta-cle
uvx --python 3.11 --from open-webui open-webui serve
```

`uvx` installe Open WebUI à part, avec Python 3.11 (il demande 3.11 ou 3.12), sans toucher à ton Python système. Si tu as déjà l'une de ces versions, `pip install open-webui` puis `open-webui serve` fait la même chose ; Open WebUI existe aussi en image Docker, décrite dans sa documentation. Au premier lancement, il télécharge un petit modèle qui sert à la recherche dans les documents : compte quelques minutes avant que la page réponde, sur `http://localhost:8080`.

Testé avec Open WebUI 0.12.3 : la liste affichait mes 5 modèles Ollama (3 installés sur la machine, 2 du cloud d'Ollama) et les modèles de Tchavi, plus de 100, côte à côte. La même question (« En une phrase : quelle est la capitale du Bénin ? ») a reçu la bonne réponse des deux côtés : en 1,8 seconde et pour 0,021 crédit, moins d'un centième de franc, avec GPT-6 Luna ; en 6,8 secondes, dont 3,3 de chargement, avec Qwen 3.6.

La liste de Tchavi contient aussi ses modèles d'image, de vidéo et d'audio : dans le chat, choisis un modèle de texte.

**Depuis l'interface.** Si Open WebUI tourne déjà, ouvre **Admin Settings → Connections**, puis, dans la section **OpenAI**, ajoute une connexion :

- **URL** : `https://tchavi.com/api/v1`
- **Clé** : ta clé Tchavi, qui commence par `sk-tch-`

Garde la connexion Ollama telle quelle. C'est aussi là qu'il faut changer de clé plus tard : Open WebUI enregistre sa configuration au premier lancement, et les variables d'environnement ne la remplacent plus ensuite.

Donne à cette clé une [limite de dépense](https://tchavi.com/fr/docs/authentication) depuis ton tableau de bord : une interface de chat partagée avec une équipe, c'est exactement là qu'une clé plafonnée évite les surprises.

## Option 2 : dans ton code, Ollama d'abord, Tchavi en renfort

Le même SDK OpenAI parle aux deux. Le code ci-dessous demande d'abord au modèle local, vérifie que sa réponse est exploitable, et passe à Tchavi si Ollama est éteint, trop lent ou se trompe de format. C'est le code que j'ai testé ; seule l'adresse de Tchavi pointait alors vers mon instance de test.

```javascript
import OpenAI from 'openai';

// Ollama en local, Tchavi en renfort. Les deux parlent le format OpenAI.
const local = new OpenAI({
  baseURL: process.env.OLLAMA_URL ?? 'http://localhost:11434/v1',
  apiKey: 'ollama', // Ollama n'en demande pas, mais le SDK exige une valeur
  maxRetries: 0, // si Ollama ne répond pas, on bascule tout de suite
});

// Le modèle que ta machine fait tourner. qwen3.6 pèse 23 Go et demande plus de
// mémoire que ça ; sur un portable à 8 ou 16 Go, prends un modèle plus petit.
const MODELE_LOCAL = process.env.MODELE_LOCAL ?? 'qwen3.6';

const tchavi = new OpenAI({
  baseURL: 'https://tchavi.com/api/v1',
  apiKey: process.env.TCHAVI_API_KEY,
});

const CONSIGNE =
  'Tu extrais les commandes des messages WhatsApp d\'une boutique. Réponds uniquement par un objet JSON avec les clés : intention ("commande", "reclamation", "question" ou "autre"), articles (liste de {produit, quantite}), ville, jour, paiement.';

// Une réponse inexploitable compte comme un échec : on préfère payer
// quelques centimes chez Tchavi plutôt qu'enregistrer une commande fausse.
function lireCommande(texte) {
  const d = JSON.parse(texte);
  if (!['commande', 'reclamation', 'question', 'autre'].includes(d.intention)) {
    throw new Error('intention inconnue');
  }
  if (d.intention === 'commande' && !d.articles?.length) {
    throw new Error('commande sans article');
  }
  return d;
}

async function demander(client, model, message) {
  const reponse = await client.chat.completions.create(
    {
      model,
      messages: [
        { role: 'system', content: CONSIGNE },
        { role: 'user', content: message },
      ],
      response_format: { type: 'json_object' },
    },
    { timeout: 30_000 },
  );
  return lireCommande(reponse.choices[0].message.content);
}

export async function extraireCommande(message) {
  try {
    return { source: 'local', commande: await demander(local, MODELE_LOCAL, message) };
  } catch {
    // Ollama éteint, trop lent ou réponse inexploitable : Tchavi prend le relais.
    return { source: 'tchavi', commande: await demander(tchavi, 'gpt-6-luna', message) };
  }
}
```

J'ai lancé ce code dans les deux situations qui comptent :

| Situation          | Qui a répondu | Temps  | Commande extraite                      |
| ------------------ | ------------- | ------ | -------------------------------------- |
| Ollama allumé      | Qwen 3.6      | 21,9 s | 3 pagnes, 2 sacs, Porto-Novo, MTN MoMo |
| Ollama injoignable | GPT-6 Luna    | 5,3 s  | 3 pagnes, 2 sacs, Porto-Novo, MTN MoMo |

Deux détails font la différence. **`maxRetries: 0`** : sans lui, le SDK réessaie deux fois une connexion morte avant d'abandonner, et la bascule avait pris 9 secondes au lieu de 5,3. **La vérification `lireCommande`** : une réponse locale qui n'est pas un JSON valide, ou une commande sans article, déclenche elle aussi le renfort, au lieu d'arriver dans ta base de données.

Le délai de 30 secondes est un compromis. Qwen 3.6 a mis jusqu'à 39 secondes sur le calcul : avec un délai plus court, ces requêtes partiraient chez Tchavi, ce qui est peut-être exactement ce que tu veux pour un client qui attend.

## Et les agents de code ?

Même principe pour les agents de code qui acceptent plusieurs fournisseurs. Dans OpenCode, le bloc `provider` d'`opencode.json` prend une entrée par fournisseur : sa [documentation](https://opencode.ai/docs/providers/) montre l'entrée Ollama, et notre [guide OpenCode](https://tchavi.com/fr/docs/coding-agents/opencode) montre celle de Tchavi. Les deux peuvent cohabiter dans le même fichier. Je ne l'ai pas testé ici ; pour Claude Code, qui n'accepte qu'une seule adresse, voir [Claude Code sans carte bancaire](https://tchavi.com/fr/blog/claude-code-sans-carte-bancaire-mobile-money).

## Combien coûte le renfort Tchavi

Le modèle local ne coûte rien de plus que ta machine et ton électricité. Le renfort se paie à la requête, en crédits rechargés par mobile money (3 crédits = 1 F).

| Modèle            | Une extraction comme ci-dessus | 1 000 messages par jour, sur un mois |
| ----------------- | ------------------------------ | ------------------------------------ |
| GPT-6 Luna        | 0,13 crédit, soit 0,04 F       | 3 900 crédits, soit 1 300 F          |
| Claude Sonnet 5.5 | 2,7 crédits, soit 0,9 F        | 82 000 crédits, soit 27 330 F        |

Si Ollama répond à la majorité des messages et que Tchavi ne prend que le reste, tu ne paies que ce reste. C'est tout l'intérêt du montage : le local pour le volume, Tchavi quand il faut aller vite, quand la machine ne suit pas, ou quand la tâche dépasse le modèle local. Pour comparer les autres modèles, le [guide des prix en FCFA](https://tchavi.com/fr/blog/prix-api-ia-fcfa-2026) donne la grille complète.

## FAQ

### Peut-on utiliser Tchavi dans Ollama ?

Non. Ollama ne sert que les modèles installés sur ta machine et ceux de son propre service cloud. En revanche, comme Ollama et Tchavi parlent tous les deux le format de l'API OpenAI, une interface comme Open WebUI ou ton propre code peuvent utiliser les deux en même temps.

### Open WebUI peut-il utiliser Ollama et une API externe en même temps ?

Oui. Open WebUI accepte une connexion Ollama et des connexions compatibles OpenAI côte à côte, dans **Admin Settings → Connections**. Avec Tchavi ajoutée comme connexion compatible OpenAI (`https://tchavi.com/api/v1`), tes modèles locaux et ceux de Tchavi apparaissent dans la même liste.

### Quel modèle Ollama choisir sur un portable de 8 ou 16 Go ?

Un modèle nettement plus petit que la mémoire de ta machine. Les deux modèles testés ici pèsent 23 Go et 17 Go et ne se chargent pas sur ces portables. La bibliothèque d'Ollama propose des versions de quelques gigaoctets ; je ne les ai pas évaluées dans cet article, donc teste-les sur tes propres messages avant de leur confier des clients.

### Mes données restent-elles sur ma machine ?

Avec Ollama en local, oui : le modèle tourne chez toi. Quand le code bascule sur Tchavi, la requête est traitée par l'éditeur du modèle choisi et, selon le modèle, par l'hébergeur qui l'exécute pour lui, chacun selon sa politique de confidentialité. Pour le texte, Tchavi enregistre le modèle, les tokens consommés et le coût, pas le contenu des requêtes.

### Combien coûte le renfort Tchavi ?

Sur la tâche mesurée ici, 0,04 F par requête avec GPT-6 Luna et 0,9 F avec Claude Sonnet 5.5. Tu ne paies que les requêtes qui passent effectivement par Tchavi, en crédits rechargés par mobile money dès 1 000 F.

### Faut-il une carte bancaire ?

Non. Ollama est gratuit, et Tchavi se recharge en mobile money, sans carte ni abonnement. Les crédits achetés n'expirent pas.

---

Pour ajouter le renfort, [crée ton compte et recharge 1 000 F](https://tchavi.com/fr/register?next=%2Fdashboard%2Fbilling%3Famount%3D1000%26currency%3DXOF%26from%3Dblog-ollama) en mobile money, puis génère une clé plafonnée pour Open WebUI ou pour ton code.

_Cet article fait partie de la série « Construire un SaaS IA depuis l'Afrique francophone ». Tchavi est une passerelle d'API IA compatible OpenAI : une seule clé donne accès à plus de 100 modèles de texte, d'image, d'audio et de vidéo, et tu la paies en mobile money, sans carte bancaire ([pays et opérateurs](https://tchavi.com/fr/docs/payments)). Dans la série : [payer les API IA sans carte Visa](https://tchavi.com/fr/blog/payer-api-ia-sans-carte-visa), [les prix des API IA en FCFA](https://tchavi.com/fr/blog/prix-api-ia-fcfa-2026), [un chatbot WhatsApp IA en Node.js](https://tchavi.com/fr/blog/chatbot-whatsapp-ia-nodejs-afrique), [Claude Code en mobile money](https://tchavi.com/fr/blog/claude-code-sans-carte-bancaire-mobile-money), [les notes vocales en wolof et en swahili](https://tchavi.com/fr/blog/notes-vocales-whatsapp-ia-wolof-swahili) et [les modèles vidéo IA et leur prix en FCFA](https://tchavi.com/fr/blog/meilleurs-modeles-video-ia-2026-prix-fcfa). Pour suivre les prochains : [LinkedIn](https://www.linkedin.com/company/tchavi) et [X](https://x.com/tchaviai)._

