Aller au contenu principal

enterprise_ai.quotas

Source : sdks/python/src/enterprise_ai/quotas/__init__.py. Retour à l'index de la référence du SDK Python.

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.

Modèle Reservation​

Une réservation ouverte. commit ou release une seule fois.

Champs :

NomTypeRequisDescription
clientQuotasClientouiFinOps. Gestion des coûts de l'usage de l'IA : grilles tarifaires, événements d'usage, estimations, quotas et réservations, répartition du coût des GPU, rapprochement de la facturation et alertes.
idstrouiIdentifiant de la réservation renvoyé par le serveur.
datadict[str, Any]nonRéponse de l'appel de réservation telle que renvoyée par le serveur.
statestrnonreserved, puis committed après une sortie normale ou released après une exception.
actualAnynon{cost, tokens} mesurés fixés par commit, envoyés à la fin du bloc ; None s'ils ne sont pas fixés.

Reservation.commit​

commit(cost: Any = None, tokens: int | None = None) -> Any

Note le coût et les jetons mesurés ; envoyés à la sortie du bloc.

NomTypeDéfautRequisDescription
costAnyNonenonCoût mesuré, en chaîne décimale ou en nombre, facultatif.
tokensint | NoneNonenonNombre de jetons mesuré, facultatif.

Retour : Any. Les {cost, tokens} enregistrés, ou None si aucun n'est fourni.

Classe QuotasClient​

FinOps. Gestion des coûts de l'usage de l'IA : grilles tarifaires, événements d'usage, estimations, quotas et réservations, répartition du coût des GPU, rapprochement de la facturation et alertes.

Resource

QuotasClient.areservation​

async areservation(cost: Any = '0', tokens: int = 0, **kwargs: Any) -> AsyncIterator[Reservation]

Variante asynchrone de :meth:reservation.

NomTypeDéfautRequisDescription
costAny'0'nonCoût à réserver, en chaîne décimale ou en nombre ("0" par défaut).
tokensint0nonNombre de jetons à réserver (0 par défaut).
**kwargsAnynonOptions de reserve : scope, ttl_seconds, idempotency_key.

Retour : AsyncIterator[Reservation]. Une Reservation : une réservation ouverte. commit ou release une seule fois.

QuotasClient.commit​

commit(reservation_id: str, cost: number | string = None, tokens: int | None = None) -> Any

Valider une réservation. Remplace le montant réservé par le montant mesuré sur chaque fenêtre de quota de la réservation et vérifie les seuils d'alerte. Une réservation close répond 409 reservation_closed ; une réservation inconnue 404 reservation_not_found. Audité. Demande finops, tenant_admin, agent ou developer, et un principal de tenant.

Route : /v1/quotas/{reservation_id}/commit (POST).

NomTypeDéfautRequisDescription
reservation_idstrouiIdentifiant (UUID) de la réservation renvoyé par POST /v1/quotas/reserve.
costnumber | stringNonenonCoût mesuré dans la devise de la réservation, au moins 0, 0 par défaut.
tokensint | NoneNonenonJetons mesurés, au moins 0, 0 par défaut.

Retour : Any. Réponse JSON décodée de l'opération « Valider une réservation ».

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

QuotasClient.create​

create(name: str, scope_type: str, scope_value: str | None = None, limit_cost: number | string | null = None, limit_tokens: int | None = None, period: str = 'month', **extra: Any) -> Any

Créer un quota. Crée un quota du tenant et répond 201. Une limite de coût ou de jetons est obligatoire, et scope_value est obligatoire sauf si scope_type vaut tenant (422 validation_error). Sans devise, celle du tenant s'applique. Audité. Demande finops ou tenant_admin, et un principal de tenant.

Route : /v1/quotas (POST).

NomTypeDéfautRequisDescription
namestrouiNom du quota, de 1 à 200 caractères.
scope_typestrouiCe que le quota limite : tenant (par défaut), project, agent, user, model ou provider.
scope_valuestr | NoneNonenonIdentifiant du projet, de l'agent, de l'utilisateur, du modèle ou du fournisseur ; obligatoire sauf si scope_type vaut tenant, où il doit être null.
limit_costnumber | string | nullNonenonLimite de coût par fenêtre, au moins 0, dans currency.
limit_tokensint | NoneNonenonLimite de jetons par fenêtre, au moins 0.
periodstr'month'nonFenêtre de la limite : request (chaque appel), run, hour, day ou month (par défaut), en UTC.
**extraAnynonChamps supplémentaires fusionnés dans le corps de la requête.

Retour : Any. Réponse JSON décodée de l'opération « Créer un quota ».

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

QuotasClient.delete​

delete(quota_id: str) -> Any

Supprimer un quota. Supprime un quota du tenant et répond 204. Identifiant inconnu : 404 quota_not_found. Audité (finops.quota.delete). Demande finops ou tenant_admin.

Route : /v1/quotas/{quota_id} (DELETE).

NomTypeDéfautRequisDescription
quota_idstrouiIdentifiant (UUID) du quota.

