피드로 돌아가기
Tracking token usage across OpenAI, Anthropic, and Gemini: every streaming gotcha I hit
Dev.toDev.to
AI/ML

LLM Provider별 Token 집계 메커니즘 파편화 해결을 통한 비용 정밀 측정

Tracking token usage across OpenAI, Anthropic, and Gemini: every streaming gotcha I hit

SPANLENS2026년 6월 20일7intermediate

Context

OpenAI, Anthropic, Gemini 등 서로 다른 LLM Provider의 Token Usage 보고 방식 차이로 인한 비용 추적 부정확성 발생. 특히 Streaming 응답 시 Usage 데이터의 위치와 Cache 계산 방식이 상이하여 단순 추상화 모델 적용 시 심각한 과금 데이터 왜곡 가능성 존재.

Technical Solution

  • Provider별 독립 Parser 우선 구현 후 공통 인터페이스로 통합하는 Bottom-up 추상화 전략 채택
  • OpenAI의 Final Chunk 내 include_usage 플래그 기반 Usage 추출 로직 구현
  • Anthropic의 message_startmessage_delta 이벤트 분산 데이터를 결합하는 Stitching 프로세스 설계
  • Cache Token의 포함 여부가 상이한 Provider별 계산식(OpenAI: Subset / Anthropic: Separate)을 정규화하여 Total Input Token 산출
  • Gemini의 SSE 및 JSON Array 듀얼 스트림 포맷 대응을 위한 Fallback 파싱 체인 구축
  • 요청 값 대신 응답에 포함된 실제 Serving Tier를 기준으로 과금 데이터를 확정하는 신뢰 모델 적용

- Streaming API 사용 시 Provider별 Usage 데이터의 전송 시점과 위치를 우선 확인하십시오. - Prompt Caching 적용 시 Input Token에 Cache가 포함된 수치인지, 별도 합산이 필요한 수치인지 검증하십시오. - LLM 통합 인터페이스 설계 시 조기 추상화(Early Abstraction)를 지양하고 Provider별 전용 Parser를 먼저 구현하십시오. - 비용 관련 수치는 Type Error가 발생하지 않으므로, 실제 빌링 데이터와 대조하는 정량적 검증 테스트를 반드시 포함하십시오.

원문 읽기