Langfuse란 무엇입니까?
Langfuse는 팀이 LLM 애플리케이션을 함께 디버깅하고, 분석하며, 반복적으로 개선할 수 있도록 지원하는 오픈 소스 LLM 엔지니어링 플랫폼입니다. ClickHouse 생태계의 일부이며, 확장 가능하고 고성능인 관측성 백엔드를 제공하기 위해 핵심적으로 ClickHouse를 사용합니다.
ClickHouse의 열 지향 스토리지와 빠른 분석 기능을 활용해 Langfuse는 낮은 지연 시간으로 수십억 개의 트레이스와 이벤트를 처리할 수 있으므로, 처리량이 높은 프로덕션 워크로드에 적합합니다.
왜 Langfuse를 선택해야 하나요?
- 오픈 소스: 맞춤형 통합을 위한 공개 API를 제공하는 완전한 오픈 소스
- 프로덕션 최적화: 성능 오버헤드를 최소화하도록 설계
- 최고 수준의 SDK: Python 및 JavaScript용 네이티브 SDK
- 프레임워크 지원: OpenAI SDK, LangChain, LlamaIndex 등 널리 사용되는 프레임워크와 통합
- 멀티모달: 텍스트, 이미지 및 기타 모달리티에 대한 트레이싱 지원
- 완전한 플랫폼: LLM 애플리케이션 개발 수명 주기 전반을 위한 도구 모음
배포 옵션
Langfuse는 다양한 보안 및 인프라 요구 사항에 맞춰 유연한 배포 옵션을 제공합니다.
**Langfuse Cloud**는 최적의 성능을 위해 관리형 ClickHouse 클러스터를 기반으로 운영되는 완전 관리형 서비스입니다. SOC 2 Type II 및 ISO 27001 인증을 받았으며, GDPR을 준수하고 미국(AWS us-west-2) 및 EU(AWS eu-west-1) 데이터 리전에서 사용할 수 있습니다.
자체 호스팅 Langfuse는 완전한 오픈소스(MIT 라이선스)이며, Docker 또는 Kubernetes를 사용해 자체 인프라에 무료로 배포할 수 있습니다. 관측성 데이터를 저장하기 위해 자체 ClickHouse 인스턴스를 운영하거나 ClickHouse Cloud를 사용할 수 있으므로, 데이터를 완전히 제어할 수 있습니다.
아키텍처
Langfuse는 오픈 소스 구성 요소만 사용하며, 로컬, 클라우드 인프라 또는 온프레미스 환경에 배포할 수 있습니다:
- ClickHouse: 대규모 관측성 데이터(트레이스, 스팬, 생성, 점수)를 저장합니다. 대시보드용 빠른 집계 및 분석을 지원합니다.
- Postgres: 사용자 계정, 프로젝트 구성, 프롬프트 정의와 같은 트랜잭션 데이터를 저장합니다.
- Redis: 이벤트 큐잉과 캐싱을 처리합니다.
- S3/Blob Storage: 대용량 페이로드와 원시 이벤트 데이터를 저장합니다.
flowchart TB
User["UI, API, SDKs"]
subgraph vpc["VPC"]
Web["Web Server<br/>(langfuse/langfuse)"]
Worker["Async Worker<br/>(langfuse/worker)"]
Postgres@{ img: "https://langfuse.com/images/logos/postgres_icon.svg", label: "Postgres - OLTP\n(Transactional Data)", pos: "b", w: 60, h: 60, constraint: "on" }
Cache@{ img: "https://langfuse.com/images/logos/redis_icon.png", label: "Redis\n(Cache, Queue)", pos: "b", w: 60, h: 60, constraint: "on" }
ClickHouse@{ img: "https://langfuse.com/images/logos/clickhouse_icon.svg", label: "ClickHouse - OLAP\n(Observability Data)", pos: "b", w: 60, h: 60, constraint: "on" }
S3@{ img: "https://langfuse.com/images/logos/s3_icon.svg", label: "S3 / Blob Storage\n(Raw events, multi-modal attachments)", pos: "b", w: 60, h: 60, constraint: "on" }
end
LLM["LLM API/Gateway<br/>(optional; BYO; can be same VPC or VPC-peered)"]
User --> Web
Web --> S3
Web --> Postgres
Web --> Cache
Web --> ClickHouse
Web -..->|"optional for playground"| LLM
Cache --> Worker
Worker --> ClickHouse
Worker --> Postgres
Worker --> S3
Worker -..->|"optional for evals"| LLM
기능
관측성
관측성은 LLM 애플리케이션을 이해하고 디버깅하는 데 필수적입니다. 기존 소프트웨어와 달리 LLM 애플리케이션은 복잡하고 비결정적인 상호작용을 포함하므로 모니터링과 디버깅이 어려울 수 있습니다. Langfuse는 애플리케이션에서 정확히 무슨 일이 일어나는지 파악할 수 있도록 포괄적인 트레이싱 기능을 제공합니다.
📹 더 알아보고 싶으신가요? Langfuse 관측성의 엔드투엔드 워크스루 보기에서 애플리케이션에 통합하는 방법까지 확인해 보세요.
트레이스를 사용하면 앱에서 발생하는 모든 LLM 호출과 기타 관련 로직을 추적할 수 있습니다.
세션을 사용하면 여러 단계로 이루어진 대화나 에이전트형 워크플로를 추적할 수 있습니다.
타임라인 보기를 살펴보며 지연 시간 문제를 디버깅하세요.
각 사용자별 비용과 사용량을 모니터링할 수 있도록 userId를 추가하세요. 필요하면 시스템에서 이 보기로 바로 이동하는 딥 링크를 만들 수도 있습니다.
LLM 에이전트는 복잡한 에이전트형 워크플로의 흐름을 보여주기 위해 그래프로 시각화할 수 있습니다.
대시보드에서 품질, 비용, 지연 시간 메트릭을 확인하여 LLM 애플리케이션을 모니터링하세요.
프롬프트 관리
프롬프트 관리는 효과적인 LLM 애플리케이션을 구축하는 데 매우 중요합니다. Langfuse는 개발 라이프사이클 전반에서 프롬프트를 관리하고, 버전을 관리하며, 최적화할 수 있도록 다양한 도구를 제공합니다.
📹 자세히 알아보고 싶으신가요? Langfuse Prompt Management와 이를 애플리케이션에 통합하는 방법을 다루는 엔드투엔드 안내 영상 보기.
UI, SDKs 또는 API를 통해 새 프롬프트를 생성합니다.
UI, API 또는 SDKs를 통해 프롬프트를 공동으로 버전 관리하고 편집합니다.
코드 변경 없이 레이블을 통해 프롬프트를 프로덕션 또는 원하는 환경에 배포합니다.
프롬프트의 여러 버전에서 지연 시간, 비용, 평가 메트릭을 비교합니다.
Playground에서 프롬프트를 즉시 테스트합니다.
프롬프트를 트레이스와 연결해 LLM 애플리케이션 맥락에서 어떤 성능을 보이는지 파악합니다.
시간이 지나면서 프롬프트가 어떻게 변화하는지 파악할 수 있도록 변경 사항을 추적합니다.
평가 및 데이터셋
평가는 LLM 애플리케이션의 품질과 신뢰성을 보장하는 데 매우 중요합니다. Langfuse는 개발 환경에서 테스트하든 프로덕션 성능을 모니터링하든, 요구 사항에 맞게 활용할 수 있는 유연한 평가 도구를 제공합니다.
📹 더 알아보려면 Langfuse Evaluation의 전체 워크스루를 확인하십시오. LLM 애플리케이션을 개선하는 활용 방법도 함께 살펴볼 수 있습니다.
Langfuse 대시보드에서 평가 결과를 시각화합니다.
사용자 피드백을 수집합니다. Browser SDK를 통해 프런트엔드에서, SDKs 또는 API를 통해 서버 측에서 수집할 수 있습니다. 동영상에는 예시 애플리케이션도 포함되어 있습니다.
프로덕션 또는 개발 트레이스에서 완전 관리형 LLM-as-a-judge 평가를 실행합니다. 애플리케이션의 모든 단계에 적용하여 단계별 평가를 수행할 수 있습니다.
사용자 인터페이스에서 데이터셋을 대상으로 프롬프트와 모델을 직접 평가합니다. 사용자 정의 코드는 필요하지 않습니다.
어노테이션 큐를 통해 사람의 어노테이션을 수집하여 평가 워크플로의 기준선을 마련합니다.
사용자 정의 평가 결과를 추가합니다. 숫자, 불리언, 범주형 값을 지원합니다.
POST /api/public/scoresPython 또는 JS SDK를 통해 점수를 추가합니다.
langfuse.score(
trace_id="123",
name="my_custom_evaluator",
value=0.5,
)빠른 시작
몇 분 만에 Langfuse를 시작할 수 있습니다. 현재 필요에 가장 적합한 옵션을 선택하세요: