# Un seul modèle côté client : la passerelle répartit automatiquement

> Retirez le choix du modèle du client : un seul nom de modèle exposé, la passerelle répartissant automatiquement selon l’état de la conversation (plan vs exécution) pour qu’un modèle fort planifie et qu’un modèle économique exécute, sans dérive de configuration par machine.

Canonique: https://www.gatellm.io/fr/use-cases/automatic-model-tiering/

Retirez le choix du modèle de l’interface — le client expose un seul nom de modèle, la planification tourne sur le modèle fort et l’exécution atterrit sur le modèle économique, répartis sur le saut que la requête faisait déjà.

## Ce dont la communauté se plaint réellement
« Chacun a un modèle différent dans ses réglages et le même prompt donne un résultat différent pour deux personnes », « la question la plus fréquente la première semaine est quel modèle choisir », « retirer un modèle signifie modifier des variables d’environnement sur chaque machine de développeur. » Le choix du modèle a été confié aux personnes les moins informées pour le faire : elles ne voient pas leurs propres dépenses et n’ont aucun moyen de savoir si cette requête mérite le modèle fort.
Basculez tout le monde sur un modèle bon marché et le travail se dégrade — confiez la planification et le jugement architectural à un petit modèle et les reprises coûtent plus que les économies. La séparation qui compte vraiment est ce que fait cette requête, planification ou exécution, et le client ne l’a jamais dit à la passerelle.

## Comment GateLLM procède
Le client garde un seul nom de modèle ; un mappage fourre-tout (de "*") sur la passerelle normalise le nom que le client demande, de sorte que modifier ses réglages personnels ne change plus où la requête atterrit. Il ne reste plus rien à expliquer sur le choix du modèle.
Le signal de répartition est déjà dans la conversation : le mode plan de Claude Code injecte Plan mode is active à l’entrée et Exited Plan Mode à la sortie. Un script d’emplacement avant scanne en arrière depuis le dernier message, prend le dernier marqueur vu pour déterminer l’état courant, puis appelle context.useModel() pour changer le routage. La décision est une comparaison de positions dans une chaîne — aucun appel de classification séparé, aucun saut réseau supplémentaire.
La répartition doit vivre dans l’emplacement avant : l’emplacement après voit le corps amont traduit et ne peut pas lire les marqueurs injectés par le client, et useModel en emplacement après ne bascule qu’au sein du même protocole, alors que passer du plan à l’exécution est un changement de route entre modèles. Les règles request_payload (prompt_cache_key et compagnie) doivent être configurées sur les deux modèles : le modèle d’entrée garde les siennes pendant la planification, celles du modèle cible s’appliquent une fois la bascule faite.

## 5 leviers qui portent réellement
- Nom d’entrée unique : le client expose un seul nom de modèle et un mappage fourre-tout « de * » normalise chaque nom demandé en un seul modèle d’atterrissage
- Répartition automatique : un script d’emplacement avant prend le dernier marqueur en scannant en arrière — le marqueur d’entrée reste dans l’historique pour toujours, donc une vérification « contient » lit l’état comme mode plan de façon permanente
- Garde de protocole : le script vérifie d’abord context.sourceProtocol et sort tôt pour le trafic non Anthropic, de sorte qu’un modèle d’entrée servant plusieurs clients n’est jamais mal routé
- Observable : une étiquette SW dans la colonne modèle des journaux marque une bascule de script et MM un mappage d’identité ; les statistiques et la facturation imputent selon le nom final du modèle, donc chaque décision de répartition est auditable
- Zéro déploiement client : les changements de configuration ne nécessitent aucune modification par machine et les mappages se rechargent à chaud (seule exception : le plafond de tas du script SCRIPT_MEMORY_LIMIT_MB, qui exige un redémarrage)

## FAQ
### Un client peut-il encore choisir son propre modèle ?
Il peut choisir, mais ce choix ne décide plus où la requête atterrit : le mappage fourre-tout normalise tout nom demandé, et un useModel de script est un changement de route imposé par l’administrateur, non lié aux permissions du client. Exposer un seul nom côté client supprime entièrement la question.

### Pourquoi pas un routeur ou un classificateur de modèles dédié ?
Latence et forme. Un routeur séparé ajoute un saut et généralement un appel de classification ; ici le signal de répartition est un texte de marqueur déjà présent dans la conversation, et la décision est une comparaison de position du dernier marqueur sur le chemin que la requête empruntait déjà. La traduction de protocoles, l’authentification et la mesure vivent déjà sur la passerelle — la répartition n’a pas besoin d’un second composant pour les dupliquer.

