Usage Meter

TsgcAIUsageMeter zählt die Token jeder Anfrage, die deine Anwendung an ein Sprachmodell sendet, und rechnet sie in Geld um. Weise ihn TsgcAIChat.UsageMeter zu, gib ihm eine Preisliste und ein Budget, und ein Benutzer, der das Budget erreicht, wird abgewiesen, bevor die nächste Anfrage gesendet wird.

TsgcAIUsageMeter

Preise pro Anbieter und Modell, laufende Summen pro Benutzer und Sitzung, Gesamt-, Tages- oder Monatsbudgets, die eine Anfrage blockieren können, und Exporte nach CSV, in jedes TDataSet und an einen OpenTelemetry-Collector.

Komponentenklasse

TsgcAIUsageMeter

Zweck

Token-Kosten, Budgets und Nutzungsexport

Familie

Chat & Agenten

Plattformen

Windows, macOS, Linux, iOS und Android

Editionen. TsgcAIUsageMeter ist in sgcAI, in sgcWebSockets Enterprise und in All-Access enthalten, in denselben Editionen wie TsgcAIChat. Neu in 2026.11.0. sgcAI ist eigenständig: Es enthält die sgcWebSockets Core Runtime, auf der die Komponente aufbaut. Verfügbar für Delphi 7 bis Delphi 13 und C++ Builder.

Jede Anfrage bepreisen, jeden Benutzer begrenzen

Füge einen Preis und ein Budget hinzu und weise den Usage Meter dem Chat zu. Jede Anfrage des Chats und eines Agenten, der ihn nutzt, wird gezählt.

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;

Wichtige Eigenschaften & Methoden

Die Member, zu denen du am häufigsten greifst.

Preise

Prices enthält den Preis pro Million Eingabe-, Ausgabe- und Cache-Token jedes Anbieters und Modells. Modellmuster wie gpt-5* sind erlaubt, und der spezifischste Treffer gewinnt. Prices.LoadFromFile und LoadFromJSON laden eine Preisliste. Cache-Token werden mit CachedPerMillion abgerechnet.

Summen

TotalCost und TotalTokens liefern die Summen von allem, eines Benutzers, einer Sitzung oder eines Benutzers in einer Sitzung. Records und RecordCount listen die letzten MaxRecords Anfragen auf, ohne die Summen zu ändern, Clear setzt alles zurück.

Budgets

Jedes Element von Budgets hat einen Scope (aubsGlobal, aubsUser oder aubsSession), einen optionalen Key, eine Period (aubpTotal, aubpDay oder aubpMonth) und ein Limit MaxCost oder MaxTokens. Mit BlockWhenExceeded wird die nächste Anfrage abgewiesen, bevor sie gesendet wird.

Export

SaveToCSV und ToCSV schreiben pro Anfrage eine Zeile mit Zeitstempel, Anbieter, Modell, Benutzer, Sitzung, Token und Kosten. ExportToDataSet hängt die Datensätze an ein beliebiges TDataSet mit passenden Feldnamen an.

OpenTelemetry

Mit OpenTelemetry.Enabled wird jede Anfrage zu einem OTLP/HTTP-Span nach den GenAI Semantic Conventions: Anbieter, Modell, Eingabe-, Ausgabe- und Cache-Token, Benutzer und Sitzung. Ein Hintergrund-Thread sendet ihn, sodass der Chat nie auf den Collector wartet.

Ereignisse

OnRecord wird für jede bepreiste Anfrage ausgelöst. OnBudgetExceeded wird einmal pro Budget, Key und Period ausgelöst, wenn das Limit erreicht ist. Anfragen, die ein Fallback-Anbieter beantwortet hat, werden mit dem Anbieter und Modell bepreist, die geantwortet haben.

Spezifikationen & Referenzen

Maßgebliche Quellen zu den Diensten und Protokollen, die diese Komponente nutzt.

Weiter entdecken

Online-HilfeVollständige API-Referenz und Anwendungsleitfaden für die sgcAI-Komponenten.
Alle sgcAI-KomponentenDurchstöbere die vollständige Funktionsmatrix aller sgcAI-Komponenten.
Kostenlose Testversion herunterladenProbiere sie mit deinen eigenen API-Schlüsseln aus.
PreiseSingle-, Team- und Site-Lizenzen, vollständiger Quellcode.
Bestes Preis-Leistungs-Verhältnis: All-AccessAlle eSeGeCe-Produkte, inklusive Premium-Support, ab €1,059 pro Jahr.
All-Access-Preise ansehen

Bereit loszulegen?

Lade die kostenlose Testversion herunter und erfahre, was jeder Benutzer deiner KI-Funktionen kostet.