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.
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 :
| Nom | Type | Requis | Description |
|---|---|---|---|
budget_amount | string | null | non | Budget par budget_period, décimal, au moins 0, dans budget_currency. |
budget_currency | string | non | Devise ISO 4217 du budget, trois lettres majuscules, USD par défaut. |
budget_period | LlmBudgetPeriod | non | Période de budget d'un quota de projet LLM ou d'une clé LiteLLM. |
token_limit | number | null | non | Nombre 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_period | LlmBudgetPeriod | non | Période de la limite de jetons : daily, weekly, monthly (par défaut) ou total. |
rpm_limit | number | null | non | Requêtes par minute autorisées pour le projet. |
tpm_limit | number | null | non | Jetons par minute autorisés pour le projet. |
max_parallel_requests | number | null | non | Nombre maximal de requêtes simultanées du projet. |
alert_threshold_pct | number | non | Seuil 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_stop | boolean | non | Si 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 :
| Nom | Type | Requis | Description |
|---|---|---|---|
name | string | non | Nom d'affichage de la clé. |
key_alias | string | non | Alias 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. |
models | string[] | non | Modèles que la clé peut appeler. |
max_budget | string | null | non | Limite de budget de la clé, sous forme de chaîne décimale ; null pour aucune limite propre. |
budget_period | LlmBudgetPeriod | non | Période de budget d'un quota de projet LLM ou d'une clé LiteLLM. |
rpm_limit | number | null | non | Requêtes par minute autorisées pour la clé. |
tpm_limit | number | null | non | Jetons par minute autorisés pour la clé. |
max_parallel_requests | number | null | non | Nombre maximal de requêtes simultanées de la clé. |
duration_days | number | null | non | Duré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).
| Nom | Type | Défaut | Requis | Description |
|---|---|---|---|---|
projectId | string | oui | Identifiant (UUID) du projet LLM. | |
keyId | string | oui | Identifiant (UUID) de la clé dans la plateforme. | |
opts | CallOptions | non | Options 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).
| Nom | Type | Défaut | Requis | Description |
|---|---|---|---|---|
projectId | string | oui | Identifiant (UUID) du projet LLM. | |
body | LlmKeyCreate | {} | non | Nom, alias, modèles et limites de la nouvelle clé. Les champs inconnus sont refusés. |
opts | CallOptions | non | Options 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).
| Nom | Type | Défaut | Requis | Description |
|---|---|---|---|---|
body | Doc | oui | Le nouveau projet LLM. Les champs inconnus sont refusés. | |
opts | CallOptions | non | Options 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).
| Nom | Type | Défaut | Requis | Description |
|---|---|---|---|---|
projectId | string | oui | Identifiant (UUID) du projet LLM. | |
opts | CallOptions | non | Options 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).
| Nom | Type | Défaut | Requis | Description |
|---|---|---|---|---|
projectId | string | oui | Identifiant (UUID) du projet LLM. | |
opts | CallOptions | non | Options 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).
| Nom | Type | Défaut | Requis | Description |
|---|---|---|---|---|
projectId | string | oui | Identifiant (UUID) du projet LLM. | |
query | { refresh?: boolean } | {} | non | Paramètres de la chaîne de requête de la route. |
opts | CallOptions | non | Options 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).
| Nom | Type | Défaut | Requis | Description |
|---|---|---|---|---|
query | { status?: "active" | "suspended" | "archived" } | {} | non | Paramètres de la chaîne de requête de la route. |
opts | CallOptions | non | Options 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).
| Nom | Type | Défaut | Requis | Description |
|---|---|---|---|---|
projectId | string | oui | Identifiant (UUID) du projet LLM. | |
keyId | string | oui | Identifiant (UUID) de la clé dans la plateforme (pas le jeton LiteLLM). | |
opts | CallOptions | non | Options 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).
| Nom | Type | Défaut | Requis | Description |
|---|---|---|---|---|
projectId | string | oui | Identifiant (UUID) du projet LLM. | |
body | LlmProjectQuota | oui | Le nouveau quota complet du projet. | |
opts | CallOptions | non | Options 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).
| Nom | Type | Défaut | Requis | Description |
|---|---|---|---|---|
opts | CallOptions | non | Options 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).
| Nom | Type | Défaut | Requis | Description |
|---|---|---|---|---|
projectId | string | oui | Identifiant (UUID) du projet LLM. | |
opts | CallOptions | non | Options 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).
| Nom | Type | Défaut | Requis | Description |
|---|---|---|---|---|
projectId | string | oui | Identifiant (UUID) du projet LLM. | |
keyId | string | oui | Identifiant (UUID) de la clé dans la plateforme. | |
opts | CallOptions | non | Options 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).
| Nom | Type | Défaut | Requis | Description |
|---|---|---|---|---|
projectId | string | oui | Identifiant (UUID) du projet LLM. | |
keyId | string | oui | Identifiant (UUID) de la clé dans la plateforme. | |
body | Omit<LlmKeyCreate, "key_alias" | "duration_days"> | oui | Champs à modifier ; les champs omis gardent leur valeur, une limite envoyée à null est supprimée. | |
opts | CallOptions | non | Options 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).
| Nom | Type | Défaut | Requis | Description |
|---|---|---|---|---|
projectId | string | oui | Identifiant (UUID) du projet LLM. | |
body | Doc | oui | Champs à modifier ; les champs omis gardent leur valeur. Le quota se modifie avec PUT .../quota. | |
opts | CallOptions | non | Options de l'appel (requête, clé d'idempotence, traceparent, en-têtes). |
Erreurs levées : les erreurs typées du transport (Erreurs).