Aller au contenu principal

resources/llm-management.ts

Source : sdks/typescript/packages/sdk/src/resources/llm-management.ts. Retour à l'index de la référence du SDK TypeScript.

remarque

Cette page est générée par tools/docs/gen_sdk_reference.py depuis les sources du SDK et les dossiers de textes OpenAPI. Ne la modifiez pas à la main : changez la source et régénérez.

Alias de type LlmBudgetPeriod​

Période de budget d'un quota de projet LLM ou d'une clé LiteLLM.

Définition : "daily" \| "weekly" \| "monthly" \| "total".

Interface LlmProjectQuota​

Quota d'un projet LLM (reporté dans son équipe LiteLLM, limites quotidienne et mensuelle appliquées aussi par la passerelle).

Champs :

NomTypeRequisDescription
budget_amountstring | nullnonBudget par budget_period, décimal, au moins 0, dans budget_currency.
budget_currencystringnonDevise ISO 4217 du budget, trois lettres majuscules, USD par défaut.
budget_periodLlmBudgetPeriodnonPériode de budget d'un quota de projet LLM ou d'une clé LiteLLM.
token_limitnumber | nullnonNombre maximal de jetons par token_period, au moins 0. Appliqué par la passerelle du Control Plane au moyen d'un quota FinOps quand le projet est lié et que la période est daily ou monthly.
token_periodLlmBudgetPeriodnonPériode de la limite de jetons : daily, weekly, monthly (par défaut) ou total.
rpm_limitnumber | nullnonRequêtes par minute autorisées pour le projet.
tpm_limitnumber | nullnonJetons par minute autorisés pour le projet.
max_parallel_requestsnumber | nullnonNombre maximal de requêtes simultanées du projet.
alert_threshold_pctnumbernonSeuil d'alerte en part du budget, en pour cent (de 1 à 100, 80 par défaut) : transmis dans les métadonnées de l'équipe LiteLLM et utilisé comme budget souple de chaque nouvelle clé (cette part de son max_budget).
hard_stopbooleannonSi vrai (par défaut), les appels sont refusés une fois le budget dépensé (budget maximal LiteLLM, quotas FinOps stricts). Si faux, le budget ne fait qu'alerter.

Interface LlmKeyCreate​

Limites d'une clé LiteLLM : jamais plus larges que celles du projet (422 llm_key_limit_exceeds_project).

Champs :

NomTypeRequisDescription
namestringnonNom d'affichage de la clé.
key_aliasstringnonAlias unique de la clé dans LiteLLM, de 1 à 120 caractères, lettres, chiffres, points, tirets et soulignés, commençant par une lettre ou un chiffre. Généré à partir des noms du tenant et du projet s'il est omis.
modelsstring[]nonModèles que la clé peut appeler.
max_budgetstring | nullnonLimite de budget de la clé, sous forme de chaîne décimale ; null pour aucune limite propre.
budget_periodLlmBudgetPeriodnonPériode de budget d'un quota de projet LLM ou d'une clé LiteLLM.
rpm_limitnumber | nullnonRequêtes par minute autorisées pour la clé.
tpm_limitnumber | nullnonJetons par minute autorisés pour la clé.
max_parallel_requestsnumber | nullnonNombre maximal de requêtes simultanées de la clé.
duration_daysnumber | nullnonDurée de vie de la clé en jours, de 1 à 3650 ; la clé expire ensuite. Omettez-la pour une clé sans échéance.

Classe LlmManagementResource​

Gestion des LLM. Projets LLM d'un tenant, leur quota et les clés virtuelles LiteLLM que les applications utilisent pour appeler les modèles.

Resource

LlmManagementResource.blockKey​

blockKey(projectId: string, keyId: string, opts?: CallOptions)

Bloquer une clé de projet. Bloque la clé dans LiteLLM : les appels qui l'utilisent sont refusés jusqu'à son déblocage. Le statut devient blocked. Une clé révoquée répond 409 llm_key_revoked. Audité (llm_key.block). Demande tenant_admin ou platform_admin.

Route : /v1/llm/projects/{project_id}/keys/{key_id}/block (POST).

NomTypeDéfautRequisDescription
projectIdstringouiIdentifiant (UUID) du projet LLM.
keyIdstringouiIdentifiant (UUID) de la clé dans la plateforme.
optsCallOptionsnonOptions de l'appel (requête, clé d'idempotence, traceparent, en-têtes).

Erreurs levées : les erreurs typées du transport (Erreurs).

LlmManagementResource.createKey​

createKey(projectId: string, body: LlmKeyCreate = {}, opts?: CallOptions)

Générer une clé de projet. Génère une clé LiteLLM pour le projet et répond 201 avec l'enregistrement de la clé plus key (la clé en clair) et key_shown_once: true, avec Cache-Control: no-store. La clé en clair ne figure que dans cette réponse : elle n'est jamais enregistrée ni auditée. Demande tenant_admin ou platform_admin.

Route : /v1/llm/projects/{project_id}/keys (POST).

NomTypeDéfautRequisDescription
projectIdstringouiIdentifiant (UUID) du projet LLM.
bodyLlmKeyCreate{}nonNom, alias, modèles et limites de la nouvelle clé. Les champs inconnus sont refusés.
optsCallOptionsnonOptions de l'appel (requête, clé d'idempotence, traceparent, en-têtes).

Erreurs levées : les erreurs typées du transport (Erreurs).

LlmManagementResource.createProject​

createProject(body: Doc, opts?: CallOptions)

Créer un projet LLM. Crée un projet LLM dans le tenant de l'appelant et répond 201 avec le projet. Demande tenant_admin ou platform_admin.

Route : /v1/llm/projects (POST).

NomTypeDéfautRequisDescription
bodyDocouiLe nouveau projet LLM. Les champs inconnus sont refusés.
optsCallOptionsnonOptions de l'appel (requête, clé d'idempotence, traceparent, en-têtes).

Erreurs levées : les erreurs typées du transport (Erreurs).

LlmManagementResource.deleteProject​

deleteProject(projectId: string, opts?: CallOptions)

Supprimer un projet LLM. Supprime le projet, son équipe LiteLLM et ses quotas FinOps, et répond 204. Refusé avec 409 llm_project_has_keys tant que le projet a des clés non révoquées. Une erreur de LiteLLM pendant la suppression de l'équipe arrête la suppression. Audité (llm_project.delete). Demande tenant_admin ou platform_admin ; identifiant inconnu : 404 llm_project_not_found.

Route : /v1/llm/projects/{project_id} (DELETE).

NomTypeDéfautRequisDescription
projectIdstringouiIdentifiant (UUID) du projet LLM.
optsCallOptionsnonOptions de l'appel (requête, clé d'idempotence, traceparent, en-têtes).

Erreurs levées : les erreurs typées du transport (Erreurs).

LlmManagementResource.getProject​

getProject(projectId: string, opts?: CallOptions)

Lire un projet LLM. Un projet LLM avec ses modèles effectifs, son quota, son équipe LiteLLM, son état et son erreur de synchronisation, ses quotas FinOps et son nombre de clés. Demande tenant_admin ou platform_admin ; identifiant inconnu : 404 llm_project_not_found.

Route : /v1/llm/projects/{project_id} (GET).

NomTypeDéfautRequisDescription
projectIdstringouiIdentifiant (UUID) du projet LLM.
optsCallOptionsnonOptions de l'appel (requête, clé d'idempotence, traceparent, en-têtes).

Erreurs levées : les erreurs typées du transport (Erreurs).

LlmManagementResource.listKeys​

listKeys(projectId: string, query: { refresh?: boolean } = {}, opts?: CallOptions)

Lister les clés d'un projet. Clés d'un projet, de la plus récente à la plus ancienne, avec leur alias, leur préfixe d'affichage, leurs modèles, leurs limites, leur statut, leur dépense et leur échéance ; jamais la clé en clair. Avec refresh, la dépense de 50 clés non révoquées au plus est relue dans LiteLLM et enregistrée ; usage_source vaut alors litellm, ou stored avec litellm_error si LiteLLM n'a pas répondu. Demande tenant_admin ou platform_admin.

