Un gateway para saber qué producto me quema la factura de LLM (y el día que mi README mintió)

개요

LLM 기반 제품 사용 시 발생하는 불투명한 비용 문제를 해결하기 위해 구축된 게이트웨이 시스템과 개발 과정에서 발견된 README의 부정확성 문제가 제시됩니다.

주요 내용

  • LLM 비용 추적의 어려움: 여러 LLM 기반 제품(논문 검색, 이미지 처리, 비디오 생성 등)이 토큰을 소모하며 발생하는 비용을 개별적으로 추적하기 어려워, 어떤 기능이나 제품이 비용을 많이 사용하는지 파악하기 힘든 문제가 있었습니다.
  • 게이트웨이 도입: 모든 제품이 LLM 제공업체에 직접 호출하는 대신, 중간에 위치하는 단일 게이트웨이를 통해 호출하도록 구조를 변경했습니다. 이는 기존 인터페이스( /v1/chat/completions )를 유지하면서 기본 URL만 변경하는 방식으로 제품 변경을 최소화했습니다.
  • 게이트웨이의 기능:
  • 제품별 비용 정산: 각 호출에 X-Tenant-ID 헤더를 추가하여 제품별로 모델, 사용 토큰, 비용을 추적하고 기록합니다.
  • 시맨틱 캐싱: 모델 호출 전에 질문이 기존 질문과 유사한 경우, 저장된 응답을 반환하여 토큰 소모를 줄입니다.
  • 제품별 사용량 제한 (Quota): 테넌트별 소비 상한선을 설정하여 특정 제품의 과도한 사용을 방지합니다.
  • OpenRouter 활용: 게이트웨이는 특정 제공업체 대신 OpenRouter를 통해 여러 LLM 모델(Gemini, Llama, Claude 등)에 접근합니다. 이는 특정 제공업체에 종속되는 것을 방지하고, OpenRouter가 제공하지 않는 제품별 비용 상세 내역을 게이트웨이가 추가로 집계하는 역할을 합니다.
  • README의 부정확성 발견: 코드 저장소를 공개하기 위해 README를 검토하던 중, 자동 페일오버 기능이 실제로는 구현되지 않았음을 발견했습니다. 이는 의도만 있었고 코드에는 존재하지 않는 기능이었습니다.
  • README의 정정: 구현되지 않은 기능은 "로드맵" 섹션으로 이동하고, README는 현재 코드의 실제 기능을 정확하게 설명하도록 수정되었습니다. 이는 프로젝트에 대한 신뢰성을 유지하기 위함입니다.
  • 프로덕션 적용: 게이트웨이는 프로덕션 환경에서 실행 중이며, 논문 검색 서비스가 이를 먼저 적용하여 제품별 비용 추적이 가능해졌습니다. 다른 제품들도 동일한 방식으로 게이트웨이에 연결하여 비용 추적 시스템에 통합될 수 있습니다.

시사점

LLM 비용 투명성을 확보하기 위한 실질적인 아키텍처 설계와 구현 방안을 제시하며, 개발 프로젝트에서 README와 실제 코드 간의 일관성 유지의 중요성을 강조합니다.

원문 읽기 →
원문을 불러오는 중...

댓글

GitHub Discussions