콜백 (Callbacks)

콜백 (Callbacks)

LiteLLM에서는 응답의 상태에 따라 데이터를 특정 로깅·분석 프로바이더로 보내는 콜백을 붙일 수 있어요. "입력이 모델로 나가기 전에 잡고 싶다", "성공했을 때만 기록하고 싶다", "실패했을 때만 알림을 받고 싶다" 같은 요구를 각각 input/success/failure 콜백으로 나눠 처리하는 구조죠. 콜백은 LiteLLM 관측성의 가장 기본적인 뼈대가 되어 주는 개념입니다.

출처: 공식문서

세 가지 콜백 유형

LiteLLM은 input_callback, success_callback, failure_callback 세 가지를 제공해요. 이름 그대로 각각 응답의 상태에 맞춰 데이터를 보낼 대상을 지정합니다.

  • input_callback — LLM API 호출 전에 보내는 입력(또는 변환된 입력)을 추적
  • success_callback — LLM API 호출 후 성공했을 때 입력/출력을 추적
  • failure_callback — 호출이 실패했을 때 입력/출력과 예외를 추적

:::tip LiteLLM 콜백이 처음이라면요?

지원되는 콜백 연동

주요 통합으로는 Lunary, Langfuse, LangSmith, Helicone, Traceloop, Athina, Sentry, PostHog, Slack, Arize, PromptLayer가 있어요. 이 목록이 전부는 아니니, 전체 로깅 연동은 문서의 드롭다운에서 확인하세요.

빠른 시작

from litellm import completion

# set callbacks
litellm.input_callback=["sentry"] # for sentry breadcrumbing - logs the input being sent to the api
litellm.success_callback=["posthog", "helicone", "langfuse", "lunary", "athina"]
litellm.failure_callback=["sentry", "lunary", "langfuse"]

## set env variables
os.environ['LUNARY_PUBLIC_KEY'] = ""
os.environ['SENTRY_DSN'], os.environ['SENTRY_API_TRACE_RATE']= ""
os.environ['POSTHOG_API_KEY'], os.environ['POSTHOG_API_URL'] = "api-key", "api-url"
os.environ["HELICONE_API_KEY"] = ""
os.environ["TRACELOOP_API_KEY"] = ""
os.environ["LUNARY_PUBLIC_KEY"] = ""
os.environ["ATHINA_API_KEY"] = ""
os.environ["LANGFUSE_PUBLIC_KEY"] = ""
os.environ["LANGFUSE_SECRET_KEY"] = ""
os.environ["LANGFUSE_HOST"] = ""

response = completion(model="{{openai_small}}", messages=messages)

콜백을 지정한 뒤 환경 변수에 각 프로바이더의 키만 채워 주면, 이후 completion() 호출마다 매칭되는 상태의 콜백이 자동으로 발화돼요.

더 알아보기

  • 프록시 환경에서의 로깅 설정은 프록시 로깅 가이드를 참고하세요.
  • 나만의 커스텀 콜백을 만드는 방법은 커스텀 콜백 가이드에 정리되어 있어요.
  • Langfuse·LangSmith 등 개별 연동 상세는 각 통합 문서를 확인하세요.