将 Langfuse 与 CrewAI 集成

本文档演示了如何通过 OpenTelemetry 使用 OpenLit SDK 将 LangfuseCrewAI 集成。完成本文档后,您将能够使用 Langfuse 跟踪您的 CrewAI 应用程序,以改进可观测性和调试。

什么是 Langfuse? Langfuse 是一个开源的 LLM 工程平台。它为 LLM 应用程序提供跟踪和监控功能,帮助开发者调试、分析和优化其 AI 系统。Langfuse 通过原生集成、OpenTelemetry 和 API/SDK 与各种工具和框架集成。

开始使用

我们将通过一个简单的示例,演示如何使用 CrewAI 并通过 OpenTelemetry 使用 OpenLit 将其与 Langfuse 集成。

步骤 1: 安装依赖

%pip install langfuse openlit crewai crewai_tools

步骤 2: 设置环境变量

设置您的 Langfuse API 密钥并配置 OpenTelemetry 导出设置,将跟踪发送到 Langfuse。有关 Langfuse OpenTelemetry 端点 /api/public/otel 和身份验证的更多信息,请参阅 Langfuse OpenTelemetry 文档

import os
import base64

LANGFUSE_PUBLIC_KEY="pk-lf-..."
LANGFUSE_SECRET_KEY="sk-lf-..."
LANGFUSE_AUTH=base64.b64encode(f"{LANGFUSE_PUBLIC_KEY}:{LANGFUSE_SECRET_KEY}".encode()).decode()

os.environ["OTEL_EXPORTER_OTLP_ENDPOINT"] = "https://cloud.langfuse.com/api/public/otel" # EU data region
# os.environ["OTEL_EXPORTER_OTLP_ENDPOINT"] = "https://us.cloud.langfuse.com/api/public/otel" # US data region
os.environ["OTEL_EXPORTER_OTLP_HEADERS"] = f"Authorization=Basic {LANGFUSE_AUTH}"

# your openai key
os.environ["OPENAI_API_KEY"] = "sk-..."

步骤 3: 初始化 OpenLit

初始化 OpenLit OpenTelemetry 仪器化 SDK 以开始捕获 OpenTelemetry 跟踪。

import openlit

openlit.init()

步骤 4: 创建简单的 CrewAI 应用程序

我们将创建一个简单的 CrewAI 应用程序,其中多个 agents 协作回答用户的问题。

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 中查看跟踪

运行 agent 后,您可以在 Langfuse 中查看 CrewAI 应用程序生成的跟踪。您将看到 LLM 交互的详细步骤,这有助于您调试和优化 AI agent。

Langfuse 中的公共示例跟踪

参考资料