Retour : Any. Réponse JSON décodée de l'opération « Supprimer un quota ».

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

QuotasClient.list​

list(**page: Any) -> Any

Lister les quotas. Quotas du tenant par nom, y compris ceux reproduits depuis les projets LLM (llm-project:...). Une seule page. Demande un rôle de lecteur et un principal de tenant.

Route : /v1/quotas (GET).

NomTypeDéfautRequisDescription
**pageAnynonOptions de pagination transmises à la liste : limit (nombre maximal d'éléments par page) et cursor (le next_cursor de la page précédente). Itérer sur la page renvoyée suit tous les curseurs.

Retour : Any. Réponse JSON décodée de l'opération « Lister les quotas ».

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

QuotasClient.release​

release(reservation_id: str) -> Any

Libérer une réservation. Rend le montant réservé à chaque fenêtre de quota de la réservation sans rien consommer (l'appel a échoué ou n'a pas eu lieu). Une réservation close répond 409 reservation_closed ; une réservation inconnue 404 reservation_not_found. Audité. Demande finops, tenant_admin, agent ou developer, et un principal de tenant.

Route : /v1/quotas/{reservation_id}/release (POST).

NomTypeDéfautRequisDescription
reservation_idstrouiIdentifiant (UUID) de la réservation.

Retour : Any. Réponse JSON décodée de l'opération « Libérer une réservation ».

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

QuotasClient.replace​

replace(quota_id: str, quota: dict[str, Any]) -> Any

Remplacer un quota. Remplace tous les champs d'un quota (mêmes règles qu'à la création ; sans devise, la devise actuelle est conservée). Identifiant inconnu : 404 quota_not_found. Audité. Demande finops ou tenant_admin, et un principal de tenant.

Route : /v1/quotas/{quota_id} (PUT).

NomTypeDéfautRequisDescription
quota_idstrouiIdentifiant (UUID) du quota.
quotadict[str, Any]ouiQuota initial du projet ; les valeurs par défaut du quota s'appliquent s'il est omis.

Retour : Any. Réponse JSON décodée de l'opération « Remplacer un quota ».

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

QuotasClient.reservation​

reservation(cost: Any = '0', tokens: int = 0, **kwargs: Any) -> Iterator[Reservation]

Réserve, puis valide en cas de succès ou libère en cas d'erreur (client synchrone).

NomTypeDéfautRequisDescription
costAny'0'nonCoût à réserver, en chaîne décimale ou en nombre ("0" par défaut).
tokensint0nonNombre de jetons à réserver (0 par défaut).
**kwargsAnynonOptions de reserve : scope, ttl_seconds, idempotency_key.

Retour : Iterator[Reservation]. Une Reservation : une réservation ouverte. commit ou release une seule fois.

QuotasClient.reserve​

reserve(cost: number | string = '0', tokens: int = 0, scope: dict[str, Any] | None = None, ttl_seconds: int | None = None, idempotency_key: str | None = None) -> Any

Réserver un coût et des jetons. Réserve un montant sur chaque quota actif correspondant à la portée (les quotas du tenant correspondent toujours ; un principal utilisateur ajoute sa propre portée utilisateur) et répond 201 avec la réservation, ses éléments par quota et fenêtre, les quotas souples dépassés et son échéance. Un quota strict qui serait dépassé répond 429 quota_exceeded avec Retry-After: 60, et rien n'est réservé. Les réservations expirées sont d'abord libérées. Audité. Demande finops, tenant_admin, agent ou developer, et un principal de tenant.

Route : /v1/quotas/reserve (POST).

NomTypeDéfautRequisDescription
costnumber | string'0'nonCoût à réserver dans la devise du tenant, de 0 à 10^15, 0 par défaut ; converti dans la devise de chaque quota.
tokensint0nonJetons à réserver, de 0 à 2^62, 0 par défaut.
scopedict[str, Any] | NoneNonenonPour qui est l'appel : clés project, agent, user, model, provider, run (ou les mêmes avec _id), comparées aux portées des quotas.
ttl_secondsint | NoneNonenonDurée de vie de la réservation en secondes, de 1 à 86400 ; par défaut le reservation_ttl_seconds du tenant (900). Une réservation expirée est libérée.
idempotency_keystr | NoneNonenonEn-tête Idempotency-Key : une reprise avec la même clé rejoue la première réponse.

Retour : Any. Réponse JSON décodée de l'opération « Réserver un coût et des jetons ».

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

QuotasClient.usage​

usage(**filters: Any) -> Any

Lire la consommation des quotas. Chaque quota du tenant avec sa fenêtre courante et le coût et les jetons consommés et réservés dans celle-ci. Les quotas par exécution demandent run pour trouver leur fenêtre. Demande un rôle de lecteur et un principal de tenant.

Route : /v1/quotas/usage (GET).

NomTypeDéfautRequisDescription
**filtersAnynonParamètres de requête comme agent, project ou run.

Retour : Any. Réponse JSON décodée de l'opération « Lire la consommation des quotas ».

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