Route : /v1/llm/projects/{project_id}/keys (GET).

NomTypeDéfautRequisDescription
projectIdstringouiIdentifiant (UUID) du projet LLM.
query{ refresh?: boolean }{}nonParamètres de la chaîne de requête de la route.
optsCallOptionsnonOptions de l'appel (requête, clé d'idempotence, traceparent, en-têtes).

Erreurs levées : les erreurs typées du transport (Erreurs).

LlmManagementResource.listProjects​

listProjects(query: { status?: "active" | "suspended" | "archived" } = {}, opts?: CallOptions)

Lister les projets LLM. Projets LLM du tenant par nom, chacun avec ses modèles effectifs (identifiants explicites plus les modèles du registre de ses catégories), son quota, son équipe LiteLLM et son état de synchronisation, ses quotas FinOps et son nombre de clés non révoquées. Une seule page (next_cursor vaut toujours null). Demande tenant_admin ou platform_admin.

Route : /v1/llm/projects (GET).

NomTypeDéfautRequisDescription
query{ status?: "active" | "suspended" | "archived" }{}nonParamètres de la chaîne de requête de la route.
optsCallOptionsnonOptions de l'appel (requête, clé d'idempotence, traceparent, en-têtes).

Erreurs levées : les erreurs typées du transport (Erreurs).

LlmManagementResource.revokeKey​

revokeKey(projectId: string, keyId: string, opts?: CallOptions)

Révoquer une clé de projet. Révoque une clé : elle est supprimée dans LiteLLM et conservée ici au statut revoked avec sa date de révocation, pour l'historique. Une clé révoquée ne peut plus être modifiée (409 llm_key_revoked). Audité (llm_key.revoke). Demande tenant_admin ou platform_admin ; clé inconnue : 404 llm_key_not_found.

Route : /v1/llm/projects/{project_id}/keys/{key_id} (DELETE).

NomTypeDéfautRequisDescription
projectIdstringouiIdentifiant (UUID) du projet LLM.
keyIdstringouiIdentifiant (UUID) de la clé dans la plateforme (pas le jeton LiteLLM).
optsCallOptionsnonOptions de l'appel (requête, clé d'idempotence, traceparent, en-têtes).

Erreurs levées : les erreurs typées du transport (Erreurs).

LlmManagementResource.setQuota​

setQuota(projectId: string, body: LlmProjectQuota, opts?: CallOptions)

Définir le quota d'un projet. Remplace tout le quota du projet (les champs omis prennent leur valeur par défaut), reconstruit ses quotas FinOps et l'envoie dans LiteLLM. Avec hard_stop à faux, LiteLLM ne reçoit aucun budget maximal (alerte seulement) et les quotas FinOps sont souples. Un quota invalide répond 422 invalid_quota. Audité (llm_project.quota). Demande tenant_admin ou platform_admin.

Route : /v1/llm/projects/{project_id}/quota (PUT).

NomTypeDéfautRequisDescription
projectIdstringouiIdentifiant (UUID) du projet LLM.
bodyLlmProjectQuotaouiLe nouveau quota complet du projet.
optsCallOptionsnonOptions de l'appel (requête, clé d'idempotence, traceparent, en-têtes).

Erreurs levées : les erreurs typées du transport (Erreurs).

LlmManagementResource.status​

status(opts?: CallOptions)

Vérifier la connexion d'administration LiteLLM. Configuration d'administration LiteLLM sans aucune valeur secrète : configurée ou non, adresse d'administration, présence de la clé maîtresse et origine de sa lecture (paramètre, référence d'environnement ou référence OpenBao), paramètres encore manquants, et sonde de vie (reachable) quand elle est configurée. error_code vaut litellm_not_configured, litellm_unreachable ou null. Demande tenant_admin ou platform_admin.

Route : /v1/llm/management/status (GET).

NomTypeDéfautRequisDescription
optsCallOptionsnonOptions de l'appel (requête, clé d'idempotence, traceparent, en-têtes).

