MLflow
MLflow 是一个多功能的开源平台,用于管理机器学习和生成式 AI 生命周期中的工作流和工件。它具有与许多流行的 AI 和 ML 库的内置集成,但可以与任何库、算法或部署工具一起使用。
MLflow 的 LangChain 集成提供以下功能:
- 跟踪:使用一行代码 (
mlflow.langchain.autolog()) - 实验跟踪:记录 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
# 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 应用程序
下面是一个完整的示例,显示了使用 LangChain 进行 MLflow 跟踪:
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 中的 Traces (跟踪) 选项卡。
示例:跟踪 LangGraph 应用程序
MLflow 还支持跟踪 LangGraph 应用程序:
import mlflow
from langchain_core.tools import tool
from langgraph.prebuilt import create_react_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_react_agent(llm, tools)
# Run the agent
result = graph.invoke(
{"messages": [{"role": "user", "content": "Write me a 71-word story about a cat."}]}
)
API 参考:工具 | create_react_agent
要查看跟踪,请运行mlflow ui,然后导航到 MLflow UI 中的 Traces (跟踪) 选项卡。
资源
有关将 MLflow 与 LangChain 结合使用的更多信息,请访问: