Skip to main content
MLflow 是一个多功能的开源平台,用于管理机器学习和生成式 AI 生命周期中的工作流和工件。它内置了许多流行 AI 和 ML 库的集成,但也可与任何库、算法或部署工具配合使用。
MLflow 的 LangChain 集成 提供以下功能:
  • 追踪:通过一行代码(mlflow.langchain.autolog())可视化数据在您的 LangChain 组件中的流转过程。
  • 实验跟踪:记录 LangChain 运行过程中的工件、代码和指标。
  • 模型管理:通过依赖跟踪对 LangChain 应用进行版本控制与部署。
  • 评估:衡量 LangChain 应用的性能。
注意:MLflow 追踪功能适用于 MLflow 2.14.0 及更高版本。 本简短指南重点介绍 MLflow 针对 LangChain 和 LangGraph 应用的追踪功能。您将了解如何通过一行代码启用追踪,并查看应用的执行流程。如需了解 MLflow 的其他功能并探索更多教程,请参阅 LangChain 的 MLflow 文档。如果您是 MLflow 的新用户,请查阅 MLflow 入门指南

环境配置

要开始使用 LangChain 的 MLflow 追踪功能,请安装 MLflow Python 包。我们还将使用 langchain-openai 包。
pip install mlflow langchain-openai langgraph -qU
接下来,设置 MLflow 跟踪 URI 和 OpenAI API 密钥。
import os

# 如果您正在运行 MLflow Tracking Server,请设置 MLflow 跟踪 URI
os.environ["MLFLOW_TRACKING_URI"] = ""
os.environ["OPENAI_API_KEY"] = ""

MLflow 追踪

MLflow 的追踪功能可帮助您可视化 LangChain 应用的执行流程。以下是启用方法。
import mlflow

# 可选:设置一个实验以组织您的追踪数据
mlflow.set_experiment("LangChain MLflow Integration")

# 启用追踪
mlflow.langchain.autolog()

示例:追踪 LangChain 应用

以下是一个展示 LangChain 与 MLflow 追踪的完整示例:
import mlflow
from langchain_core.output_parsers import StrOutputParser
from langchain_core.prompts import ChatPromptTemplate
from langchain_openai import ChatOpenAI

# 启用 MLflow 追踪
mlflow.langchain.autolog()

# 创建简单的链式调用
llm = ChatOpenAI(model_name="gpt-4.1")

prompt = ChatPromptTemplate.from_messages(
    [
        (
            "system",
            "You are a helpful assistant that translates {input_language} to {output_language}.",
        ),
        ("human", "{input}"),
    ]
)

chain = prompt | llm | StrOutputParser()

# 运行链式调用
result = chain.invoke(
    {
        "input_language": "English",
        "output_language": "German",
        "input": "I love programming.",
    }
)
要查看追踪结果,请在终端中运行 mlflow ui,然后在 MLflow UI 中导航至“Traces”选项卡。

示例:追踪 LangGraph 应用

MLflow 还支持追踪 LangGraph 应用:
import mlflow
from langchain.tools import tool
from langchain.agents import create_agent


# 启用 MLflow 追踪
mlflow.langchain.autolog()


# 定义工具
@tool
def count_words(text: str) -> str:
    """计算文本中的单词数量。"""
    word_count = len(text.split())
    return f"This text contains {word_count} words."


# 创建 LangGraph 智能体
llm = ChatOpenAI(model="gpt-4.1")
tools = [count_words]
graph = create_agent(llm, tools)

# 运行智能体
result = graph.invoke(
    {"messages": [{"role": "user", "content": "Write me a 71-word story about a cat."}]}
)
要查看追踪结果,请在终端中运行 mlflow ui,然后在 MLflow UI 中导航至“Traces”选项卡。

资源

有关将 MLflow 与 LangChain 配合使用的更多信息,请访问: