Langfuse 통합
Langfuse 통합 (Langfuse Integration)
이 문서는 OpenLit SDK를 통한 OpenTelemetry를 사용해 Langfuse를 CrewAI와 통합하는 방법을 보여줘요. 이 문서를 끝내면 CrewAI 애플리케이션을 Langfuse로 트레이스해 옵저버빌리티와 디버깅을 개선할 수 있어요.
출처: 문서
본문
Integrate Langfuse with CrewAI
이 노트북은 OpenLit SDK를 통한 OpenTelemetry로 Langfuse를 CrewAI와 통합하는 방법을 보여줘요. 이 노트북을 끝내면 CrewAI 애플리케이션을 Langfuse로 트레이스해 옵저버빌리티와 디버깅을 개선할 수 있어요.
Langfuse란 무엇인가요? Langfuse는 오픈소스 LLM 엔지니어링 플랫폼이에요. LLM 애플리케이션을 위한 트레이싱·모니터링 기능을 제공해 개발자가 AI 시스템을 디버그·분석·최적화할 수 있게 도와줘요. Langfuse는 네이티브 통합, OpenTelemetry, APIs/SDKs를 통해 다양한 툴과 프레임워크와 통합돼요.
Get Started (시작하기)
CrewAI를 사용하고 OpenLit으로 Langfuse와 통합하는 간단한 예시를 함께 살펴볼게요.
Step 1: Install Dependencies
%pip install langfuse openlit crewai crewai_tools
Step 2: Set Up Environment Variables
Langfuse API 키를 설정하고, 트레이스를 Langfuse로 보내도록 OpenTelemetry export 설정을 구성하세요. Langfuse OpenTelemetry 엔드포인트 /api/public/otel과 인증에 대한 자세한 내용은 Langfuse OpenTelemetry Docs를 참조하세요.
import os
# Get keys for your project from the project settings page: https://cloud.langfuse.com
os.environ["LANGFUSE_PUBLIC_KEY"] = "pk-lf-..."
os.environ["LANGFUSE_SECRET_KEY"] = "sk-lf-..."
os.environ["LANGFUSE_HOST"] = "https://cloud.langfuse.com" # 🇪🇺 EU region
# os.environ["LANGFUSE_HOST"] = "https://us.cloud.langfuse.com" # 🇺🇸 US region
# Your OpenAI key
os.environ["OPENAI_API_KEY"] = "sk-proj-..."
환경 변수를 설정했다면 이제 Langfuse 클라이언트를 초기화할 수 있어요. get_client()는 환경 변수에 제공된 자격 증명으로 Langfuse 클라이언트를 초기화해요.
from langfuse import get_client
langfuse = get_client()
# Verify connection
if langfuse.auth_check():
print("Langfuse client is authenticated and ready!")
else:
print("Authentication failed. Please check your credentials and host.")
Step 3: Initialize OpenLit
OpenTelemetry 트레이스를 캡처하기 시작하려면 OpenLit OpenTelemetry 계측 SDK를 초기화하세요.
import openlit
openlit.init()
Step 4: Create a Simple CrewAI Application
여러 에이전트가 협력해 사용자의 질문에 답하는 간단한 CrewAI 애플리케이션을 만들어볼게요.
from crewai import Agent, Task, Crew
from crewai_tools import (
WebsiteSearchTool
)
web_rag_tool = WebsiteSearchTool()
writer = Agent(
role="Writer",
goal="You make math engaging and understandable for young children through poetry",
backstory="You're an expert in writing haikus but you know nothing of math.",
tools=[web_rag_tool],
)
task = Task(description=("What is {multiplication}?"),
expected_output=("Compose a haiku that includes the answer."),
agent=writer)
crew = Crew(
agents=[writer],
tasks=[task],
share_crew=False
)
Step 5: See Traces in Langfuse
에이전트를 실행한 후 Langfuse에서 CrewAI 애플리케이션이 생성한 트레이스를 볼 수 있어요. LLM 상호작용의 상세한 단계를 볼 수 있고, 이는 AI 에이전트를 디버그하고 최적화하는 데 도움이 돼요.
References (참조)
- Langfuse OpenTelemetry Docs