Contrôles des coûts pour Cortex Code

Les administrateurs de compte peuvent définir des limites quotidiennes d’utilisation du crédit estimée pour Cortex Code en fonction de l’utilisateur. Ces limites aident les organisations à contrôler la consommation de Cortex Code en bloquant l’accès lorsque l’utilisation du crédit estimée d’un utilisateur dans une fenêtre continue de 24 heures dépasse le seuil configuré.

Il existe des paramètres distincts pour chaque surface de Cortex Code :

Paramètre

Contrôles

CORTEX_CODE_CLI_DAILY_EST_CREDIT_LIMIT_PER_USER

Utilisation de la CLI Code Cortex

CORTEX_CODE_SNOWSIGHT_DAILY_EST_CREDIT_LIMIT_PER_USER

Utilisation de Cortex Code dans Snowsight

Comment fonctionnent les limites de crédit

Chaque paramètre suit l’utilisation du crédit estimée de l’utilisateur correspondant sur une fenêtre continue de 24 heures. Lorsque l’utilisation estimée d’un utilisateur atteint la limite configurée pour une surface donnée, l’accès est bloqué pour cette surface jusqu’à ce que l’utilisation tombe en dessous du seuil.

Les deux paramètres partagent le même comportement :

Valeur

Comportement

-1 (par défaut)

Aucune limite. L’utilisateur dispose d’un accès illimité.

0

L’accès est entièrement bloqué pour l’utilisateur.

Nombre positif

L’accès est bloqué lorsque l’utilisation du crédit estimée de l’utilisateur au cours des 24 dernières heures dépasse cette valeur.

Chaque paramètre peut être défini au niveau du compte (s’applique à tous les utilisateurs) ou au niveau de l’utilisateur (s’applique à un utilisateur spécifique). Un paramètre au niveau de l’utilisateur remplace le paramètre au niveau du compte pour cet utilisateur.

Note

Uniquement les utilisateurs avec le rôle ACCOUNTADMIN (ou un rôle doté de privilèges suffisants pour modifier le compte ou l’objet utilisateur) peut définir ces paramètres.

Limites de la CLI Code Cortex

Le paramètre CORTEX_CODE_CLI_DAILY_EST_CREDIT_LIMIT_PER_USER contrôle la limite de crédit journalière pour l’utilisation de la CLI Cortex Code.

Nom du compte

Pour définir une limite de crédit quotidienne pour tous les utilisateurs du compte :

-- Set the daily credit usage limit to 20 credits for all users in the account
ALTER ACCOUNT SET CORTEX_CODE_CLI_DAILY_EST_CREDIT_LIMIT_PER_USER = 20;

Pour supprimer la limite au niveau du compte et restaurer la valeur par défaut (illimitée) :

-- Remove the account-level limit (restores default unlimited usage)
ALTER ACCOUNT UNSET CORTEX_CODE_CLI_DAILY_EST_CREDIT_LIMIT_PER_USER;

Niveau utilisateur

Pour définir une limite de crédit quotidienne pour un utilisateur spécifique, en remplaçant le paramètre au niveau du compte :

-- Set a per-user CLI limit that overrides the account-level setting
ALTER USER jsmith SET CORTEX_CODE_CLI_DAILY_EST_CREDIT_LIMIT_PER_USER = 10;

Pour supprimer la limite au niveau utilisateur, le paramètre au niveau du compte s’applique à la place :

-- Remove the user-level override (account-level setting applies instead)
ALTER USER jsmith UNSET CORTEX_CODE_CLI_DAILY_EST_CREDIT_LIMIT_PER_USER;

Limites de Cortex Code dans Snowsight

Le paramètre CORTEX_CODE_SNOWSIGHT_DAILY_EST_CREDIT_LIMIT_PER_USER contrôle la limite de crédit quotidienne pour l’utilisation de Cortex Code dans l’interface Web de Snowsight.

Nom du compte

Pour définir une limite de crédit quotidienne pour tous les utilisateurs du compte :

-- Set the daily Snowsight credit usage limit to 20 credits for all users in the account
ALTER ACCOUNT SET CORTEX_CODE_SNOWSIGHT_DAILY_EST_CREDIT_LIMIT_PER_USER = 20;

Pour supprimer la limite au niveau du compte et restaurer la valeur par défaut (illimitée) :

-- Remove the account-level Snowsight limit (restores default unlimited usage)
ALTER ACCOUNT UNSET CORTEX_CODE_SNOWSIGHT_DAILY_EST_CREDIT_LIMIT_PER_USER;

