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

더 알아보기 (Learn more)