Usage Meter

TsgcAIUsageMeter cuenta los tokens de cada petición que tu aplicación envía a un modelo de lenguaje y los convierte en dinero. Asígnalo a TsgcAIChat.UsageMeter, dale una lista de precios y un presupuesto, y un usuario que alcance el presupuesto es rechazado antes de enviar la siguiente petición.

TsgcAIUsageMeter

Precios por proveedor y modelo, totales acumulados por usuario y sesión, presupuestos totales, diarios o mensuales que pueden bloquear una petición, y exportación a CSV, a cualquier TDataSet y a un colector OpenTelemetry.

Clase del componente

TsgcAIUsageMeter

Propósito

Costes de tokens, presupuestos y exportación del uso

Familia

Chat y agentes

Plataformas

Windows, macOS, Linux, iOS y Android

Ediciones. TsgcAIUsageMeter se incluye en sgcAI, en sgcWebSockets Enterprise y en All-Access, las mismas ediciones que TsgcAIChat. Novedad de la versión 2026.11.0. sgcAI es autónomo: incluye el runtime sgcWebSockets Core sobre el que está construido el componente. Disponible para Delphi 7 a Delphi 13 y C++ Builder.

Calcula cada petición, limita a cada usuario

Añade un precio, añade un presupuesto, asigna el medidor al chat. Se cuenta cada petición del chat, y también las de un agente que lo use.

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;

Propiedades y métodos principales

Los miembros que usarás más a menudo.

Precios

Prices guarda el precio por millón de tokens de entrada, de salida y en caché de cada proveedor y modelo. Se admiten patrones de modelo como gpt-5* y gana la coincidencia más específica. Prices.LoadFromFile y LoadFromJSON cargan una lista de precios. Los tokens en caché se facturan con CachedPerMillion.

Totales

TotalCost y TotalTokens devuelven los totales de todo, de un usuario, de una sesión o de un usuario en una sesión. Records y RecordCount listan las últimas MaxRecords peticiones sin cambiar los totales, Clear lo reinicia todo.

Presupuestos

Cada elemento de Budgets tiene un Scope (aubsGlobal, aubsUser o aubsSession), una Key opcional, un Period (aubpTotal, aubpDay o aubpMonth) y un límite MaxCost o MaxTokens. Con BlockWhenExceeded la siguiente petición se rechaza antes de enviarse.

Exportación

SaveToCSV y ToCSV escriben una línea por petición con marca de tiempo, proveedor, modelo, usuario, sesión, tokens y coste. ExportToDataSet añade los registros a cualquier TDataSet con campos del mismo nombre.

OpenTelemetry

Con OpenTelemetry.Enabled cada petición se convierte en un span OTLP/HTTP con las convenciones semánticas GenAI: proveedor, modelo, tokens de entrada, de salida y en caché, usuario y sesión. Un hilo en segundo plano lo envía, así que el chat nunca espera al colector.

Eventos

OnRecord se dispara por cada petición calculada. OnBudgetExceeded se dispara una vez por presupuesto, clave y periodo cuando se alcanza el límite. Las peticiones respondidas por un proveedor de fallback se calculan con el proveedor y el modelo que respondió.

Especificaciones y referencias

Fuentes oficiales de los servicios y protocolos que utiliza este componente.

Sigue explorando

Ayuda en líneaReferencia completa de la API y guía de uso de los componentes sgcAI.
Todos los componentes sgcAIConsulta la matriz de características de cada componente sgcAI.
Descargar prueba gratuitaPruébalo con tus propias claves de API.
PreciosLicencias Single, Team y Site, código fuente completo.
La mejor opción: All-AccessTodos los productos de eSeGeCe, con Premium Support incluido, desde €1,059 al año.
Ver precios de All-Access

¿Listo para empezar?

Descarga la prueba gratuita y conoce lo que cuesta cada usuario de tus funciones de IA.