Usage Meter

TsgcAIUsageMeter telt de tokens van elk verzoek dat je toepassing naar een taalmodel stuurt en rekent ze om naar geld. Koppel het aan TsgcAIChat.UsageMeter, geef het een prijslijst en een budget, en een gebruiker die het budget bereikt wordt geweigerd voordat het volgende verzoek wordt verstuurd.

TsgcAIUsageMeter

Prijzen per provider en model, lopende totalen per gebruiker en sessie, totale, dagelijkse of maandelijkse budgetten die een verzoek kunnen blokkeren, en export naar CSV, elke TDataSet en een OpenTelemetry-collector.

Componentklasse

TsgcAIUsageMeter

Doel

Tokenkosten, budgetten en export van het gebruik

Familie

Chat & agents

Platforms

Windows, macOS, Linux, iOS en Android

Edities. TsgcAIUsageMeter zit in sgcAI, in sgcWebSockets Enterprise en in All-Access, dezelfde edities als TsgcAIChat. Nieuw in 2026.11.0. sgcAI is zelfstandig: het bevat de sgcWebSockets Core runtime waarop het component is gebouwd. Beschikbaar voor Delphi 7 tot Delphi 13 en C++ Builder.

Prijs elk verzoek, begrens elke gebruiker

Voeg een prijs toe, voeg een budget toe, koppel de meter aan de chat. Elk verzoek van de chat wordt geteld, ook die van een agent die de chat gebruikt.

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;

Belangrijkste eigenschappen & methoden

De leden die je het vaakst gebruikt.

Prijzen

Prices bevat de prijs per miljoen invoer-, uitvoer- en gecachete tokens van elke provider en elk model. Modelpatronen zoals gpt-5* zijn toegestaan en de meest specifieke overeenkomst wint. Prices.LoadFromFile en LoadFromJSON laden een prijslijst. Gecachete tokens worden berekend met CachedPerMillion.

Totalen

TotalCost en TotalTokens geven de totalen van alles, van één gebruiker, van één sessie of van één gebruiker in één sessie. Records en RecordCount tonen de laatste MaxRecords verzoeken zonder de totalen te wijzigen, Clear zet alles terug.

Budgetten

Elk item van Budgets heeft een Scope (aubsGlobal, aubsUser of aubsSession), een optionele Key, een Period (aubpTotal, aubpDay of aubpMonth) en een limiet MaxCost of MaxTokens. Met BlockWhenExceeded wordt het volgende verzoek geweigerd voordat het wordt verstuurd.

Export

SaveToCSV en ToCSV schrijven één regel per verzoek met tijdstempel, provider, model, gebruiker, sessie, tokens en kosten. ExportToDataSet voegt de records toe aan elke TDataSet met velden met dezelfde naam.

OpenTelemetry

Met OpenTelemetry.Enabled wordt elk verzoek een OTLP/HTTP-span met de GenAI semantic conventions: provider, model, invoer-, uitvoer- en gecachete tokens, gebruiker en sessie. Een achtergrondthread verstuurt het, zodat de chat nooit op de collector wacht.

Gebeurtenissen

OnRecord wordt afgevuurd voor elk geprijsd verzoek. OnBudgetExceeded wordt één keer per budget, sleutel en periode afgevuurd wanneer de limiet is bereikt. Verzoeken die door een fallback-provider zijn beantwoord, worden geprijsd met de provider en het model die hebben geantwoord.

Specificaties & referenties

Gezaghebbende bronnen voor de diensten en protocollen die dit component gebruikt.

Blijf ontdekken

Online helpVolledige API-referentie en gebruiksgids voor de sgcAI-componenten.
Alle sgcAI-componentenBekijk de functiematrix van elk sgcAI-component.
Download de gratis proefversieProbeer het met je eigen API-sleutels.
PrijzenSingle-, Team- en Site-licenties, volledige broncode.
De beste deal: All-AccessElk eSeGeCe-product, inclusief Premium-ondersteuning, vanaf €1,059 per jaar.
Bekijk de All-Access-prijzen

Klaar om aan de slag te gaan?

Download de gratis proefversie en weet wat elke gebruiker van je AI-functies kost.