Langfuse와 CrewAI 통합하기

이 노트북은 OpenLit SDK를 통해 OpenTelemetry를 사용하여 LangfuseCrewAI와 통합하는 방법을 보여줍니다. 이 노트북을 마치면 Langfuse를 사용해 CrewAI 애플리케이션을 추적하여 가시성과 디버깅을 향상시킬 수 있습니다.
Langfuse란 무엇인가요? Langfuse는 오픈 소스 LLM 엔지니어링 플랫폼입니다. 이는 LLM 애플리케이션을 위한 추적 및 모니터링 기능을 제공하며, 개발자들이 AI 시스템을 디버그, 분석 및 최적화하는 데 도움을 줍니다. Langfuse는 네이티브 통합, OpenTelemetry, API/SDK를 통해 다양한 도구 및 프레임워크와 연동됩니다.
Langfuse Overview Video

시작하기

CrewAI를 사용하고 OpenLit을 통해 OpenTelemetry로 Langfuse와 통합하는 간단한 예제를 함께 살펴보겠습니다.

1단계: 의존성 설치

%pip install langfuse openlit crewai crewai_tools

2단계: 환경 변수 설정

Langfuse API 키를 설정하고 OpenTelemetry 내보내기 설정을 구성하여 trace를 Langfuse로 전송합니다. Langfuse OpenTelemetry 엔드포인트 /api/public/otel 및 인증과 관련된 자세한 내용은 Langfuse OpenTelemetry 문서를 참고하십시오.
import os
 
# 프로젝트에 대한 키를 프로젝트 설정 페이지에서 확인하세요: 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 지역
# os.environ["LANGFUSE_HOST"] = "https://us.cloud.langfuse.com" # 🇺🇸 US 지역
 
 
# OpenAI 키
os.environ["OPENAI_API_KEY"] = "sk-proj-..."
환경 변수를 설정하면 이제 Langfuse 클라이언트를 초기화할 수 있습니다. get_client()는 환경 변수에 제공된 자격 증명을 사용하여 Langfuse 클라이언트를 초기화합니다.
from langfuse import get_client
 
langfuse = get_client()
 
# 연결 확인
if langfuse.auth_check():
    print("Langfuse 클라이언트가 인증되었으며 준비되었습니다!")
else:
    print("인증에 실패했습니다. 자격 증명과 호스트를 확인하세요.")

3단계: OpenLit 초기화

OpenLit OpenTelemetry 계측 SDK를 초기화하여 OpenTelemetry 추적을 수집하기 시작합니다.
import openlit

openlit.init()

4단계: 간단한 CrewAI 애플리케이션 만들기

여러 에이전트가 협력하여 사용자의 질문에 답하는 간단한 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
)

5단계: Langfuse에서 트레이스 확인하기

에이전트를 실행한 후 Langfuse에서 CrewAI 애플리케이션에서 생성된 트레이스를 확인할 수 있습니다. 여기서 LLM 상호작용의 자세한 단계들을 볼 수 있으며, 이를 통해 AI 에이전트의 디버깅 및 최적화에 도움이 됩니다. Langfuse의 CrewAI 예시 트레이스 Langfuse의 공개 예시 트레이스

참고 자료