Aller au contenu principal

Routage et repli

L'écran Routage et repli permet d'écrire les règles de routage et les chaînes de repli du Model Router, et de simuler quel modèle et quelle chaîne de repli le routeur choisit pour une requête. Chemin dans le portail : /llm/router. Il est utilisé par les administrateurs de la plateforme IA, qui écrivent les règles, et par tout lecteur LLM qui veut comprendre une décision de routage. L'écran est construit dans portal/src/screens/llm.tsx (Router, routesCfg, routeSimulateCfg).

Ce que montre l'écran​

La table Règles de routage (GET /v1/routes, triée par priorité puis par nom), avec un bouton d'actualisation et Nouvelle règle pour les administrateurs.

ColonneContenu
NomNom de la règle.
PrioritéLes valeurs les plus basses sont évaluées d'abord (défaut 100).
CorrespondanceCondition JSON, par exemple {"task": "chat"}.
Stratégiepriority, cost, latency ou quality.
Modèle cibleModèle choisi quand la règle correspond.
CandidatsAutres modèles parmi lesquels la stratégie peut choisir.
ReplisChaîne de repli ordonnée.
ActivéSeules les règles actives sont évaluées.

Sans règle : « Aucune règle de routage. Sans règle, le routeur utilise directement le modèle demandé. »

Sous la table, le panneau Simuler le routage (« Voyez quel modèle et quelle chaîne de repli le routeur choisit pour une requête. ») contient un formulaire sur deux colonnes : Modèle, Tâche (défaut chat), Finalité, Classification des données (internal, public, confidential, restricted), Capacités, Régions autorisées, Fournisseurs autorisés, Stratégie, le bouton Exécuter et le Résultat JSON.

Actions​

Bouton ou actionCe qu'il faitAppel d'APIRôles
Nouvelle règlePanneau avec Nom, Priorité, Correspondance (JSON), Stratégie, Modèle cible, Candidats, Replis, Activé ; Créer l'enregistre.POST /v1/routestenant_admin, platform_admin, ai_platform_engineer
Modifier (menu de ligne)Même formulaire, prérempli ; remplace la règle.PUT /v1/routes/{rid}tenant_admin, platform_admin, ai_platform_engineer
Supprimer (menu de ligne)Supprime la règle après la confirmation destructive (saisir le nom de la ressource, puis Confirmer).DELETE /v1/routes/{rid}tenant_admin, platform_admin, ai_platform_engineer
Bouton d'actualisationRelit les règles.GET /v1/routeslecteurs LLM
Exécuter (Simuler le routage)Fait tourner le routeur sur la requête sans appeler de modèle et affiche selected, fallbacks, strategy, rejected et la règle utilisée (route_id).POST /v1/routes/simulatelecteurs LLM

Rôles​

  • Lecture et simulation (GET /v1/routes, POST /v1/routes/simulate) : les lecteurs LLM de portal/src/lib/kit.ts (ROLES.llmReaders), identiques à READ dans services/control-plane/src/eai/domains/llm/__init__.py.
  • Écriture (création, modification, suppression) : tenant_admin, platform_admin, ai_platform_engineer (ROLES.llmAdmins). Le bouton Nouvelle règle et le menu de ligne sont masqués pour les autres rôles.
  • Les règles appartiennent à un tenant : un principal sans tenant reçoit platform_only à la création.

Tâches courantes​

Ajouter une règle de routage avec une chaîne de repli​

  1. Ouvrir le formulaire. Cliquez sur Nouvelle règle. Résultat attendu : le panneau Nouvelle règle avec {"task": "chat"} dans Correspondance. En cas d'échec : le bouton manque quand votre rôle ne peut pas écrire de règle.
  2. Décrire la règle. Saisissez le Nom, une Priorité plus basse que les règles existantes si elle doit passer en premier, la condition Correspondance, le Modèle cible et les Replis (séparés par des virgules), pour qu'un échec de la cible bascule dans l'ordre. Résultat attendu : aucun message JSON invalide sous Correspondance. En cas d'échec : corrigez le JSON de Correspondance.
  3. Créer. Cliquez sur Créer. Résultat attendu : notification Créé et la nouvelle ligne dans Règles de routage. En cas d'échec : le message de l'API s'affiche dans le panneau.

Vérifier le modèle choisi pour une requête​

  1. Décrire la requête. Dans Simuler le routage, renseignez Tâche, Classification des données et, si besoin, Capacités ou Régions autorisées, pour que la simulation applique les mêmes politiques qu'un vrai appel. Résultat attendu : le formulaire est complet. En cas d'échec : laissez vides les champs facultatifs plutôt que de deviner.
  2. Exécuter. Cliquez sur Exécuter. Résultat attendu : le Résultat JSON montre selected, les fallbacks ordonnés, la strategy, les candidats rejected avec leur raison et le route_id de la règle qui correspond. En cas d'échec : « Aucun modèle ne respecte les politiques de cette requête. » (no_eligible_model, 422) : les détails de l'erreur portent les modèles rejected ; assouplissez la classification ou les listes d'autorisation, ou approuvez un modèle.

Dépannage​

SymptômeCauseCorrection
« Aucun modèle ne respecte les politiques de cette requête. » (no_eligible_model, 422)Tous les candidats sont rejetés (statut, coupe-circuit, région, classification, liste d'autorisation).Lisez les détails rejected de l'erreur, puis corrigez le modèle ou la règle.
« Route introuvable. » (route_not_found, 404)La règle a été supprimée entre-temps, ou le route_id est faux.Actualisez la table.
« Seul un administrateur de la plateforme peut modifier les entrées de niveau plateforme. » (platform_only, 403) sur CréerLe principal n'a pas de tenant.Connectez-vous sur un tenant.
JSON invalide sous CorrespondanceCorrespondance n'est pas un objet JSON.Saisissez un objet JSON comme {"task": "chat"}.
forbidden (403)Rôle non autorisé à écrire des règles.Demandez à un tenant_admin ou à un ai_platform_engineer.

Pages liées​