LiteLLM

LiteLLM 8강

[관측] 비용 추적 & 콜백·로깅

운영에서는 "이 호출이 얼마였나, 어디서 실패했나"를 알아야 한다. LiteLLM은 응답의 토큰으로 달러 비용을 계산하고, 콜백으로 Langfuse·Datadog·S3 같은 관측 도구에 모든 호출을 자동 전송한다.

LiteLLM 8강 구성도

이 강의 목표는 호출별 비용을 구하고, 성공·실패 콜백과 커스텀 로거를 붙이는 것이다.

1. 비용 계산

from litellm import completion, completion_cost
resp = completion(model="openai/gpt-4o", messages=msgs)
cost = completion_cost(completion_response=resp)
print(f"${cost:.6f}")                       # 이번 호출 비용
print(resp._hidden_params["response_cost"]) # 응답에 이미 계산돼 있음

completion_cost는 공급자별 단가표로 입력·출력 토큰을 달러로 환산한다.

2. 콜백으로 관측 도구 연동

import litellm
litellm.success_callback = ["langfuse", "s3"]   # 성공 호출 전송
litellm.failure_callback = ["sentry"]           # 실패 호출 전송

이제 모든 completion 호출이 지정한 대시보드에 기록된다(토큰·지연·비용·프롬프트).

3. 커스텀 콜백

원하는 처리를 직접 넣을 수도 있다.

from litellm.integrations.custom_logger import CustomLogger
import litellm

class MyLogger(CustomLogger):
    def log_success_event(self, kwargs, response_obj, start, end):
        cost = kwargs.get("response_cost", 0)
        print(f"[LOG] {kwargs['model']} · ${cost:.6f} · {end-start}")

litellm.callbacks = [MyLogger()]

핵심 명령·용어

이름
completion_cost() 호출 비용(달러) 계산
response_cost 응답에 담긴 비용
success_callback 성공 호출 전송 대상
CustomLogger 커스텀 로깅 클래스

예제

# 태그(metadata)를 붙여 팀·기능별로 비용을 귀속
resp = completion(model="openai/gpt-4o", messages=msgs,
                  metadata={"team": "network", "feature": "chatbot"})

해설) metadata는 콜백·게이트웨이 지출 로그에 그대로 실려, 나중에 팀·기능 단위로 비용을 집계할 수 있다.

댓글 0