自动追踪
MLflow 追踪与各种 GenAI 库集成,为每个库(以及它们的组合!)提供了一行代码自动追踪体验。本页展示了将 MLflow 与流行 GenAI 库集成的详细示例。

支持的集成
每个集成都会根据您对创作框架/SDK 的实现,自动捕获您的应用程序逻辑和中间步骤。点击您库的标志以查看详细的集成指南。
缺少您最喜欢的库?
列表中缺少您最喜欢的库?考虑为 MLflow 追踪贡献或向我们的 Github 仓库提交功能请求。
高级用法
结合手动和自动追踪
@mlflow.trace
装饰器可以与自动追踪结合使用,以创建强大的集成追踪。这对于以下情况特别有用:
- 🔄 复杂工作流涉及多个 LLM 调用
- 🤖 多智能体系统,其中不同智能体使用不同的 LLM 提供商
- 🔗 将多个 LLM 调用链式连接,并在它们之间加入自定义逻辑
这是一个结合 OpenAI 自动追踪和手动定义跨度的简单示例
import mlflow
import openai
from mlflow.entities import SpanType
mlflow.openai.autolog()
@mlflow.trace(span_type=SpanType.CHAIN)
def run(question):
messages = build_messages(question)
# MLflow automatically generates a span for OpenAI invocation
response = openai.OpenAI().chat.completions.create(
model="gpt-4o-mini",
max_tokens=100,
messages=messages,
)
return parse_response(response)
@mlflow.trace
def build_messages(question):
return [
{"role": "system", "content": "You are a helpful chatbot."},
{"role": "user", "content": question},
]
@mlflow.trace
def parse_response(response):
return response.choices[0].message.content
run("What is MLflow?")
运行此代码会生成一个结合了手动跨度和 OpenAI 自动追踪的单一追踪。
多框架示例
您还可以在单个追踪中结合不同的 LLM 提供商。例如
注意
此示例除了基本要求外,还需要安装 LangChain
pip install --upgrade langchain langchain-openai
import mlflow
import openai
from mlflow.entities import SpanType
from langchain_openai import ChatOpenAI
from langchain_core.prompts import ChatPromptTemplate
# Enable auto-tracing for both OpenAI and LangChain
mlflow.openai.autolog()
mlflow.langchain.autolog()
@mlflow.trace(span_type=SpanType.CHAIN)
def multi_provider_workflow(query: str):
# First, use OpenAI directly for initial processing
analysis = openai.OpenAI().chat.completions.create(
model="gpt-4o-mini",
messages=[
{"role": "system", "content": "Analyze the query and extract key topics."},
{"role": "user", "content": query},
],
)
topics = analysis.choices[0].message.content
# Then use LangChain for structured processing
llm = ChatOpenAI(model="gpt-4o-mini")
prompt = ChatPromptTemplate.from_template(
"Based on these topics: {topics}\nGenerate a detailed response to: {query}"
)
chain = prompt | llm
response = chain.invoke({"topics": topics, "query": query})
return response
# Run the function
result = multi_provider_workflow("Explain quantum computing")
禁用追踪
要禁用追踪,mlflow.tracing.disable()
API 将停止从 MLflow 内部收集追踪数据,并且不会将任何有关追踪的数据记录到 MLflow 追踪服务。
要启用追踪(如果曾暂时禁用),mlflow.tracing.enable()
API 将重新启用已调用的已检测模型的追踪功能。
后续步骤
手动追踪:了解如何向您的应用程序逻辑添加自定义追踪
集成指南:探索特定库和框架的详细指南
查看追踪:了解如何在 MLflow UI 中探索和分析您的追踪
查询追踪:以编程方式搜索和检索追踪数据以进行分析