跳到主要内容

自动追踪

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

Tracing Gateway Video

支持的集成

每个集成都会根据您对创作框架/SDK 的实现,自动捕获您的应用程序逻辑和中间步骤。 单击您的库的徽标以查看详细的集成指南。

LangChain Logo
LangGraph Logo
LlamaIndex Logo
DSPy Logo
OpenAI Logo
OpenAI Logo
OpenAI Swarm Logo
DeepSeek Logo
Bedrock Logo
AutoGen Logo
AG2 Logo
Gemini Logo
LiteLLM Logo
Anthropic Logo
CrewAI Logo
Ollama Logo
Groq Logo
Groq Logo
Instructor Logo
txtai Logo
Smolagents Logo
PydanticAI Logo

以下是一些最流行的集成的快速入门示例。 请记住为您打算使用的每个库安装必要的软件包(例如,pip install openai langchain langgraph anthropic dspy)。

结合手动和自动追踪

@mlflow.trace 装饰器可以与自动追踪结合使用,以创建强大的集成追踪。 这对于以下情况特别有用:

  1. 🔄 涉及多个 LLM 调用的复杂工作流程
  2. 🤖 不同代理使用不同 LLM 提供商的多代理系统
  3. 🔗 将多个 LLM 调用与两者之间的自定义逻辑链接在一起

基本示例

这是一个将 OpenAI 自动追踪与手动定义的 spans 结合的简单示例

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?")

运行此代码会生成一个将手动 spans 与自动 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 Tracking 服务。

启用追踪(如果已暂时禁用),mlflow.tracing.enable() API 将重新启用已检测模型的追踪功能。

后续步骤

手动追踪:了解如何向您的应用程序逻辑添加自定义追踪

集成指南:探索特定库和框架的详细指南

查看追踪:了解如何在 MLflow UI 中探索和分析您的追踪

查询追踪:以编程方式搜索和检索追踪数据以进行分析