跳到主要内容

追踪生成式AI应用(Notebook)

本快速入门指南将帮助您在将Jupyter Notebook作为开发环境时,把您的生成式AI应用与MLflow追踪集成。如果您使用本地IDE,请改用IDE快速入门指南

您将实现什么

完成本教程后,您将拥有

  • 一个已与您的生成式AI应用关联MLflow实验的Jupyter Notebook
  • 使用MLflow追踪来检测您的应用。

先决条件

  • Python环境:安装了pip的Python 3.8+
  • Jupyter Notebook:可访问Jupyter Notebook或JupyterLab
  • OpenAI API密钥:可访问OpenAI API

步骤1:创建Jupyter Notebook

注意

创建Jupyter Notebook并设置MLflow实验将作为您的生成式AI应用的容器。在数据模型部分了解有关实验及其内容的更多信息。

  1. 打开Jupyter Notebook或JupyterLab
  2. 创建一个新笔记本
  3. 创建第一个单元格以设置环境

步骤2:安装和配置MLflow

安装最新版本的MLflow,以获得生成式AI功能的最佳体验,包括最全面的追踪功能和强大的支持。

您可以通过运行以下命令在您的笔记本中安装MLflow

!pip install --upgrade "mlflow>=3.1" openai python-dotenv
MLflow版本推荐

虽然MLflow 2.15.0+版本提供了追踪功能,但强烈建议安装MLflow 3(特别是3.1或更高版本),以获取最新的生成式AI功能,包括扩展的追踪功能和强大的支持。

步骤3:检测您的应用

为您的应用选择合适的集成方式

OpenAI集成

  1. 在您的笔记本中创建一个单元格以配置环境和MLflow

    import mlflow
    import openai
    from openai import OpenAI
    import os
    from dotenv import load_dotenv

    # Load environment variables
    load_dotenv()

    # Set up MLflow experiment
    mlflow.set_experiment("genai-tracing-quickstart")
  2. 在您的笔记本中创建一个包含以下代码的单元格

    在这里,我们使用@mlflow.trace装饰器,它可以轻松追踪任何Python应用,并结合OpenAI自动检测功能来捕获对OpenAI SDK调用的详细信息。

    # Enable MLflow's autologging to instrument your application with Tracing
    mlflow.openai.autolog()

    # Create an OpenAI client
    client = OpenAI(
    api_key=os.getenv("OPENAI_API_KEY") # Set your OpenAI API key in environment
    )


    # Use the trace decorator to capture the application's entry point
    @mlflow.trace
    def my_app(input: str):
    # This call is automatically instrumented by `mlflow.openai.autolog()`
    response = client.chat.completions.create(
    model="gpt-3.5-turbo", # You can replace with gpt-4, gpt-4-turbo, etc.
    messages=[
    {
    "role": "system",
    "content": "You are a helpful assistant.",
    },
    {
    "role": "user",
    "content": input,
    },
    ],
    )
    return response.choices[0].message.content


    my_app(input="What is MLflow?")
  3. 运行笔记本单元格以执行代码

替代方案:其他LLM提供商

# For other providers, you can use manual tracing
import mlflow


@mlflow.trace
def my_custom_app(input: str):
# Your custom LLM integration here
# This could be Anthropic, Hugging Face, local models, etc.

with mlflow.start_span(name="llm_call") as span:
span.set_inputs({"input": input})

# Your LLM call here
response = "Your LLM response"

span.set_outputs({"response": response})
return response


my_custom_app(input="What is MLflow?")

步骤4:在MLflow中查看追踪

  1. 通过在您的终端中运行以下命令来启动MLflow UI

    mlflow ui
  2. 在浏览器中打开https://:5000

  3. 导航到您的实验:“genai-tracing-quickstart”

  4. 您现在将在追踪选项卡中看到生成的追踪

  5. 点击追踪以查看其详细信息

理解追踪

您刚刚创建的追踪显示了

  • 根Span:表示my_app(...)函数的输入
    • 子Span:表示OpenAI补全请求
  • 属性:包含模型名称、token数量和时间信息等元数据
  • 输入:发送给模型的消息
  • 输出:从模型接收到的响应

这个简单的追踪已经为您的应用行为提供了宝贵的洞察,例如

  • 提问了什么
  • 生成了什么响应
  • 请求花费了多长时间
  • 使用了多少token(影响成本)

后续步骤

恭喜!您已成功使用MLflow追踪和OpenAI构建了您的第一个生成式AI应用。

提示

对于RAG系统或多步代理等更复杂的应用,MLflow追踪通过揭示每个组件和步骤的内部运作方式,提供了更大的价值。