Aller au contenu principal

Registre des modèles

L'écran Registre des modèles permet de lister les modèles du tenant avec leurs capacités, leurs limites, leur résidence et leur statut de cycle de vie, de changer leur statut, de modifier leur fiche, de gérer les catégories de modèles et d'enregistrer des modèles par manifeste ou à la main. Chemin dans le portail : /llm/models, et /llm/models/<model_id> pour la page de détail. Il est utilisé par les administrateurs de la plateforme IA, par les responsables sécurité qui bloquent ou retirent un modèle, et par tout lecteur LLM qui vérifie ce qui est disponible. L'écran est construit dans portal/src/screens/llm.tsx (Models, ModelList, ModelDetail, Categories, ManualModel, ManifestApply).

Ce que montre l'écran​

La page de liste a trois onglets : Registre, Catégories (avec le nombre de catégories) et Manifeste (administrateurs seulement). Le bouton d'en-tête Ajouter manuellement est affiché aux administrateurs.

Onglet Registre : la table Modèles (GET /v1/models), un bouton d'actualisation et les filtres Fournisseur (texte), Catégorie (les catégories visibles du tenant) et Statut (approved, restricted, deprecated, blocked), appliqués par Filtrer.

ColonneContenu
Identifiant de modèleIdentifiant du registre (model_id).
Nom affichéNom montré aux utilisateurs.
CatégorieCatégorie du modèle (badge).
FournisseurType de fournisseur.
Identifiant modèle fournisseurIdentifiant du modèle chez le fournisseur.
Identifiant de déploiementIdentifiant de déploiement, par exemple un déploiement Azure.
CapacitésListe comme chat, tools, streaming, vision_input.
Fenêtre de contexteJetons acceptés en entrée.
Jetons de sortie maxLimite de sortie.
Modes de raisonnementNiveaux d'effort de raisonnement pris en charge.
Streaming, Cache, BatchOui ou non.
Classification maxClassification de données la plus haute acceptée par le modèle.
Version tarifaireVersion de la grille de prix.
Fournisseur configuréLe fournisseur du modèle est-il configuré ?
Statutapproved, restricted, deprecated ou blocked.

Quand le registre est vide : « Aucun modèle enregistré. Appliquez un manifeste Model ci-dessous pour enregistrer un modèle. » Un clic sur une ligne ouvre la page de détail.

Onglet Catégories : une carte par catégorie (GET /v1/llm/categories) avec son libellé, son identifiant et son icône, le badge Prédéfinie ou Personnalisée, sa description et n modèle(s). Les catégories prédéfinies sont en lecture seule.

Onglet Manifeste : un éditeur YAML ou JSON prérempli avec un manifeste Model d'exemple, les boutons Rétablir l'exemple et Appliquer, et à droite les erreurs de validation renvoyées par l'API ou Manifeste appliqué avec la réponse JSON.

Page de détail /llm/models/<model_id> : Retour, l'identifiant du modèle en titre, la section Cycle de vie (badge de statut et, pour les rôles qui peuvent le changer, le sélecteur Choisir un statut avec Changer le statut), des cartes pour nom affiché, catégorie, fournisseur, identifiant chez le fournisseur, identifiant de déploiement, fenêtre de contexte, jetons de sortie max, date limite des connaissances, classification max, version tarifaire et format filaire, puis les onglets Fiche du modèle (administrateurs), Fiche du registre (JSON) et Manifeste exporté (GET /v1/manifests/Model/<model_id>).

Actions​

