Usage Meter

TsgcAIUsageMeter liczy tokeny każdego żądania, które twoja aplikacja wysyła do modelu językowego, i zamienia je na pieniądze. Przypisz go do TsgcAIChat.UsageMeter, podaj cennik i budżet, a użytkownik, który osiągnie budżet, zostanie odrzucony przed wysłaniem następnego żądania.

TsgcAIUsageMeter

Ceny według dostawcy i modelu, bieżące sumy według użytkownika i sesji, budżety łączne, dzienne lub miesięczne, które mogą zablokować żądanie, oraz eksport do CSV, dowolnego TDataSet i kolektora OpenTelemetry.

Klasa komponentu

TsgcAIUsageMeter

Przeznaczenie

Koszty tokenów, budżety i eksport użycia

Rodzina

Czat i agenci

Platformy

Windows, macOS, Linux, iOS i Android

Edycje. TsgcAIUsageMeter jest dostarczany w sgcAI, w sgcWebSockets Enterprise i w All-Access, w tych samych edycjach co TsgcAIChat. Nowość w 2026.11.0. sgcAI jest samowystarczalny: zawiera środowisko uruchomieniowe sgcWebSockets Core, na którym komponent jest zbudowany. Dostępny dla Delphi 7 do Delphi 13 i C++ Builder.

Wyceń każde żądanie, ogranicz każdego użytkownika

Dodaj cenę, dodaj budżet, przypisz miernik do czatu. Liczone jest każde żądanie czatu oraz agenta, który z niego korzysta.

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;

Kluczowe właściwości i metody

Składowe, po które sięgasz najczęściej.

Ceny

Prices przechowuje cenę za milion tokenów wejściowych, wyjściowych i z pamięci podręcznej dla każdego dostawcy i modelu. Dozwolone są wzorce modeli, takie jak gpt-5*, a wygrywa najbardziej szczegółowe dopasowanie. Prices.LoadFromFile i LoadFromJSON wczytują cennik. Tokeny z pamięci podręcznej są rozliczane według CachedPerMillion.

Sumy

TotalCost i TotalTokens zwracają sumy dla całości, jednego użytkownika, jednej sesji lub jednego użytkownika w jednej sesji. Records i RecordCount wyświetlają ostatnie MaxRecords żądań bez zmiany sum, a Clear zeruje wszystko.

Budżety

Każdy element Budgets ma Scope (aubsGlobal, aubsUser lub aubsSession), opcjonalny Key, Period (aubpTotal, aubpDay lub aubpMonth) oraz limit MaxCost lub MaxTokens. Przy BlockWhenExceeded następne żądanie jest odrzucane przed wysłaniem.

Eksport

SaveToCSV i ToCSV zapisują jedną linię na żądanie z sygnaturą czasu, dostawcą, modelem, użytkownikiem, sesją, tokenami i kosztem. ExportToDataSet dopisuje rekordy do dowolnego TDataSet o pasujących nazwach pól.

OpenTelemetry

Przy OpenTelemetry.Enabled każde żądanie staje się spanem OTLP/HTTP zgodnym z konwencjami semantycznymi GenAI: dostawca, model, tokeny wejściowe, wyjściowe i z pamięci podręcznej, użytkownik i sesja. Wysyła go wątek w tle, więc czat nigdy nie czeka na kolektor.

Zdarzenia

OnRecord wyzwala się dla każdego wycenionego żądania. OnBudgetExceeded wyzwala się raz dla budżetu, klucza i okresu po osiągnięciu limitu. Żądania obsłużone przez zapasowego dostawcę (fallback) są wyceniane według dostawcy i modelu, które odpowiedziały.

Specyfikacje i materiały źródłowe

Miarodajne źródła dla usług i protokołów, z których korzysta ten komponent.

Poznawaj dalej

Pomoc onlinePełna dokumentacja API i przewodnik użytkowania komponentów sgcAI.
Wszystkie komponenty sgcAIPrzejrzyj matrycę funkcji każdego komponentu sgcAI.
Pobierz bezpłatną wersję próbnąWypróbuj z własnymi kluczami API.
CennikLicencje Single, Team i Site, pełny kod źródłowy.
Najkorzystniejsza oferta: All-AccessWszystkie produkty eSeGeCe, ze wsparciem Premium w cenie, już od €1,059 rocznie.
Zobacz cennik All-Access

Gotowy, aby zacząć?

Pobierz bezpłatną wersję próbną i dowiedz się, ile kosztuje każdy użytkownik twoich funkcji AI.