Niveau utilisateur

Pour définir une limite de crédit quotidienne pour un utilisateur spécifique, en remplaçant le paramètre au niveau du compte :

-- Set a per-user Snowsight limit that overrides the account-level setting
ALTER USER jsmith SET CORTEX_CODE_SNOWSIGHT_DAILY_EST_CREDIT_LIMIT_PER_USER = 10;

Pour supprimer la limite au niveau utilisateur, le paramètre au niveau du compte s’applique à la place :

-- Remove the user-level Snowsight override (account-level setting applies instead)
ALTER USER jsmith UNSET CORTEX_CODE_SNOWSIGHT_DAILY_EST_CREDIT_LIMIT_PER_USER;

Lorsqu’une limite est atteinte

Lorsque l’utilisation du crédit estimée d’un utilisateur dépasse la limite configurée pour une surface, cette surface renvoie une erreur indiquant que la limite de crédit quotidienne a été atteinte. L’utilisateur ne peut pas utiliser cette surface tant qu’un délai suffisant ne s’est pas écoulé pour que l’utilisation cumulée de 24 heures glissantes tombe en dessous de la limite. Les autres zones avec des limites distinctes ne sont pas concernées.

Les administrateurs peuvent ajuster ou supprimer la limite à tout moment pour restaurer l’accès.

Affichage des utilisateurs avec des limites personnalisées

Le script SQL suivant liste tous les utilisateurs qui ont un remplacement de la limite de crédit par utilisateur pour le paramètre CLI. Ceci est utile pour les administrateurs qui souhaitent auditer quels utilisateurs ont des limites personnalisées définies au niveau de l’utilisateur.

-- List all users who have a per-user CLI credit limit override
EXECUTE IMMEDIATE $$
DECLARE
  current_user STRING;
  rs_users RESULTSET;
  res      RESULTSET;
BEGIN
  CREATE OR REPLACE TEMPORARY TABLE _param_overrides (user_name STRING, param_value STRING);

  SHOW USERS;
  rs_users := (SELECT "name" FROM TABLE(RESULT_SCAN(LAST_QUERY_ID())));

  FOR record IN rs_users DO
    current_user := record."name";

    EXECUTE IMMEDIATE
      'SHOW PARAMETERS LIKE ''CORTEX_CODE_CLI_DAILY_EST_CREDIT_LIMIT_PER_USER'' IN USER "' || :current_user || '"';

    INSERT INTO _param_overrides (user_name, param_value)
      SELECT :current_user, "value"
      FROM TABLE(RESULT_SCAN(LAST_QUERY_ID()))
      WHERE "level" = 'USER';
  END FOR;

  res := (SELECT * FROM _param_overrides);
  RETURN TABLE(res);
END;
$$;

Ce script itère sur tous les utilisateurs du compte, vérifie si un remplacement au niveau de l’utilisateur est défini pour``CORTEX_CODE_CLI_DAILY_EST_CREDIT_LIMIT_PER_USER``, et renvoie une table d’utilisateurs avec leurs valeurs de remplacement. Vous pouvez modifier le nom du paramètre dans la clause SHOW PARAMETERS LIKE pour vérifier le paramètre Snowsight à la place.

Exemple : Configuration des limites pour votre organisation

L’exemple suivant définit des limites par défaut pour tous les utilisateurs du compte sur les deux surface, puis attribue une limite supérieure à un utilisateur expert pour l’utilisation de la CLI :

-- Set default daily limits for all users
ALTER ACCOUNT SET CORTEX_CODE_CLI_DAILY_EST_CREDIT_LIMIT_PER_USER = 20;
ALTER ACCOUNT SET CORTEX_CODE_SNOWSIGHT_DAILY_EST_CREDIT_LIMIT_PER_USER = 20;

-- Allow a specific user a higher CLI limit
ALTER USER power_user SET CORTEX_CODE_CLI_DAILY_EST_CREDIT_LIMIT_PER_USER = 50;

-- Block a specific user from Snowsight entirely
ALTER USER restricted_user SET CORTEX_CODE_SNOWSIGHT_DAILY_EST_CREDIT_LIMIT_PER_USER = 0;

Note

Lorsqu’une valeur au niveau du compte et au niveau de l’utilisateur sont définies pour le même paramètre, la valeur au niveau de l’utilisateur prévaut pour cet utilisateur. Tous les autres utilisateurs du compte continuent d’utiliser la valeur au niveau du compte.