跳转到主要内容

Arize Phoenix 集成

本指南演示了如何使用 OpenTelemetry 通过 OpenInference SDK 将 Arize PhoenixCrewAI 集成。阅读完本指南后,您将能够追踪您的 CrewAI 代理并轻松调试它们。
什么是 Arize Phoenix? Arize Phoenix 是一个 LLM 可观测性平台,为 AI 应用程序提供追踪和评估功能。
Watch a Video Demo of Our Integration with Phoenix

开始使用

我们将通过一个简单的示例,演示如何使用 CrewAI,并通过 OpenTelemetry 使用 OpenInference 将其与 Arize Phoenix 集成。 您也可以在 Google Colab 上访问本指南。

步骤 1:安装依赖项

pip install openinference-instrumentation-crewai crewai crewai-tools arize-phoenix-otel

步骤 2:设置环境变量

设置 Phoenix Cloud API 密钥并配置 OpenTelemetry 以将追踪数据发送到 Phoenix。Phoenix Cloud 是 Arize Phoenix 的托管版本,但使用此集成并非强制要求。 您可以在此处获取免费的 Serper API 密钥。
import os
from getpass import getpass

# Get your Phoenix Cloud credentials
PHOENIX_API_KEY = getpass("🔑 Enter your Phoenix Cloud API Key: ")

# Get API keys for services
OPENAI_API_KEY = getpass("🔑 Enter your OpenAI API key: ")
SERPER_API_KEY = getpass("🔑 Enter your Serper API key: ")

# Set environment variables
os.environ["PHOENIX_CLIENT_HEADERS"] = f"api_key={PHOENIX_API_KEY}"
os.environ["PHOENIX_COLLECTOR_ENDPOINT"] = "https://app.phoenix.arize.com" # Phoenix Cloud, change this to your own endpoint if you are using a self-hosted instance
os.environ["OPENAI_API_KEY"] = OPENAI_API_KEY
os.environ["SERPER_API_KEY"] = SERPER_API_KEY

步骤 3:使用 Phoenix 初始化 OpenTelemetry

初始化 OpenInference OpenTelemetry 检测 SDK,以开始捕获追踪数据并将其发送到 Phoenix。
from phoenix.otel import register

tracer_provider = register(
    project_name="crewai-tracing-demo",
    auto_instrument=True,
)

步骤 4:创建 CrewAI 应用程序

我们将创建一个 CrewAI 应用程序,其中两个代理协作研究并撰写一篇关于人工智能进展的博客文章。
from crewai import Agent, Crew, Process, Task
from crewai_tools import SerperDevTool
from openinference.instrumentation.crewai import CrewAIInstrumentor
from phoenix.otel import register

# setup monitoring for your crew
tracer_provider = register(
    endpoint="https://:6006/v1/traces")
CrewAIInstrumentor().instrument(skip_dep_check=True, tracer_provider=tracer_provider)
search_tool = SerperDevTool()

# Define your agents with roles and goals
researcher = Agent(
    role="Senior Research Analyst",
    goal="Uncover cutting-edge developments in AI and data science",
    backstory="""You work at a leading tech think tank.
    Your expertise lies in identifying emerging trends.
    You have a knack for dissecting complex data and presenting actionable insights.""",
    verbose=True,
    allow_delegation=False,
    # You can pass an optional llm attribute specifying what model you wanna use.
    # llm=ChatOpenAI(model_name="gpt-3.5", temperature=0.7),
    tools=[search_tool],
)
writer = Agent(
    role="Tech Content Strategist",
    goal="Craft compelling content on tech advancements",
    backstory="""You are a renowned Content Strategist, known for your insightful and engaging articles.
    You transform complex concepts into compelling narratives.""",
    verbose=True,
    allow_delegation=True,
)

# Create tasks for your agents
task1 = Task(
    description="""Conduct a comprehensive analysis of the latest advancements in AI in 2024.
    Identify key trends, breakthrough technologies, and potential industry impacts.""",
    expected_output="Full analysis report in bullet points",
    agent=researcher,
)

task2 = Task(
    description="""Using the insights provided, develop an engaging blog
    post that highlights the most significant AI advancements.
    Your post should be informative yet accessible, catering to a tech-savvy audience.
    Make it sound cool, avoid complex words so it doesn't sound like AI.""",
    expected_output="Full blog post of at least 4 paragraphs",
    agent=writer,
)

# Instantiate your crew with a sequential process
crew = Crew(
    agents=[researcher, writer], tasks=[task1, task2], verbose=1, process=Process.sequential
)

# Get your crew to work!
result = crew.kickoff()

print("######################")
print(result)

步骤 5:在 Phoenix 中查看追踪数据

运行代理后,您可以在 Phoenix 中查看由 CrewAI 应用程序生成的追踪数据。您应该能看到代理交互和 LLM 调用的详细步骤,这可以帮助您调试和优化您的 AI 代理。 登录您的 Phoenix Cloud 账户,并导航到您在 project_name 参数中指定的项目。您将看到一个包含所有代理交互、工具使用和 LLM 调用的追踪时间线视图。 Phoenix 中显示代理交互的追踪示例

版本兼容性信息

  • Python 3.8+
  • CrewAI >= 0.86.0
  • Arize Phoenix >= 7.0.1
  • OpenTelemetry SDK >= 1.31.0

参考资料