Erreurs levées : les erreurs typées du transport (Erreurs).

LlmManagementResource.syncProject​

syncProject(projectId: string, opts?: CallOptions)

Renvoyer un projet dans LiteLLM. Renvoie le projet dans LiteLLM (équipe créée ou mise à jour) et répond le projet avec son nouveau sync_status. Contrairement aux autres modifications, un échec est renvoyé : 503 litellm_not_configured, 502 litellm_unreachable ou 502 litellm_rejected. Audité (llm_project.sync). Demande tenant_admin ou platform_admin.

Route : /v1/llm/projects/{project_id}/sync (POST).

NomTypeDéfautRequisDescription
projectIdstringouiIdentifiant (UUID) du projet LLM.
optsCallOptionsnonOptions de l'appel (requête, clé d'idempotence, traceparent, en-têtes).

Erreurs levées : les erreurs typées du transport (Erreurs).

LlmManagementResource.unblockKey​

unblockKey(projectId: string, keyId: string, opts?: CallOptions)

Débloquer une clé de projet. Débloque la clé dans LiteLLM ; le statut redevient active. Une clé révoquée répond 409 llm_key_revoked. Audité (llm_key.unblock). Demande tenant_admin ou platform_admin.

Route : /v1/llm/projects/{project_id}/keys/{key_id}/unblock (POST).

NomTypeDéfautRequisDescription
projectIdstringouiIdentifiant (UUID) du projet LLM.
keyIdstringouiIdentifiant (UUID) de la clé dans la plateforme.
optsCallOptionsnonOptions de l'appel (requête, clé d'idempotence, traceparent, en-têtes).

Erreurs levées : les erreurs typées du transport (Erreurs).

LlmManagementResource.updateKey​

updateKey(projectId: string, keyId: string, body: Omit<LlmKeyCreate, "key_alias" | "duration_days">, opts?: CallOptions)

Modifier une clé de projet. Modifie le nom, les modèles et les limites d'une clé, d'abord dans LiteLLM puis ici. Les limites fusionnées sont contrôlées par rapport au projet : une limite plus large répond 422 llm_key_limit_exceeds_project, un modèle que le projet n'autorise pas 422 llm_key_model_not_allowed. Une clé révoquée répond 409 llm_key_revoked. Audité (llm_key.update). Demande tenant_admin ou platform_admin.

Route : /v1/llm/projects/{project_id}/keys/{key_id} (PATCH).

NomTypeDéfautRequisDescription
projectIdstringouiIdentifiant (UUID) du projet LLM.
keyIdstringouiIdentifiant (UUID) de la clé dans la plateforme.
bodyOmit<LlmKeyCreate, "key_alias" | "duration_days">ouiChamps à modifier ; les champs omis gardent leur valeur, une limite envoyée à null est supprimée.
optsCallOptionsnonOptions de l'appel (requête, clé d'idempotence, traceparent, en-têtes).

Erreurs levées : les erreurs typées du transport (Erreurs).

LlmManagementResource.updateProject​

updateProject(projectId: string, body: Doc, opts?: CallOptions)

Modifier un projet LLM. Modifie les champs fournis du projet, reconstruit ses quotas FinOps (supprimés quand le projet n'est plus actif ou plus lié) et le renvoie dans LiteLLM ; un échec de LiteLLM ne fait pas échouer la requête mais apparaît dans sync_status et sync_error. Un autre projet portant le nouveau nom répond 409 llm_project_exists ; un projet de tenant inconnu 404 tenant_project_not_found. Audité (llm_project.update). Demande tenant_admin ou platform_admin.

Route : /v1/llm/projects/{project_id} (PATCH).

NomTypeDéfautRequisDescription
projectIdstringouiIdentifiant (UUID) du projet LLM.
bodyDocouiChamps à modifier ; les champs omis gardent leur valeur. Le quota se modifie avec PUT .../quota.
optsCallOptionsnonOptions de l'appel (requête, clé d'idempotence, traceparent, en-têtes).

Erreurs levées : les erreurs typées du transport (Erreurs).