Bouton ou actionCe qu'il faitAppel d'APIRôles
Filtrer (Registre)Applique les filtres fournisseur, catégorie et statut.GET /v1/modelslecteurs LLM
Changer le statut (menu de ligne)Formulaire avec Statut ; approved dans un tenant ouvre une demande d'approbation (réponse 202), les autres statuts s'appliquent tout de suite.POST /v1/models/{model_id}/statustenant_admin, platform_admin, ai_platform_engineer, security_officer
Désactiver (menu de ligne, modèle actif)Coupe-circuit du modèle, après la confirmation destructive (saisir le nom de la ressource).POST /v1/models/{model_id}/disabletenant_admin, platform_admin, ai_platform_engineer, security_officer
Activer (menu de ligne, modèle désactivé)Réactive le modèle.POST /v1/models/{model_id}/enabletenant_admin, platform_admin, ai_platform_engineer
Modifier (menu de ligne)Formulaire avec Nom affiché, Catégorie, Fenêtre de contexte, Jetons de sortie max, Classification max.PATCH /v1/models/{model_id}tenant_admin, platform_admin, ai_platform_engineer
Supprimer (menu de ligne)Supprime le modèle après la confirmation destructive.DELETE /v1/models/{model_id}tenant_admin, platform_admin, ai_platform_engineer
Ajouter manuellement (en-tête)Panneau Ajouter un modèle manuellement : Fournisseur (fournisseurs actifs), Identifiant du modèle chez le fournisseur, Identifiant du registre, Nom affiché, Catégorie, limites, modalités, Capacités, niveaux de raisonnement, Niveau de raisonnement par défaut, Date limite des connaissances, Statut, prix par 1M tokens, prix unitaires, Devise. Notification Modèle <id> ajouté ou « Ce modèle est déjà enregistré : rien n'a été ajouté. »GET /v1/providers, GET /v1/llm/categories, POST /v1/models/importtenant_admin, platform_admin, ai_platform_engineer
Nouvelle catégorie (Catégories)Panneau avec Identifiant, Libellé (anglais), Libellé (français), Description (anglais), Description (français), Nom d'icône.POST /v1/llm/categoriestenant_admin, platform_admin, ai_platform_engineer
Modifier (menu d'une catégorie personnalisée)Charge la catégorie, puis enregistre libellés, descriptions et icône.GET /v1/llm/categories/{slug}, PATCH /v1/llm/categories/{slug}tenant_admin, platform_admin, ai_platform_engineer
Supprimer (menu d'une catégorie personnalisée)Supprime une catégorie inutilisée après confirmation ; grisé tant que des modèles l'utilisent.DELETE /v1/llm/categories/{slug}tenant_admin, platform_admin, ai_platform_engineer
Rétablir l'exemple (Manifeste)Remet le manifeste d'exemple dans l'éditeur.aucunadministrateurs
Appliquer (Manifeste)Lit le YAML ou le JSON, puis valide et enregistre le manifeste.POST /v1/manifests/applyserveur : tenant_admin, developer (et platform_admin) ; onglet affiché à tenant_admin, platform_admin, ai_platform_engineer
Clic sur une ligneOuvre la page de détail.GET /v1/models/{model_id}, GET /v1/manifests/{kind}/{name}lecteurs LLM
Changer le statut (détail, Cycle de vie)Comme l'action de ligne, depuis le sélecteur Choisir un statut.POST /v1/models/{model_id}/statustenant_admin, platform_admin, ai_platform_engineer, security_officer
Enregistrer la fiche (détail, Fiche du modèle)N'envoie que les champs modifiés. Notification Fiche du modèle enregistrée ou Aucune modification.PATCH /v1/models/{model_id}tenant_admin, platform_admin, ai_platform_engineer
Retour (détail)Revient à la liste.aucuntout le monde

Rôles​

  • Lecture (GET /v1/models, GET /v1/models/{model_id}, GET /v1/llm/categories) : les lecteurs LLM (ROLES.llmReaders dans portal/src/lib/kit.ts, READ dans services/control-plane/src/eai/domains/llm/__init__.py) : tenant_admin, platform_admin, security_officer, finops, developer, auditor, viewer, agent, ai_platform_engineer, ai_governance_officer, support_engineer.
  • Administration (modification, activation, suppression, import, catégories, fiche du modèle) : tenant_admin, platform_admin, ai_platform_engineer (ROLES.llmAdmins).
  • Statut et coupe-circuit (status, disable) : les administrateurs plus security_officer (ROLES.llmDisablers).
  • Approbation d'une promotion vers approved : tenant_admin ou security_officer, dans la Boîte des approbations.
  • Manifeste : le serveur accepte tenant_admin et developer sur POST /v1/manifests/apply ; le portail affiche l'onglet aux administrateurs LLM, donc un ai_platform_engineer y reçoit forbidden. platform_admin passe tous les contrôles de rôle.

Tâches courantes​

Enregistrer un modèle que le fournisseur ne sait pas lister​

  1. Vérifier le fournisseur. Le modèle doit appartenir à un fournisseur actif de l'écran Fournisseurs. Résultat attendu : la carte du fournisseur affiche Configuré. En cas d'échec : le panneau indique « Configurez d'abord un fournisseur sur la page Fournisseurs. »
  2. Ouvrir le formulaire. Cliquez sur Ajouter manuellement, choisissez le Fournisseur et saisissez l'Identifiant du modèle chez le fournisseur (par exemple gpt-4.1-mini) ; laissez Identifiant du registre vide pour qu'il soit déduit. Résultat attendu : le formulaire affiche les champs de la fiche. En cas d'échec : un champ marqué Obligatoire est vide.
  3. Décrire le modèle. Réglez Catégorie, Fenêtre de contexte (tokens en entrée), Tokens de sortie max, les Capacités et les prix, pour que le routage et le calcul des coûts soient justes. Résultat attendu : aucun message de validation. En cas d'échec : « Le prix <champ> est invalide : il doit être un montant positif ou nul. »
  4. Valider. Cliquez sur Ajouter manuellement. Résultat attendu : notification Modèle <id> ajouté et le modèle dans l'onglet Registre. En cas d'échec : « Ce modèle est déjà enregistré : rien n'a été ajouté. » signifie que le modèle existe déjà.

Retirer ou bloquer un modèle​

  1. Trouver le modèle. Dans Registre, filtrez sur Statut ou Fournisseur et cliquez sur Filtrer. Résultat attendu : la ligne du modèle. En cas d'échec : videz les filtres et filtrez à nouveau.
  2. Changer son statut. Ouvrez le menu de ligne > Changer le statut, choisissez deprecated ou blocked, puis cliquez sur Changer le statut dans le formulaire. Un modèle bloqué ne peut pas être invoqué. Résultat attendu : notification Terminé, la colonne Statut affiche la nouvelle valeur. En cas d'échec : « Statut de modèle invalide » indique les valeurs permises.
  3. L'arrêter tout de suite si besoin. Pour un incident, utilisez Désactiver, saisissez le nom de la ressource dans la confirmation et cliquez sur Confirmer. Résultat attendu : la passerelle répond « Ce modèle est désactivé (coupe-circuit). » pour ce modèle. En cas d'échec : forbidden signifie que votre rôle ne fait pas partie des rôles de statut.

Appliquer un manifeste Model​

  1. Ouvrir l'onglet. Cliquez sur Manifeste. L'éditeur contient un manifeste d'exemple à adapter :

    apiVersion: enterprise-ai.io/v1
    kind: Model
    metadata:
    name: gpt-4o-eu
    version: 1.0.0
    spec:
    model_id: gpt-4o-eu
    provider: azure_openai
    provider_model_id: gpt-4o
    context_window: 128000
    max_output_tokens: 16384
    data_classification_max: confidential
    status: approved

    Résultat attendu : l'éditeur affiche votre YAML. En cas d'échec : cliquez sur Rétablir l'exemple pour repartir de l'exemple.

  2. Appliquer. Cliquez sur Appliquer : le document est lu, validé, contrôlé par la politique et enregistré dans le registre. Résultat attendu : Manifeste appliqué et la réponse JSON. En cas d'échec : « Impossible de lire le document » signale une erreur de syntaxe YAML ou JSON ; les erreurs de validation de l'API sont listées en rouge.

Dépannage​

SymptômeCauseCorrection
« Modèle <model_id> introuvable. » (model_not_found)L'identifiant n'existe pas dans ce tenant.Vérifiez l'identifiant dans l'onglet Registre.
« Le modèle <model_id> existe déjà. » (model_exists, 409)Même identifiant de registre déjà enregistré.Utilisez un autre model_id ou modifiez le modèle existant.
« Statut de modèle invalide : <statut>. » (status_invalid, 422)Statut hors de approved, restricted, deprecated, blocked.Choisissez l'une des quatre valeurs.
Changer le statut vers approved répond mais le statut ne change pasUne promotion ouvre une demande d'approbation (202).Faites-la décider par un tenant_admin ou un security_officer dans la Boîte des approbations.
« Le champ <champ> de la fiche du modèle est invalide. » (sheet_invalid) ou « Le prix <champ> est invalide » (pricing_invalid)Une valeur de la fiche ne passe pas les contrôles.Corrigez le champ cité dans le message.
« La catégorie <slug> est prédéfinie : elle ne peut être ni modifiée ni supprimée. » (category_builtin, 409)Les catégories prédéfinies sont en lecture seule.Créez plutôt une catégorie personnalisée.
« La catégorie <slug> est utilisée par <n> modèle(s) : déplacez-les d'abord vers une autre catégorie. » (category_in_use, 409)Des modèles utilisent encore la catégorie.Changez la catégorie de ces modèles avec Modifier, puis supprimez.
Catégorie en double (category_exists, 409)Identifiant déjà utilisé.Choisissez un autre Identifiant.
« Seul un administrateur de la plateforme peut modifier les entrées de niveau plateforme. » (platform_only, 403)Le modèle ou la catégorie est défini au niveau plateforme.Demandez à un platform_admin.
« Le manifeste du modèle est invalide. » (invalid_manifest) ou la liste rouge sous AppliquerLe manifeste ne respecte pas le contrat Model.Corrigez les champs listés, puis Appliquer à nouveau.
forbidden (403) sur AppliquerRôle non accepté par POST /v1/manifests/apply.Demandez à un tenant_admin ou à un developer.

Pages liées​