@croco/llm-metering
v0.0.2
Published
LLM 토큰 사용량과 비용을 기록하고 quota를 강제하는 LLM 미터링 패키지입니다.
Downloads
45
Readme
@croco/llm-metering
LLM 토큰 사용량과 비용을 기록하고 quota를 강제하는 LLM 미터링 패키지입니다.
설치
pnpm add @croco/llm-metering사용법
import { LlmMeteringService } from "@croco/llm-metering";
const metering = new LlmMeteringService({
meteringService,
eventBus,
});
await metering.recordUsage({
tenantId: "tenant-123",
modelId: "gpt-4o-mini",
provider: "openai",
usage: {
promptTokens: 120,
completionTokens: 80,
totalTokens: 200,
accuracy: "EXACT",
},
idempotencyKey: "req-1",
});import { AiMetered, setLlmMeteringService } from "@croco/llm-metering";
setLlmMeteringService(metering);
class LlmFacade {
@AiMetered()
async generate(): Promise<unknown> {
return llmService.generate({ modelId: "default", prompt: "안녕" });
}
}API 레퍼런스
핵심 클래스
LlmMeteringService, 토큰 사용량 기록, 비용 계산, quota 확인을 담당합니다.PricingTable, 공급자와 모델별 가격표를 조회하고 비용을 계산합니다.
데코레이터와 유틸리티
@AiMetered, 메서드 결과에서 사용량을 추출해 자동 기록합니다.setLlmMeteringService,getLlmMeteringService, 데코레이터용 전역 서비스를 관리합니다.createMeteredAsyncIterable, 스트리밍 완료 시 사용량을 기록합니다.extractUsageFromChunk, 청크에서 usage와 모델 정보를 추출합니다.
주요 타입
LlmUsageEvent,LlmCostRecord,LlmMeteringServiceOptionsLlmUsageRecord,LlmEmbeddingUsageRecord,LlmCostBudget,ModelPricing
이벤트와 문제 타입
- 이벤트:
LlmUsageRecordedEvent,LlmCostBudgetExceededEvent - 문제 타입:
LlmMeteringRecordFailedProblem,LlmQuotaExceededProblem,LlmCostLimitExceededProblem,PricingNotFoundProblem
구현 포인트
- 내부적으로
@croco/metering-core에llm.prompt_tokens,llm.completion_tokens,llm.cost_usd같은 meter를 기록합니다. - 스트리밍 응답과 임베딩 결과 모두 같은 서비스에서 다룰 수 있습니다.
- 가격표를 커스텀하면 공급자별 실제 과금 단가를 반영할 수 있습니다.
