Controles de custo para o Cortex Code

Os administradores da conta podem definir limites diários estimados de uso de crédito para o Cortex Code por usuário. Esses limites ajudam as organizações a controlar o consumo do Cortex Code, bloqueando o acesso quando o uso de crédito estimado de um usuário em uma janela contínua de 24 horas excede o limite configurado.

Há parâmetros separados para cada superfície do Cortex Code:

Parâmetro

Controles

CORTEX_CODE_CLI_DAILY_EST_CREDIT_LIMIT_PER_USER

Uso do Cortex Code CLI

CORTEX_CODE_SNOWSIGHT_DAILY_EST_CREDIT_LIMIT_PER_USER

Uso do Cortex Code no Snowsight

Como funcionam os limites de crédito

Cada parâmetro rastreia o uso de crédito estimado do usuário correspondente em uma janela contínua de 24 horas. Quando o uso estimado de um usuário atinge o limite configurado para uma determinada superfície, o acesso a ela é bloqueado até que o uso caia abaixo do limite.

Ambos os parâmetros compartilham o mesmo comportamento:

Valor

Comportamento

-1 (padrão)

Sem limite. O usuário tem acesso ilimitado.

0

O acesso é totalmente bloqueado para o usuário.

Número positivo

O acesso é bloqueado quando o uso de crédito estimado do usuário nas últimas 24 horas excede esse valor.

Cada parâmetro pode ser definido no nível da conta (aplica-se a todos os usuários) ou do usuário (aplica-se a um usuário específico). Uma configuração em nível de usuário substitui a configuração em nível de conta para esse usuário.

Nota

Somente usuários com a função ACCOUNTADMIN (ou uma função com privilégios suficientes para modificar o objeto da conta ou do usuário) podem definir esses parâmetros.

Limites do Cortex Code CLI

O parâmetro CORTEX_CODE_CLI_DAILY_EST_CREDIT_LIMIT_PER_USER controla o limite de crédito diário para o uso do Cortex Code CLI.

Nível de conta

Para definir um limite de crédito diário para todos os usuários da conta:

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

Para remover o limite em nível de conta e restaurar o padrão (ilimitado):

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

Nível de usuário

Para definir um limite de crédito diário para um usuário específico, substituindo a configuração em nível de conta:

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

Para remover o limite em nível de usuário, de modo que a configuração em nível de conta seja aplicada:

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

Limites do Cortex Code no Snowsight

O parâmetro CORTEX_CODE_SNOWSIGHT_DAILY_EST_CREDIT_LIMIT_PER_USER controla o limite de crédito diário para o uso do Cortex Code na interface da Web do Snowsight.

Nível de conta

Para definir um limite de crédito diário para todos os usuários da conta:

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

Para remover o limite em nível de conta e restaurar o padrão (ilimitado):

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

Nível de usuário

Para definir um limite de crédito diário para um usuário específico, substituindo a configuração em nível de conta:

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

Para remover o limite em nível de usuário, de modo que a configuração em nível de conta seja aplicada:

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

Quando um limite é atingido

Quando o uso de crédito estimado de um usuário excede o limite configurado para uma superfície, essa superfície retorna um erro indicando que o limite de crédito diário foi atingido. O usuário não pode usar essa superfície até que tenha passado tempo suficiente para que o uso acumulado nas últimas 24 horas caia abaixo do limite. Outras superfícies com limites separados não são afetadas.

Os administradores podem ajustar ou remover o limite a qualquer momento para restaurar o acesso.

Listando usuários com limites personalizados

O seguinte script SQL lista todos os usuários que têm uma substituição de limite de crédito por usuário para o parâmetro CLI. Isso é útil para administradores que desejam auditar quais usuários têm limites personalizados definidos em nível de usuário.

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

Este script itera sobre todos os usuários da conta, verifica se uma substituição em nível de usuário está definida para CORTEX_CODE_CLI_DAILY_EST_CREDIT_LIMIT_PER_USER e retorna uma tabela de usuários com os valores de substituição. Você pode modificar o nome do parâmetro na cláusula SHOW PARAMETERS LIKE para verificar o parâmetro Snowsight.

Exemplo: Configurando limites para sua organização

O exemplo a seguir define limites padrão para todos os usuários da conta em ambas as superfícies e, em seguida, atribui um limite maior a um usuário avançado para uso de 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;

Nota

Quando um valor em nível de conta e um em nível de usuário são definidos para o mesmo parâmetro, o valor em nível de usuário tem precedência para esse usuário. Todos os outros usuários da conta continuam a usar o valor em nível de conta.