Usage Meter

TsgcAIUsageMeter는 애플리케이션이 언어 모델에 보내는 모든 요청의 토큰을 세어 금액으로 환산합니다. TsgcAIChat.UsageMeter에 지정하고 가격표와 예산을 설정하면, 예산에 도달한 사용자는 다음 요청이 전송되기 전에 거부됩니다.

TsgcAIUsageMeter

공급자와 모델별 가격, 사용자와 세션별 누적 합계, 요청을 차단할 수 있는 전체, 일별, 월별 예산, 그리고 CSV, 모든 TDataSet, OpenTelemetry 수집기로의 내보내기를 제공합니다.

컴포넌트 클래스

TsgcAIUsageMeter

용도

토큰 비용, 예산, 사용량 내보내기

플랫폼

Windows, macOS, Linux, iOS, Android

에디션. TsgcAIUsageMeter는 sgcAI, sgcWebSockets Enterprise, All-Access에 포함되며, TsgcAIChat과 같은 에디션입니다. 2026.11.0 신기능입니다. sgcAI는 자체 완결형 제품으로, 컴포넌트의 기반이 되는 sgcWebSockets Core 런타임을 포함합니다. Delphi 7부터 Delphi 13, 그리고 C++ Builder에서 사용할 수 있습니다.

모든 요청의 비용을 계산하고 모든 사용자를 제한하세요

가격을 추가하고, 예산을 추가하고, 미터를 채팅에 지정하세요. 채팅의 모든 요청과 이를 사용하는 에이전트의 요청이 집계됩니다.

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;

주요 속성 & 메서드

가장 자주 사용하게 되는 멤버들입니다.

가격

Prices는 공급자와 모델별로 입력, 출력, 캐시 토큰 100만 개당 가격을 보관합니다. gpt-5* 같은 모델 패턴을 사용할 수 있고 가장 구체적인 일치가 우선합니다. Prices.LoadFromFile과 LoadFromJSON으로 가격표를 불러옵니다. 캐시 토큰은 CachedPerMillion으로 청구됩니다.

합계

TotalCost와 TotalTokens는 전체, 한 사용자, 한 세션, 또는 한 세션 안의 한 사용자에 대한 합계를 반환합니다. Records와 RecordCount는 합계를 바꾸지 않고 최근 MaxRecords개의 요청을 나열하며, Clear는 모두 초기화합니다.

예산

Budgets의 각 항목에는 Scope(aubsGlobal, aubsUser, aubsSession), 선택 사항인 Key, Period(aubpTotal, aubpDay, aubpMonth), 그리고 MaxCost 또는 MaxTokens 한도가 있습니다. BlockWhenExceeded를 켜면 다음 요청은 전송되기 전에 거부됩니다.

내보내기

SaveToCSV와 ToCSV는 요청마다 타임스탬프, 공급자, 모델, 사용자, 세션, 토큰, 비용을 한 줄로 기록합니다. ExportToDataSet은 필드 이름이 일치하는 모든 TDataSet에 레코드를 추가합니다.

OpenTelemetry

OpenTelemetry.Enabled를 켜면 모든 요청이 GenAI 시맨틱 규약을 따르는 OTLP/HTTP span이 됩니다: 공급자, 모델, 입력, 출력, 캐시 토큰, 사용자, 세션. 백그라운드 스레드가 전송하므로 채팅이 수집기를 기다리는 일은 없습니다.

이벤트

OnRecord는 비용이 계산된 모든 요청마다 발생합니다. OnBudgetExceeded는 한도에 도달했을 때 예산, 키, 기간마다 한 번 발생합니다. 폴백 공급자가 답한 요청은 실제로 답한 공급자와 모델로 계산됩니다.

사양 & 참고 자료

이 컴포넌트가 사용하는 서비스와 프로토콜의 공식 자료입니다.

계속 살펴보기

온라인 도움말sgcAI 컴포넌트의 전체 API 레퍼런스와 사용 안내서.
sgcAI 전체 컴포넌트모든 sgcAI 컴포넌트의 기능 매트릭스를 살펴보세요.
무료 체험판 다운로드보유한 API 키로 직접 사용해 보세요.
가격Single, Team, Site 라이선스, 전체 소스 코드 포함.
최고의 가성비: All-Access모든 eSeGeCe 제품과 프리미엄 지원이 포함되어 연 €1,059부터 이용할 수 있어요.
All-Access 가격 보기

시작할 준비가 되셨나요?

무료 체험판을 다운로드하고 AI 기능을 쓰는 사용자마다 비용이 얼마인지 확인해 보세요.