Daily credit usage limits for CoCo

Daily credit usage limits for CoCo (일일 크레딧 사용량 한도)

계정 관리자는 CoCo에 대한 일일 예상 크레딧 사용량 한도를 사용자별로 설정할 수 있어요. 이 한도는 롤링 24시간 창에서 사용자의 예상 크레딧 사용량이 구성된 임계값을 초과하면 접근을 차단해 조직이 CoCo 소비를 제어하게 도와줘요.

출처: Daily credit usage limits for CoCo

본문

예산과 사용자별 할당량을 포함한 다른 CoCo 지출 제어는 Cost controls for CoCo를 참고해요.

크레딧 한도는 데이터베이스 역할 승인과 별개의 상호 보완 메커니즘이에요. 사용자는 표면에 접근하려면 자격을 갖춘 데이터베이스 역할(SNOWFLAKE.CORTEX_USER 또는 SNOWFLAKE.CORTEX_AGENT_USER)과 0이 아닌 크레딧 한도가 둘 다 필요해요. 기본적으로 SNOWFLAKE.CORTEX_USER는 PUBLIC 역할에 부여되므로 모든 사용자가 접근할 수 있어요. 접근을 제한하려면 PUBLIC에서 회수하거나 계정 수준 크레딧 한도를 0으로 설정해요.

CoCo 표면마다 별도 파라미터가 있어요.

파라미터 제어
CORTEX_CODE_CLI_DAILY_EST_CREDIT_LIMIT_PER_USER CoCo CLI 사용량
CORTEX_CODE_DESKTOP_DAILY_EST_CREDIT_LIMIT_PER_USER CoCo Desktop 사용량
CORTEX_CODE_SNOWSIGHT_DAILY_EST_CREDIT_LIMIT_PER_USER CoCo in Snowsight 사용량

크레딧 한도 동작 방식

각 파라미터는 롤링 24시간 창에 걸친 해당 사용자의 예상 크레딧 사용량을 추적해요. 사용자의 예상 사용량이 주어진 표면에 대한 구성된 한도에 도달하면, 사용량이 임계값 아래로 떨어질 때까지 해당 표면에 대한 접근이 차단돼요.

세 파라미터 모두 같은 동작을 공유해요.

값 동작
-1(기본값) 한도 없음. 사용자에게 무제한 접근.
0 사용자에게 접근이 완전히 차단됨.
양수 지난 24시간의 예상 크레딧 사용량이 이 값을 초과하면 접근 차단.

크레딧 한도로 접근 제어

계정 수준 파라미터를 0으로 설정하면 그 표면에 대한 모든 사용자의 CoCo 접근이 차단돼요. 그런 다음 사용자 수준에서 양수 값을 할당해 개별 사용자에게 선택적으로 접근을 허용할 수 있어요. 이 패턴은 표면을 특정 사용자 집합으로 제한하려 할 때 유용해요.

-- Block Cortex Code Desktop for all users in the account
ALTER ACCOUNT SET CORTEX_CODE_DESKTOP_DAILY_EST_CREDIT_LIMIT_PER_USER = 0;

-- Allow a specific user up to 20 credits per day
ALTER USER power_user SET CORTEX_CODE_DESKTOP_DAILY_EST_CREDIT_LIMIT_PER_USER = 20;

각 파라미터는 계정 수준(모든 사용자에게 적용) 또는 사용자 수준(특정 사용자에게 적용)으로 설정할 수 있어요. 사용자 수준 설정은 그 사용자에 대해 계정 수준 설정을 오버라이드해요.

참고

ACCOUNTADMIN 역할(또는 계정이나 사용자 객체를 수정할 충분한 권한이 있는 역할)을 가진 사용자만 이 파라미터를 설정할 수 있어요.

CoCo CLI 한도

CORTEX_CODE_CLI_DAILY_EST_CREDIT_LIMIT_PER_USER 파라미터는 CoCo 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;

CoCo Desktop 한도

CORTEX_CODE_DESKTOP_DAILY_EST_CREDIT_LIMIT_PER_USER 파라미터는 CoCo Desktop 사용량에 대한 일일 크레딧 한도를 제어해요.

계정 수준

-- Set the daily Desktop credit usage limit to 20 credits for all users in the account
ALTER ACCOUNT SET CORTEX_CODE_DESKTOP_DAILY_EST_CREDIT_LIMIT_PER_USER = 20;
-- Remove the account-level Desktop limit (restores default unlimited usage)
ALTER ACCOUNT UNSET CORTEX_CODE_DESKTOP_DAILY_EST_CREDIT_LIMIT_PER_USER;

사용자 수준

-- Set a per-user Desktop limit that overrides the account-level setting
ALTER USER jsmith SET CORTEX_CODE_DESKTOP_DAILY_EST_CREDIT_LIMIT_PER_USER = 10;
-- Remove the user-level Desktop override (account-level setting applies instead)
ALTER USER jsmith UNSET CORTEX_CODE_DESKTOP_DAILY_EST_CREDIT_LIMIT_PER_USER;

CoCo in Snowsight 한도

CORTEX_CODE_SNOWSIGHT_DAILY_EST_CREDIT_LIMIT_PER_USER 파라미터는 Snowsight 웹 인터페이스 내 CoCo 사용량에 대한 일일 크레딧 한도를 제어해요.

계정 수준

-- 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시간 사용량이 한도 아래로 떨어질 만큼 충분한 시간이 지나기 전까지 그 표면을 사용할 수 없어요. 별도 한도가 있는 다른 표면은 영향을 받지 않아요.

예를 들어 한도를 초과한 CoCo CLI 사용자는 다음과 같은 오류를 봐요.

Error: Daily credit usage limit reached. Your estimated usage has exceeded the
configured limit for this surface. Please try again later or contact your
account administrator to adjust your limit.

CoCo Desktop에서는 채팅 인터페이스에 비슷한 메시지가 나타나요. Snowsight에서는 CoCo 패널이 오류를 인라인으로 표시해요.

관리자는 언제든 한도를 조정하거나 제거해 접근을 복원할 수 있어요.

사용자 지정 한도가 있는 사용자 나열

다음 SQL 스크립트는 CLI 파라미터에 대한 사용자별 크레딧 한도 오버라이드가 있는 모든 사용자를 나열해요. 사용자 수준에서 사용자 지정 한도가 설정된 사용자를 감사하려는 관리자에게 유용해요.

-- List all users who have a per-user CLI credit limit override
EXECUTE IMMEDIATE $$
DECLARE
  target_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
    target_user := record."name";

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

    INSERT INTO _param_overrides (user_name, param_value)
      SELECT :target_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_DESKTOP_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;

참고

같은 파라미터에 계정 수준과 사용자 수준 값이 모두 설정되면, 그 사용자에게는 사용자 수준 값이 우선해요. 계정의 다른 모든 사용자는 계속 계정 수준 값을 사용해요.

더 알아보기