Langfuse SDK

Langfuse SDK

Langfuse의 패스스루 엔드포인트를 소개할게요. Langfuse 엔드포인트를 LiteLLM 가상 키(Virtual Key)로 인증하며 호출할 수 있는 기능이에요. 베이스 URL만 바꾸면 돼서 정말 간단합니다.

https://us.cloud.langfuse.comLITELLM_PROXY_BASE_URL/langfuse로 바꾸면 끝이에요 🚀

출처: 문서

본문

사용 예시 (Example Usage)

Langfuse Python SDK를 프록시로 연결하는 예시예요. 패스스루 방식이라 별도 공개 키 없이 host만 프록시로 지정하면 돼요.

from langfuse import Langfuse
langfuse = Langfuse(
    host="http://localhost:4000/langfuse", # your litellm proxy endpoint
    public_key="anything",        # no key required since this is a pass through
    secret_key="LITELLM_VIRTUAL_KEY",        # no key required since this is a pass through
)
print("sending langfuse trace request")
trace = langfuse.trace(name="test-trace-litellm-proxy-passthrough")
print("flushing langfuse request")
langfuse.flush()
print("flushed langfuse request")

모든 Langfuse 엔드포인트를 지원해요. 전체 엔드포인트 목록은 Langfuse API 참조에서 확인할 수 있어요.

빠른 시작 (Quick Start)

Langfuse에 trace를 기록해 볼게요.

먼저 Langfuse 공개/비밀 키를 환경 변수로 설정해요.

export LANGFUSE_PUBLIC_KEY=""
export LANGFUSE_SECRET_KEY=""

LiteLLM 프록시를 실행해요.

litellm
# RUNNING on http://0.0.0.0:4000

이제 trace를 기록해 봐요.

from langfuse import Langfuse
langfuse = Langfuse(
    host="http://localhost:4000/langfuse", # your litellm proxy endpoint
    public_key="anything",        # no key required since this is a pass through
    secret_key="anything",        # no key required since this is a pass through
)
print("sending langfuse trace request")
trace = langfuse.trace(name="test-trace-litellm-proxy-passthrough")
print("flushing langfuse request")
langfuse.flush()
print("flushed langfuse request")

고급: 가상 키(Virtual Keys)와 함께 사용하기

사전 준비사항으로 DB가 설정된 프록시가 필요해요. 이 방식을 쓰면 개발자에게 Langfuse 원본 키를 직접 주지 않으면서도 Langfuse 엔드포인트를 사용하게 해줄 수 있어요.

사용법 (Usage)

환경 변수를 설정해요.

export DATABASE_URL=""
export LITELLM_MASTER_KEY=""
export LANGFUSE_PUBLIC_KEY=""
export LANGFUSE_SECRET_KEY=""

프록시를 실행해요.

litellm
# RUNNING on http://0.0.0.0:4000

가상 키를 생성해요.

curl -X POST 'http://0.0.0.0:4000/key/generate' \
-H "Authorization: Bearer ***" \
-H 'Content-Type: application/json' \
-d '{}'

예상 응답은 다음과 같아요.

{
    ...
    "key": "sk-<virtual-key>"
}

이제 가상 키로 trace를 기록해 봐요.

from langfuse import Langfuse
langfuse = Langfuse(
    host="http://localhost:4000/langfuse", # your litellm proxy endpoint
    public_key="anything",        # no key required since this is a pass through
    secret_key="sk-<your-litellm-api-key>",        # no key required since this is a pass through
)
print("sending langfuse trace request")
trace = langfuse.trace(name="test-trace-litellm-proxy-passthrough")
print("flushing langfuse request")
langfuse.flush()
print("flushed langfuse request")

고급: 키/팀별로 별도 Langfuse 프로젝트에 기록하기

키나 팀별로 서로 다른 Langfuse 프로젝트에 로그를 남기고 싶다면 팀 로깅(Team Logging) 문서를 참고해 주세요.

더 알아보기 (Learn more)