Usage Meter

O TsgcAIUsageMeter conta os tokens de cada requisição que o seu aplicativo envia a um modelo de linguagem e os transforma em dinheiro. Atribua-o a TsgcAIChat.UsageMeter, dê a ele uma lista de preços e um orçamento, e um usuário que atinge o orçamento é recusado antes que a próxima requisição seja enviada.

TsgcAIUsageMeter

Preços por provedor e modelo, totais acumulados por usuário e sessão, orçamentos totais, diários ou mensais que podem bloquear uma requisição, e exportação para CSV, qualquer TDataSet e um coletor OpenTelemetry.

Classe do componente

TsgcAIUsageMeter

Finalidade

Custos de tokens, orçamentos e exportação de uso

Família

Chat e agentes

Plataformas

Windows, macOS, Linux, iOS e Android

Edições. O TsgcAIUsageMeter vem no sgcAI, no sgcWebSockets Enterprise e no All-Access, as mesmas edições do TsgcAIChat. Novidade da versão 2026.11.0. O sgcAI é autossuficiente: inclui o runtime sgcWebSockets Core sobre o qual o componente foi construído. Disponível para Delphi 7 a Delphi 13 e C++ Builder.

Calcule o custo de cada requisição, limite cada usuário

Adicione um preço, adicione um orçamento, atribua o medidor ao chat. Toda requisição do chat, e de um agente que o usa, é contabilizada.

uses
  sgcAI, sgcAI_Chat, sgcAI_UsageMeter;

procedure TForm1.MeterUsage;
var
  oPrice: TsgcAIUsagePrice;
  oBudget: TsgcAIUsageBudget;
begin
  oPrice := sgcAIUsageMeter1.Prices.Add; // or Prices.LoadFromFile('prices.json')
  oPrice.Provider := 'openai';
  oPrice.Model := 'gpt-5*';
  oPrice.InputPerMillion := 1.25;
  oPrice.OutputPerMillion := 10;
  oPrice.CachedPerMillion := 0.125;

  oBudget := sgcAIUsageMeter1.Budgets.Add; // every user can spend 2 USD a day
  oBudget.Scope := aubsUser;
  oBudget.Period := aubpDay;
  oBudget.MaxCost := 2;
  sgcAIUsageMeter1.OnBudgetExceeded := DoBudgetExceeded;

  // optional: one OpenTelemetry span per request
  sgcAIUsageMeter1.OpenTelemetry.Enabled := True;
  sgcAIUsageMeter1.OpenTelemetry.Endpoint := 'http://localhost:4318';

  sgcAIChat1.UserId := 'user-1';
  sgcAIChat1.UsageMeter := sgcAIUsageMeter1;
  Memo1.Lines.Add(sgcAIChat1.Chat('Hello'));

  Memo1.Lines.Add(Format('user-1 spent %.6f %s and %d tokens',
    [sgcAIUsageMeter1.TotalCost('user-1'), sgcAIUsageMeter1.Currency,
    sgcAIUsageMeter1.TotalTokens('user-1')]));
  sgcAIUsageMeter1.SaveToCSV('usage.csv');
end;

procedure TForm1.DoBudgetExceeded(Sender: TObject;
  const aBudget: TsgcAIUsageBudget; const aKey: string; aCost: Double;
  aTokens: Int64);
begin
  Memo1.Lines.Add(Format('Budget "%s" reached by %s: %.4f USD',
    [aBudget.DisplayName, aKey, aCost]));
end;

Principais propriedades & métodos

Os membros que você usa com mais frequência.

Preços

Prices guarda o preço por milhão de tokens de entrada, de saída e em cache de cada provedor e modelo. Padrões de modelo como gpt-5* são permitidos e vale a correspondência mais específica. Prices.LoadFromFile e LoadFromJSON carregam uma lista de preços. Os tokens em cache são cobrados com CachedPerMillion.

Totais

TotalCost e TotalTokens retornam os totais de tudo, de um usuário, de uma sessão ou de um usuário em uma sessão. Records e RecordCount listam as últimas MaxRecords requisições sem alterar os totais, Clear zera tudo.

Orçamentos

Cada item de Budgets tem um Scope (aubsGlobal, aubsUser ou aubsSession), uma Key opcional, um Period (aubpTotal, aubpDay ou aubpMonth) e um limite MaxCost ou MaxTokens. Com BlockWhenExceeded a próxima requisição é recusada antes de ser enviada.

Exportação

SaveToCSV e ToCSV escrevem uma linha por requisição com data e hora, provedor, modelo, usuário, sessão, tokens e custo. ExportToDataSet acrescenta os registros a qualquer TDataSet com nomes de campo correspondentes.

OpenTelemetry

Com OpenTelemetry.Enabled cada requisição vira um span OTLP/HTTP com as convenções semânticas GenAI: provedor, modelo, tokens de entrada, saída e em cache, usuário e sessão. Uma thread em segundo plano o envia, então o chat nunca espera pelo coletor.

Eventos

OnRecord dispara a cada requisição com custo calculado. OnBudgetExceeded dispara uma vez por orçamento, chave e período quando o limite é atingido. Requisições respondidas por um provedor de fallback têm o custo calculado com o provedor e o modelo que responderam.

Especificações & referências

Fontes oficiais dos serviços e protocolos que este componente usa.

Continue explorando

Ajuda onlineReferência completa da API e guia de uso dos componentes sgcAI.
Todos os componentes sgcAIExplore a matriz de recursos de todos os componentes sgcAI.
Baixar avaliação gratuitaExperimente com suas próprias chaves de API.
PreçosLicenças Single, Team e Site, código-fonte completo.
Melhor custo-benefício: All-AccessTodos os produtos da eSeGeCe, com Suporte Premium incluído, a partir de €1,059/ano.
Ver preços do All-Access

Pronto para começar?

Baixe a avaliação gratuita e saiba quanto custa cada usuário dos seus recursos de IA.