Cortex Codeのコスト制御

アカウント管理者は、ユーザーごとに、Cortex Codeの1日あたりの推定クレジット使用状況に関する制限を設定できます。これらの制限は、ローリング24時間ウィンドウにおけるユーザーの推定クレジット使用状況が構成されたしきい値を超えた場合にアクセスをブロックすることにより、組織がCortex Codeの消費を制御するのに役立ちます。

Cortex Codeのサーフェスごとに個別のパラメーターがあります。

パラメーター

制御

CORTEX_CODE_CLI_DAILY_EST_CREDIT_LIMIT_PER_USER

Cortex Code CLIの使用状況

CORTEX_CODE_SNOWSIGHT_DAILY_EST_CREDIT_LIMIT_PER_USER

SnowsightでのCortex Codeの使用状況

クレジット制限の仕組み

各パラメーターは、ローリング24時間ウィンドウ全体で、対応するユーザーの推定クレジット使用状況を追跡します。ユーザーの推定使用状況が特定のサーフェスの構成済み制限に達すると、使用状況がしきい値を下回るまで、そのサーフェスではアクセスがブロックされます。

両方のパラメーターは同じ動作を共有します。

動作

-1 (デフォルト)

制限なし。ユーザーは無制限にアクセスできます。

0

ユーザーに対するアクセスは完全にブロックされます。

正の数

過去24時間のユーザーの推定クレジット使用状況がこの値を超えると、アクセスはブロックされます。

各パラメーターは、アカウントレベル(すべてのユーザーに適用)またはユーザーレベル(特定のユーザーに適用)で設定できます。ユーザーレベルの設定は、そのユーザーのアカウントレベルの設定を上書きします。

注釈

``ACCOUNTADMIN``ロール(またはアカウントまたはユーザーオブジェクトを変更するための十分な権限を持つロール)を持つユーザーのみが、これらのパラメーターを設定できます。

Cortex Code CLIの制限

``CORTEX_CODE_CLI_DAILY_EST_CREDIT_LIMIT_PER_USER``パラメーターは、Cortex Code CLIの使用に対する1日のクレジット制限を制御します。

アカウントレベル

アカウント内のすべてのユーザーに1日のクレジット制限を設定するには:

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

アカウントレベルの制限を削除し、デフォルト(無制限)に復元するには:

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

ユーザーレベル

アカウントレベルの設定を上書きして、特定のユーザーに1日のクレジット制限を設定するには:

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

ユーザーレベルの制限を削除し、代わりにアカウントレベルの設定が適用されるようにするには:

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

SnowsightでのCortex Codeの制限

``CORTEX_CODE_SNOWSIGHT_DAILY_EST_CREDIT_LIMIT_PER_USER``パラメーターは、Snowsightウェブインターフェイス内におけるCortex Codeの使用に対する1日のクレジット制限を制御します。

アカウントレベル

アカウント内のすべてのユーザーに1日のクレジット制限を設定するには:

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

アカウントレベルの制限を削除し、デフォルト(無制限)に復元するには:

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

ユーザーレベル

アカウントレベルの設定を上書きして、特定のユーザーに1日のクレジット制限を設定するには:

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

ユーザーレベルの制限を削除し、代わりにアカウントレベルの設定が適用されるようにするには:

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

制限到達時

ユーザーの推定クレジット使用状況がサーフェスの構成済み制限を超えると、そのサーフェスから1日のクレジット制限に達したことを示すエラーが返されます。ローリング24時間の使用状況が制限を下回るのに十分な時間が経過するまで、ユーザーはそのサーフェスを使用できません。個別の制限が適用されている他のサーフェスは影響を受けません。

管理者は、いつでも制限を調整または削除して、アクセスを復元できます。

カスタム制限が適用されているユーザーのリスト

次のSQLスクリプトでは、CLIパラメーターについて、ユーザー別のクレジット制限が上書きされているすべてのユーザーを一覧表示します。これは、どのユーザーにユーザーレベルでカスタム制限が設定されているかを監査したい管理者に役立ちます。

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

このスクリプトは、アカウント内のすべてのユーザーを反復処理し、``CORTEX_CODE_CLI_DAILY_EST_CREDIT_LIMIT_PER_USER``にユーザーレベルの上書きが設定されているかどうかを確認し、上書き値を持つユーザーのテーブルを返します。``SHOW PARAMETERS LIKE``句のパラメーター名を変更して、代わりにSnowsightパラメーターをチェックできます。

例:組織の制限の構成

次の例では、両方のサーフェスでアカウント内のすべてのユーザーにデフォルトの制限を設定し、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;

注釈

アカウントレベルとユーザーレベルの値の両方が同じパラメーターに設定されている場合は、そのユーザーのユーザーレベルの値が優先されます。アカウント内の他のすべてのユーザーは、アカウントレベルの値を引き続き使用します。