Opik 概述

借助 Comet Opik,您可以使用全面的跟踪、自动化评估和生产就绪的仪表盘来调试、评估和监控您的 LLM 应用、RAG 系统和 Agent 工作流。

Opik Agent 仪表盘

Opik 为您的 CrewAI 应用开发的每个阶段提供全面的支持

  • 记录跟踪和跨度:自动跟踪 LLM 调用和应用逻辑,以调试和分析开发及生产系统。手动或通过编程方式注释、查看和比较跨项目的响应。
  • 评估您的 LLM 应用性能:针对自定义测试集进行评估,并运行内置评估指标,或在 SDK 或 UI 中定义您自己的指标。
  • 在您的 CI/CD 流水线中测试:使用 Opik 基于 PyTest 构建的 LLM 单元测试建立可靠的性能基线。运行在线评估以在生产环境中进行持续监控。
  • 监控和分析生产数据:了解您的模型在生产环境中对未见过数据的性能,并为新的开发迭代生成数据集。

设置

Comet 提供 Opik 平台的托管版本,您也可以在本地运行该平台。

要使用托管版本,只需创建一个免费的 Comet 账户并获取您的 API 密钥。

要在本地运行 Opik 平台,请参阅我们的安装指南了解更多信息。

在本指南中,我们将使用 CrewAI 的快速入门示例。

1

安装所需软件包

pip install crewai crewai-tools opik --upgrade
2

配置 Opik

import opik
opik.configure(use_local=False)
3

准备环境

首先,我们将 LLM 提供商的 API 密钥设置为环境变量

import os
import getpass

if "OPENAI_API_KEY" not in os.environ:
os.environ["OPENAI_API_KEY"] = getpass.getpass("Enter your OpenAI API key: ")
4

使用 CrewAI

第一步是创建我们的项目。我们将使用 CrewAI 文档中的一个示例

from crewai import Agent, Crew, Task, Process


class YourCrewName:
    def agent_one(self) -> Agent:
        return Agent(
            role="Data Analyst",
            goal="Analyze data trends in the market",
            backstory="An experienced data analyst with a background in economics",
            verbose=True,
        )

    def agent_two(self) -> Agent:
        return Agent(
            role="Market Researcher",
            goal="Gather information on market dynamics",
            backstory="A diligent researcher with a keen eye for detail",
            verbose=True,
        )

    def task_one(self) -> Task:
        return Task(
            name="Collect Data Task",
            description="Collect recent market data and identify trends.",
            expected_output="A report summarizing key trends in the market.",
            agent=self.agent_one(),
        )

    def task_two(self) -> Task:
        return Task(
            name="Market Research Task",
            description="Research factors affecting market dynamics.",
            expected_output="An analysis of factors influencing the market.",
            agent=self.agent_two(),
        )

    def crew(self) -> Crew:
        return Crew(
            agents=[self.agent_one(), self.agent_two()],
            tasks=[self.task_one(), self.task_two()],
            process=Process.sequential,
            verbose=True,
        )

现在我们可以导入 Opik 的跟踪器并运行我们的 Crew

from opik.integrations.crewai import track_crewai

track_crewai(project_name="crewai-integration-demo")

my_crew = YourCrewName().crew()
result = my_crew.kickoff()

print(result)

运行 CrewAI 应用后,访问 Opik 应用以查看

  • LLM 跟踪、跨度及其元数据
  • Agent 交互和任务执行流程
  • 性能指标,如延迟和 token 使用量
  • 评估指标(内置或自定义)

资源