Kostenkontrollen für Cortex Code

Kontoadmins können für Cortex Code tägliche Grenzwerte für die Credit-Nutzung pro Benutzenden festlegen. Diese Beschränkungen helfen Unternehmen, den Cortex Code-Verbrauch zu kontrollieren, indem sie den Zugriff blockieren, wenn die geschätzte Credit-Nutzung eines Benutzenden in einem gleitenden 24-Stunden-Fenster den konfigurierten Schwellenwert überschreitet.

Es gibt separate Parameter für jede Cortex Code-Oberfläche:

Parameter

Kontrollen

CORTEX_CODE_CLI_DAILY_EST_CREDIT_LIMIT_PER_USER

Cortex Code-CLI-Nutzung

CORTEX_CODE_SNOWSIGHT_DAILY_EST_CREDIT_LIMIT_PER_USER

Nutzung von Cortex Code in Snowsight

Funktionsweise von Credit-Grenzwerten

Jeder Parameter verfolgt die geschätzte Credit-Nutzung des entsprechenden Benutzenden über ein gleitendes 24-Stunden-Fenster. Wenn die geschätzte Nutzung eines Benutzers den konfigurierten Grenzwert für eine bestimmte Oberfläche erreicht, wird der Zugriff für diese Oberfläche blockiert, bis die Nutzung unter den Schwellenwert sinkt.

Beide Parameter weisen das gleiche Verhalten auf:

Wert

Verhalten

-1 (Standard)

Kein Grenzwert. Der Benutzer hat unbegrenzten Zugriff.

0

Der Zugriff ist vollständig für den Benutzenden gesperrt.

Positive Zahl

Der Zugriff wird blockiert, wenn die geschätzte Credit-Nutzung des Benutzenden in den letzten 24 Stunden diesen Wert überschreitet.

Jeder Parameter kann auf Kontoebene (gilt für alle Benutzende) oder auf Benutzerebene (gilt für einen bestimmten Benutzenden) festgelegt werden. Eine Einstellung auf Benutzerebene setzt die Einstellung auf Kontoebene für diesen Benutzenden außer Kraft.

Bemerkung

Nur Benutzende mit der ACCOUNTADMIN-Rolle (oder eine Rolle mit ausreichenden Berechtigungen, um das Konto oder Benutzerobjekt zu ändern) kann diese Parameter festlegen.

Grenzwerte für die Cortex Code-CLI

Der CORTEX_CODE_CLI_DAILY_EST_CREDIT_LIMIT_PER_USER-Parameter steuert den tägliche Credit-Grenzwert für die Nutzung der Cortex Code-CLI.

Kontoebene

So legen Sie einen tägliche Credit-Grenzwert für alle Benutzenden des Kontos fest:

-- 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;

So entfernen Sie den Grenzwert auf Kontoebene und stellen die Standardeinstellung (unbegrenzt) wieder her:

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

Benutzerebene

So legen Sie einen täglichen Credit-Grenzwert für einen bestimmten Benutzenden fest, wobei die Einstellung auf Kontoebene überschrieben wird:

-- 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;

So entfernen Sie den Grenzwert auf Benutzerebene, sodass stattdessen die Einstellung auf Kontoebene gilt:

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

Grenzwerte für Cortex Code in Snowsight

Der CORTEX_CODE_SNOWSIGHT_DAILY_EST_CREDIT_LIMIT_PER_USER-Parameter steuert den tägliche Credit-Grenzwert für die Nutzung von Cortex Code in der Snowflake-Weboberfläche.

Kontoebene

So legen Sie einen tägliche Credit-Grenzwert für alle Benutzenden des Kontos fest:

-- 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;

So entfernen Sie den Grenzwert auf Kontoebene und stellen die Standardeinstellung (unbegrenzt) wieder her:

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

Benutzerebene

So legen Sie einen täglichen Credit-Grenzwert für einen bestimmten Benutzenden fest, wobei die Einstellung auf Kontoebene überschrieben wird:

-- 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;

So entfernen Sie den Grenzwert auf Benutzerebene, sodass stattdessen die Einstellung auf Kontoebene gilt:

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

Wenn ein Grenzwert erreicht ist

Wenn die geschätzte Credit-Nutzung eines Benutzenden den konfigurierten Grenzwert für eine Oberfläche überschreitet, gibt diese Oberfläche einen Fehler zurück, der besagt, dass der tägliche Credit-Grenzwert erreicht wurde. Der Benutzende kann diese Oberfläche erst nutzen, wenn genügend Zeit verstrichen ist, damit die rollierende Nutzung über 24 Stunden unter den Grenzwert sinkt. Andere Oberflächen mit separaten Grenzwerten sind davon nicht betroffen.

Admins können den Grenzwert jederzeit anpassen oder entfernen, um den Zugriff wiederherzustellen.

Auflisten von Benutzenden mit kundenspezifischen Grenzwerten

Das folgende SQL-Skript listet alle Benutzenden auf, die für den CLI Parameter eine Überschreibung auf Benutzerebene für Credit-Grenzwerte aufweisen. Dies ist nützlich für Admins, die überprüfen möchten, für welche Benutzenden benutzerdefinierte Grenzwerte auf Benutzerebene festgelegt wurden.

-- 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;
$$;

Dieses Skript iteriert über alle Benutzende des Kontos und prüft, ob eine Überschreibung auf Benutzerebene für CORTEX_CODE_CLI_DAILY_EST_CREDIT_LIMIT_PER_USER festgelegt ist und gibt eine Tabelle der Benutzenden mit ihren Überschreibungswerten zurück. Sie können den Parameternamen in der SHOW PARAMETERS LIKE-Klausel ändern, um stattdessen den Snowsight-Parameter zu überprüfen.

Beispiel: Konfigurieren der Grenzwerte für Ihre Organisation

Im folgenden Beispiel werden Standardgrenzwerte für alle Benutzenden des Kontos auf beiden Oberfläche festgelegt. Anschließend wird einem Power-User ein höherer Grenzwert für die CLI-Nutzung zugewiesen:

-- 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;

Bemerkung

Wenn für denselben Parameter sowohl ein Wert auf Kontoebene als auch auf Benutzerebene festgelegt ist, hat der Wert auf Benutzerebene für diesen Benutzenden Vorrang. Alle anderen Benutzenden des Kontos verwenden weiterhin den Wert auf Kontoebene.