Cortex Code의 비용 제어

계정 관리자는 사용자별로 Cortex Code의 일일 예상 크레딧 사용 한도를 설정할 수 있습니다. 이러한 제한은 조직이 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 사용량에 대한 일일 크레딧 한도를 제어합니다.

계정 수준

계정의 모든 사용자에 대한 일일 크레딧 한도를 설정하려면 다음을 수행합니다.

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

사용자 수준

계정 수준 설정을 재정의하여 특정 사용자에 대한 일일 크레딧 한도를 설정하려면 다음을 수행합니다.

-- 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 사용량에 대한 일일 크레딧 한도를 제어합니다.

계정 수준

계정의 모든 사용자에 대한 일일 크레딧 한도를 설정하려면 다음을 수행합니다.

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

사용자 수준

계정 수준 설정을 재정의하여 특정 사용자에 대한 일일 크레딧 한도를 설정하려면 다음을 수행합니다.

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

한도에 도달한 경우

사용자의 예상 크레딧 사용량이 표면에 대해 구성된 한도를 초과하면 해당 표면은 일일 크레딧 한도에 도달했음을 나타내는 오류를 반환합니다. 사용자는 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;

참고

계정 수준 값과 사용자 수준 값이 모두 동일한 매개 변수에 대해 설정된 경우 해당 사용자에 대해 사용자 수준 값이 우선합니다. 계정의 다른 모든 사용자는 계정 수준 값을 계속 사용합니다.