### Le script n’a rien basculé et les journaux n’affichent aucune erreur ?
Probablement un dépassement mémoire du script : chaque script s’exécute dans son propre bac à sable QuickJS (plafond de tas SCRIPT_MEMORY_LIMIT_MB, 64 Mo par défaut) et en cas de débordement le mode par défaut journaliser-et-continuer supprime silencieusement tous les effets de bord, useModel compris. Les dizaines de définitions d’outils de Claude Code consomment de la mémoire en premier — ce plancher ne peut pas être supprimé au niveau du script, augmentez donc le plafond (un redémarrage est nécessaire). Vérifiez l’étiquette SW dans la colonne modèle des journaux pour confirmer la bascule.

- [Guide complet : basculer les modèles selon le mode plan (docs)](https://docs.gatellm.io/en/howto/script-switch-model-by-plan-mode)

## Cas d’usage associés
- [Imposer le modèle que les agents utilisent réellement : épinglez le modèle, séparez le plan de l’exécution](https://www.gatellm.io/fr/use-cases/enforce-model-policy.md)

## Voir aussi
- [Accueil](https://www.gatellm.io/fr/index.md)
- [Tarifs](https://www.gatellm.io/fr/pricing.md)
- [Calculateur de coûts](https://www.gatellm.io/fr/calculator.md)
- [À propos](https://www.gatellm.io/fr/about.md)
- [Réserver une démo](https://www.gatellm.io/fr/demo.md)
- [FAQ](https://www.gatellm.io/fr/faq.md)
- [Comparer les passerelles IA](https://www.gatellm.io/fr/compare.md)
- [Comparer LiteLLM](https://www.gatellm.io/fr/compare/litellm.md)
- [Comparer OpenRouter](https://www.gatellm.io/fr/compare/openrouter.md)
- [Comparer Alibaba Cloud AI Gateway](https://www.gatellm.io/fr/compare/alibaba-cloud.md)
- [Comparer Azure API Management](https://www.gatellm.io/fr/compare/azure-apim.md)
- [Comparer Apigee](https://www.gatellm.io/fr/compare/apigee.md)
- [Comparer Cloudflare AI Gateway](https://www.gatellm.io/fr/compare/cloudflare.md)
- [Comparer Kong AI Gateway](https://www.gatellm.io/fr/compare/kong.md)
- [Comparer Portkey](https://www.gatellm.io/fr/compare/portkey.md)
- [LiteLLM vs Kong AI Gateway](https://www.gatellm.io/fr/compare/litellm-vs-kong.md)
- [LiteLLM vs OpenRouter](https://www.gatellm.io/fr/compare/litellm-vs-openrouter.md)
- [LiteLLM vs Portkey](https://www.gatellm.io/fr/compare/litellm-vs-portkey.md)
- [Cas d’usage](https://www.gatellm.io/fr/use-cases.md)
- [Réduire le coût des LLM](https://www.gatellm.io/fr/use-cases/reduce-cost.md)
- [Haute disponibilité](https://www.gatellm.io/fr/use-cases/high-availability.md)
- [Isolation multi-tenant](https://www.gatellm.io/fr/use-cases/multi-tenant.md)
- [Conformité et audit](https://www.gatellm.io/fr/use-cases/compliance-audit.md)
- [Dépannage par symptôme](https://www.gatellm.io/fr/use-cases/troubleshooting.md)
- [Pile de modèles multi-fournisseurs](https://www.gatellm.io/fr/use-cases/mixed-model-stack.md)
- [Héberger l’IA en interne dans Office](https://www.gatellm.io/fr/use-cases/self-hosted-office-ai.md)
- [Visibilité et attribution des tokens](https://www.gatellm.io/fr/use-cases/token-ops.md)
- [Token FinOps : allocation et contrôle des coûts IA](https://www.gatellm.io/fr/use-cases/token-finops.md)
- [Gouvernance des outils MCP](https://www.gatellm.io/fr/use-cases/mcp-tool-governance.md)
- [Recherche web pour chaque modèle](https://www.gatellm.io/fr/use-cases/web-search-grounding.md)
- [Rotation et secours multi-clés](https://www.gatellm.io/fr/use-cases/multi-key-pooling.md)
- [Contrôle des clients connectés](https://www.gatellm.io/fr/use-cases/client-admission-control.md)
- [Imposer la politique d’usage des modèles](https://www.gatellm.io/fr/use-cases/enforce-model-policy.md)
- [Un protocole, n’importe quel modèle](https://www.gatellm.io/fr/use-cases/one-protocol-any-model.md)
- [Complément Office / Microsoft 365](https://www.gatellm.io/fr/office-addin.md)
- [Glossaire](https://www.gatellm.io/fr/glossary.md)
- [Catalogue de modèles](https://www.gatellm.io/fr/models.md)
- [Intégrations SDK et frameworks](https://www.gatellm.io/fr/integrations.md)
- [Agents de codage IA et harnais](https://www.gatellm.io/fr/coding-agents.md)
- [Sécurité et conformité](https://www.gatellm.io/fr/security.md)
