model dans votre requête. Le point de terminaison et la clé API restent identiques ; seule la valeur de model change.
How routing works
Chaque déploiement a un nom public unique. Lorsque Tokios reçoit une requête, il lit le champmodel, trouve le déploiement correspondant, le réécrit en l’ID de modèle amont de ce déploiement, et le transmet via le tunnel du connecteur. La configuration de votre client ne change jamais — seule la valeur de model change.
One connector, many models
Un seul connecteur peut servir plusieurs modèles. Listez chaque ID de modèle amont dansRoutes et mappez-le à un upstream local nommé dans Upstreams :
tokios-connector.json
gemma-tunnel → gemma4:e4b, qwen-coder → qwen2.5-coder), tous pointant vers ce connecteur.
Switching models in requests
Une fois les deux déploiements enregistrés, changez de modèle en modifiant uniquement le champmodel :
Swap the backend without touching clients
Comme les clients ne référencent que le nom public, vous pouvez déplacer un modèle vers du matériel différent ou un backend différent sans modifier la configuration client : mettez à jour le déploiement (ou l’upstream du connecteur) pour pointer vers le nouveau serveur, gardez le même nom public, et les requêtes existantes continuent de fonctionner.Routing strategies
Lorsque vous faites tourner plusieurs modèles locaux, envoyer chaque requête au même modèle gaspille des ressources. Une requête de code n’a pas besoin d’un modèle de raisonnement 120B, et une tâche de classification simple n’a pas besoin d’un modèle dense 70B. Le routage vous permet de diriger chaque requête vers le modèle le mieux adapté à la tâche — optimisant la vitesse, la qualité ou le coût selon la charge de travail. Faire tourner 1 modèle pour tout oblige à un compromis. Un grand modèle gère bien chaque tâche mais répond lentement et consomme plus de VRAM. Un petit modèle répond vite mais peine avec le raisonnement complexe. Le routage vous permet d’avoir les deux :- Speed : les requêtes simples vont à un petit modèle rapide ; les tâches complexes vont à un grand modèle
- Quality : les tâches de code vont à un modèle spécialisé en code ; le chat général va à un généraliste
- Cost : les petits modèles consomment moins d’énergie et de VRAM, laissant de la marge pour les tâches exigeantes
- Resilience : si votre modèle principal est occupé ou indisponible, les requêtes basculent vers un secours
Single model per deployment
Single model per deployment
L’approche la plus simple — enregistrez chaque modèle comme son propre déploiement Tokios et laissez le client choisir lequel appeler en changeant le champ Votre client envoie des requêtes avec la valeur When to use : vous faites tourner 2–3 modèles et votre application contrôle lequel appeler. C’est le point de départ le plus courant.
model.tokios-connector.json
model appropriée :Task-based routing
Task-based routing
Routez par type de tâche — envoyez les requêtes de code à un modèle spécialisé en code, le chat à un généraliste, et le raisonnement à un modèle dense. Le client ou une couche intermédiaire inspecte la requête et choisit le déploiement.Pour un routage plus sophistiqué, utilisez une passerelle comme LiteLLM ou OpenRouter qui inspecte les requêtes et les transmet au bon backend selon des règles configurables.
L’implémentation la plus simple se fait dans le code de votre application — inspectez le type de requête et sélectionnez le nom du déploiement :
Gateway-level routing
Gateway-level routing
Placez un proxy de routage entre vos clients et Tokios. Le proxy décide quel déploiement Tokios utiliser en fonction des attributs de la requête, de la charge ou de règles personnalisées.LiteLLM peut se placer devant plusieurs déploiements Tokios et router selon des alias de modèles :Les clients envoient leurs requêtes au proxy LiteLLM en utilisant l’alias
litellm_config.yaml
gpt-4, et le proxy route vers le déploiement Tokios que vous avez configuré.OpenRouter prend en charge le fallback de modèles et l’équilibrage de charge entre plusieurs fournisseurs. Ajoutez votre point de terminaison Tokios comme fournisseur personnalisé et configurez les règles de routage dans le tableau de bord OpenRouter.Fallback chains
Fallback chains
Configurez un modèle principal avec 1 ou plusieurs modèles de secours. Si le principal est occupé, hors ligne ou renvoie une erreur, la requête bascule vers le modèle suivant dans la chaîne.Les connecteurs Tokios signalent leur statut au gateway. Si un connecteur passe hors ligne, les requêtes vers des déploiements sur ce connecteur renvoient 503. Votre application peut capturer cela et réessayer avec un déploiement différent, ou vous pouvez configurer une passerelle comme LiteLLM pour gérer le fallback automatiquement.
Cost-based routing
Cost-based routing
Routez les requêtes simples et à haut volume vers un modèle plus petit et moins coûteux, et réservez le grand modèle aux tâches qui en ont besoin.
Cette stratégie réduit le calcul total et la consommation d’énergie — important lorsque vous tournez sur du matériel grand public où la VRAM et le wattage sont limités.
Decision matrix
Ces stratégies ne sont pas mutuellement exclusives. Un pattern de production courant combine le routage par tâche (code → modèle de code) avec des chaînes de fallback (principal → secours) derrière un proxy de passerelle.
Next steps
Choose a local model
Comparez les modèles et les backends pour décider quels déploiements enregistrer.
Test your deployment
Mesurez le débit et la latence pour valider vos décisions de routage sous des charges réelles.