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

设置

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

# Set MLflow tracking URI if you have MLflow Tracking Server running
os.environ["MLFLOW_TRACKING_URI"] = ""
os.environ["OPENAI_API_KEY"] = ""

MLflow 跟踪

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

# Optional: Set an experiment to organize your traces
mlflow.set_experiment("LangChain MLflow Integration")

# Enable tracing
mlflow.langchain.autolog()

示例:跟踪 LangChain 应用程序

以下是一个完整的示例,展示了 MLflow 跟踪与 LangChain 的配合使用
import mlflow
from langchain_core.output_parsers import StrOutputParser
from langchain_core.prompts import ChatPromptTemplate
from langchain_openai import ChatOpenAI

# Enable MLflow tracing
mlflow.langchain.autolog()

# Create a simple chain
llm = ChatOpenAI(model_name="gpt-4o")

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

chain = prompt | llm | StrOutputParser()

# Run the chain
result = chain.invoke(
    {
        "input_language": "English",
        "output_language": "German",
        "input": "I love programming.",
    }
)
要查看跟踪,请在终端中运行 mlflow ui,然后导航到 MLflow UI 中的“跟踪”选项卡。

示例:跟踪 LangGraph 应用程序

MLflow 还支持跟踪 LangGraph 应用程序
import mlflow
from langchain.tools import tool
from langchain.agents import create_agent


# Enable MLflow tracing
mlflow.langchain.autolog()


# Define a tool
@tool
def count_words(text: str) -> str:
    """Counts the number of words in a text."""
    word_count = len(text.split())
    return f"This text contains {word_count} words."


# Create a LangGraph agent
llm = ChatOpenAI(model="gpt-4o")
tools = [count_words]
graph = create_agent(llm, tools)

# Run the agent
result = graph.invoke(
    {"messages": [{"role": "user", "content": "Write me a 71-word story about a cat."}]}
)
要查看跟踪,请在终端中运行 mlflow ui,然后导航到 MLflow UI 中的“跟踪”选项卡。

资源

有关将 MLflow 与 LangChain 结合使用的更多信息,请访问
以编程方式连接这些文档到 Claude、VSCode 等,通过 MCP 获取实时答案。
© . This site is unofficial and not affiliated with LangChain, Inc.