운영에서는 "이 호출이 얼마였나, 어디서 실패했나"를 알아야 한다. LiteLLM은 응답의 토큰으로 달러 비용을 계산하고, 콜백으로 Langfuse·Datadog·S3 같은 관측 도구에 모든 호출을 자동 전송한다.
이 강의 목표는 호출별 비용을 구하고, 성공·실패 콜백과 커스텀 로거를 붙이는 것이다.
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
댓글은 운영자만 작성할 수 있어요.