Clés LiteLLM
L'écran Clés LiteLLM permet de créer les clés virtuelles LiteLLM d'un projet LLM, de les limiter, de les bloquer et de les révoquer, et de suivre leur dépense et leur expiration. Une clé n'est jamais plus large que son projet et sa valeur en clair n'est affichée qu'une fois. Chemin dans le portail : /llm/keys (ou /llm/keys?project=<id> depuis l'écran Projets LLM). Il est utilisé par les administrateurs du tenant et de la plateforme (tenant_admin, platform_admin). L'écran est construit dans portal/src/screens/llm-management.tsx (LlmKeys, ProjectKeys, CreateKeyDialog, KeyLimitsDialog).
Ce que montre l'écran
- La section API d'administration LiteLLM (
GET /v1/llm/management/status), avec les mêmes trois états que sur Projets LLM et Vérifier à nouveau. - Le sélecteur Projet, rempli par
GET /v1/llm/projects; un projet non actif affiche son statut entre parenthèses. Sans projet : « Aucun projet LLM pour l'instant. Créez d'abord un projet LLM dans la page Projets LLM. » - La section Clés de
<projet>avec le rappel « Limites du projet : budget<budget>,<rpm>RPM,<tpm>TPM. Une clé ne peut être que plus stricte. » et le bouton Nouvelle clé. - Quand LiteLLM n'a pas pu rafraîchir la dépense : « Dépense non rafraîchie depuis LiteLLM (
<code>) : dernières valeurs connues affichées. » - La table des clés (
GET /v1/llm/projects/{project_id}/keys) :
| Colonne | Contenu |
|---|---|
| Clé | <nom> (<alias>), ou l'alias seul. |
| Préfixe | Premiers caractères de la clé suivis de ... ; la clé en clair n'est jamais conservée. |
| Statut | active, blocked ou revoked. |
| Modèles | Modèles de la clé, ou Modèles du projet. |
| Budget max | Budget de la clé, ou Projet (<valeur>) quand elle reprend le budget du projet. |
| Dépense | Dépense lue depuis LiteLLM, dans la devise du projet. |
| Limites de débit | <n> RPM, <n> TPM, <n> en parallèle, - quand la limite est héritée. |
| Expiration | Date d'expiration, vide quand la clé n'expire pas. |
Quand le projet n'a pas de clé : « Aucune clé pour ce projet. Créez une clé : sa valeur en clair n'est affichée qu'une fois. »
Le formulaire de création (« Les limites sont pré-remplies depuis le projet <nom> ; une limite vide reprend celle du projet. ») contient Nom de la clé, Alias de la clé (vide : généré depuis le tenant et le projet), Modèles (sous-ensemble des modèles du projet ; vide : tous les modèles du projet), Budget max, Période du budget, Requêtes par minute (RPM), Jetons par minute (TPM), Requêtes parallèles max et Expire après (jours) (vide : la clé n'expire pas). Avant l'envoi, le portail vérifie qu'aucune limite ne dépasse le projet et que chaque modèle est autorisé par le projet ; le Control Plane le vérifie à nouveau.
Actions
| Bouton ou action | Ce qu'il fait | Appel d'API | Rôles |
|---|---|---|---|
| Vérifier à nouveau | Sonde de nouveau l'API d'administration LiteLLM. | GET /v1/llm/management/status | tenant_admin, platform_admin |
| Sélecteur Projet | Affiche les clés du projet choisi. | GET /v1/llm/projects/{project_id}, GET /v1/llm/projects/{project_id}/keys | tenant_admin, platform_admin |
| Nouvelle clé (section ou état vide) | Génère la clé dans LiteLLM. La boîte Clé créée montre la clé en clair une seule fois avec un bouton de copie et l'avertissement « Cette clé n'est affichée qu'une fois » ; J'ai copié la clé la ferme et efface la valeur de la mémoire. Grisé quand le projet n'est pas actif. | POST /v1/llm/projects/{project_id}/keys | tenant_admin, platform_admin |
| Modifier les limites (menu de ligne) | Boîte Limites de <alias> : nom, modèles et limites (l'alias et l'expiration sont fixés à la création). Notification Limites enregistrées. | PATCH /v1/llm/projects/{project_id}/keys/{key_id} | tenant_admin, platform_admin |
| Bloquer (menu de ligne, clé active) | Bloque la clé immédiatement. Notification Clé bloquée. | POST /v1/llm/projects/{project_id}/keys/{key_id}/block | tenant_admin, platform_admin |
| Débloquer (menu de ligne, clé bloquée) | Autorise à nouveau la clé. Notification Clé débloquée. | POST /v1/llm/projects/{project_id}/keys/{key_id}/unblock | tenant_admin, platform_admin |
| Révoquer (menu de ligne) | Confirmation destructive avec le risque « Les applications qui utilisent cette clé perdent l'accès immédiatement ; une clé révoquée ne peut pas être restaurée. » ; saisissez le nom de la ressource, puis Confirmer. Notification Clé révoquée. | DELETE /v1/llm/projects/{project_id}/keys/{key_id} | tenant_admin, platform_admin |
Une clé révoquée n'a pas de menu de ligne : elle ne peut plus être modifiée.
Rôles
- Chaque route de l'écran exige
ADMINdeservices/control-plane/src/eai/domains/llm_management/__init__.py:tenant_adminouplatform_admin(MANAGERSdansportal/src/lib/llm-management.ts). Les autres rôles reçoiventforbidden. - Nouvelle clé et les menus de ligne ne sont affichés qu'à ces rôles.
- Un principal sans tenant reçoit
tenant_required.
Tâches courantes
Donner une clé à une application
- Choisir le projet. Sélectionnez-le dans Projet, car la clé hérite de ses modèles et de ses limites. Résultat attendu : la section Clés de
<projet>avec les limites du projet. En cas d'échec : « Le projet n'est pas actif : aucune clé ne peut être créée. » signifie que le projet estsuspendedouarchived; réactivez-le dans Projets LLM. - Remplir la clé. Cliquez sur Nouvelle clé, saisissez un Nom de la clé, réduisez Modèles si l'application en utilise moins, et réglez Expire après (jours), pour que la clé expire d'elle-même. Résultat attendu : aucun message rouge sous le formulaire. En cas d'échec : une ligne rouge indique quelle limite dépasse le projet ou quel modèle n'est pas autorisé ; baissez la valeur.
- Créer et copier. Cliquez sur Nouvelle clé, puis copiez la valeur affichée dans Clé créée vers votre coffre de secrets. Résultat attendu : la clé en clair et l'avertissement « Cette clé n'est affichée qu'une fois ». En cas d'échec : LiteLLM n'est pas configuré (503) signifie qu'aucune clé ne peut être générée ; configurez d'abord LiteLLM.
- Fermer. Cliquez sur J'ai copié la clé. Résultat attendu : la boîte se ferme et la table montre la nouvelle clé avec son Préfixe. En cas d'échec : si vous avez perdu la valeur, révoquez la clé et créez-en une nouvelle ; elle ne peut plus être affichée.
Arrêter une clé divulguée
- La bloquer. Menu de ligne > Bloquer, pour que tout appel avec cette clé soit refusé immédiatement pendant l'enquête. Résultat attendu : notification Clé bloquée, Statut
blocked. En cas d'échec : « Cette clé est révoquée : elle ne peut plus être modifiée. » - La révoquer. Quand la fuite est confirmée, menu de ligne > Révoquer, saisissez le nom de la ressource, puis Confirmer. Résultat attendu : notification Clé révoquée, Statut
revoked. En cas d'échec : le message de l'API s'affiche sous la confirmation. - La remplacer. Créez une nouvelle clé pour l'application (première tâche). Résultat attendu : l'application fonctionne avec la nouvelle clé. En cas d'échec : vérifiez ses modèles et ses limites.
Dépannage
| Symptôme | Cause | Correction |
|---|---|---|
Ligne rouge « <champ> (<valeur>) dépasse la limite du projet (<limite>). » ou 422 llm_key_limit_exceeds_project | Une limite de la clé dépasse celle du projet. | Baissez la valeur, ou relevez d'abord le quota du projet. |
« Le modèle <modèle> n'est pas autorisé par le projet. » (llm_key_model_not_allowed, 422) | Le modèle est hors des modèles ou catégories autorisés du projet. | Retirez le modèle, ou autorisez-le sur le projet. |
Nouvelle clé grisé, « Le projet n'est pas actif : aucune clé ne peut être créée. » (llm_project_inactive, 409) | Projet suspended ou archived. | Passez le statut du projet à active. |
« Cette clé est révoquée : elle ne peut plus être modifiée. » (llm_key_revoked, 409) | Une clé révoquée est définitive. | Créez une nouvelle clé. |
« Clé LiteLLM introuvable. » (llm_key_not_found, 404) | La clé a été supprimée entre-temps. | Actualisez la page. |
LiteLLM n'est pas configuré (litellm_not_configured, 503) sur Nouvelle clé | Pas d'adresse d'administration LiteLLM ni de clé maître. | Renseignez EAI_LITELLM_ADMIN_URL et EAI_LITELLM_MASTER_KEY_REF, puis Vérifier à nouveau. |
« Dépense non rafraîchie depuis LiteLLM (<code>) » | LiteLLM n'a pas répondu à la demande de dépense. | La dernière dépense connue est affichée ; vérifiez le proxy. |
Panneau d'erreur forbidden (403) | Rôle autre que tenant_admin ou platform_admin. | Demandez à un administrateur du tenant. |