Traçage automatique et intégrations
Un seul appel — mlflow.<framework>.autolog() — active le traçage pour plus de 30 frameworks et fournisseurs de LLM pris en charge. Il applique un patch à la bibliothèque lors de l’importation afin que chaque invocation de LLM, appel d’outil et étape d’agent soit capturé en tant que portée sans instrumentation supplémentaire.
Activer le traçage automatique
Sur les clusters de compute serverless, l’enregistrement automatique n’est pas activé par default. Vous devez appeler explicitement mlflow.<library>.autolog() pour chaque intégration que vous souhaitez tracer.
Installer
%pip install --upgrade "mlflow[databricks]>=3.1.0" "openai>=1.0.0"
# Also install the SDKs for any other frameworks you want to trace
dbutils.library.restartPython()
Définir les identifiants
- Databricks notebook
- External environment
import os
os.environ["OPENAI_API_KEY"] = "your-api-key"
# Add other provider keys as needed:
# os.environ["ANTHROPIC_API_KEY"] = "your-api-key"
export DATABRICKS_HOST="https://your-workspace.cloud.databricks.com"
export DATABRICKS_TOKEN="your-databricks-token"
# Add provider keys for your chosen LLM
Exemples de démarrage rapide
Choisissez votre framework pour voir un exemple minimal fonctionnel. Chaque tab renvoie au guide complet par framework.
- OpenAI
- LangChain
- LangGraph
- Anthropic
- Databricks FMAPI
- DSPy
- Bedrock
- AutoGen
import mlflow
import openai
mlflow.openai.autolog()
mlflow.set_tracking_uri("databricks")
mlflow.set_experiment("/Shared/openai-tracing-demo")
client = openai.OpenAI()
response = client.chat.completions.create(
model="gpt-4o-mini",
messages=[{"role": "user", "content": "What is the capital of France?"}],
)
# Trace appears in the MLflow UI automatically
import mlflow
from langchain_openai import ChatOpenAI
from langchain_core.prompts import ChatPromptTemplate
from langchain_core.output_parsers import StrOutputParser
mlflow.langchain.autolog()
mlflow.set_tracking_uri("databricks")
mlflow.set_experiment("/Shared/langchain-tracing-demo")
chain = (
ChatPromptTemplate.from_template("Tell me a joke about {topic}.")
| ChatOpenAI(model="gpt-4o-mini", temperature=0.7)
| StrOutputParser()
)
chain.invoke({"topic": "artificial intelligence"})
import mlflow
from langchain_core.tools import tool
from langchain_openai import ChatOpenAI
from langgraph.prebuilt import create_react_agent
mlflow.langchain.autolog() # LangGraph uses LangChain's autolog
mlflow.set_tracking_uri("databricks")
mlflow.set_experiment("/Shared/langgraph-tracing-demo")
@tool
def get_weather(city: str):
"""Get weather for a city."""
return f"It might be cloudy in {city}"
graph = create_react_agent(ChatOpenAI(model="gpt-4o-mini"), [get_weather])
graph.invoke({"messages": [("user", "What is the weather in SF?")]})
import mlflow
import anthropic
import os
mlflow.anthropic.autolog()
mlflow.set_tracking_uri("databricks")
mlflow.set_experiment("/Shared/anthropic-tracing-demo")
client = anthropic.Anthropic(api_key=os.environ.get("ANTHROPIC_API_KEY"))
message = client.messages.create(
model="claude-3-5-sonnet-20241022",
max_tokens=1024,
messages=[{"role": "user", "content": "Hello, Claude"}],
)
import mlflow
import os
from openai import OpenAI
# Databricks Foundation Model APIs use the OpenAI client
mlflow.openai.autolog()
mlflow.set_tracking_uri("databricks")
mlflow.set_experiment("/Shared/databricks-fmapi-tracing")
client = OpenAI(
api_key=os.environ.get("DATABRICKS_TOKEN"),
base_url=f"{os.environ.get('DATABRICKS_HOST')}/serving-endpoints",
)
response = client.chat.completions.create(
model="databricks-llama-4-maverick",
messages=[{"role": "user", "content": "Key features of MLflow?"}],
)
import mlflow
import dspy
mlflow.dspy.autolog()
mlflow.set_tracking_uri("databricks")
mlflow.set_experiment("/Shared/dspy-tracing-demo")
dspy.configure(lm=dspy.LM("openai/gpt-4o-mini"))
class SimpleSignature(dspy.Signature):
input_text: str = dspy.InputField()
output_text: str = dspy.OutputField()
result = dspy.Predict(SimpleSignature)(input_text="Summarize MLflow Tracing.")
import mlflow
import boto3
mlflow.bedrock.autolog()
mlflow.set_tracking_uri("databricks")
mlflow.set_experiment("/Shared/bedrock-tracing-demo")
bedrock = boto3.client(service_name="bedrock-runtime", region_name="us-east-1")
response = bedrock.converse(
modelId="anthropic.claude-3-5-sonnet-20241022-v2:0",
messages=[{"role": "user", "content": "Hello World."}],
)
import mlflow
from autogen import ConversableAgent
import os
mlflow.autogen.autolog()
mlflow.set_tracking_uri("databricks")
mlflow.set_experiment("/Shared/autogen-tracing-demo")
config_list = [{"model": "gpt-4o-mini", "api_key": os.environ.get("OPENAI_API_KEY")}]
assistant = ConversableAgent("assistant", llm_config={"config_list": config_list})
user_proxy = ConversableAgent("user_proxy", human_input_mode="NEVER", code_execution_config=False)
user_proxy.initiate_chat(assistant, message="What is 2+2?")
Toutes les intégrations
Chaque page comprend des prérequis, des options de configuration et des exemples au-delà du guide de démarrage rapide ci-dessus.
Fournisseurs de LLM
Frameworks d'agents et orchestrateurs
Infrastructures publiques et autres
Désactiver le traçage automatique
import mlflow
# Disable for a specific library
mlflow.openai.autolog(disable=True)
# Disable all autologging at once
mlflow.autolog(disable=True)
Ressources supplémentaires
- Traçage manuel et personnalisé — ajoutez des portées personnalisées lorsque la fonctionnalité d'enregistrement automatique ne capture pas ce dont vous avez besoin
- Stocker les traces OpenTelemetry dans Unity Catalog — un stockage de traces géré et interrogeable en SQL pour la production
- Afficher les traces dans l’interface utilisateur MLflow de Databricks — explorer les traces dans l’interface utilisateur MLflow
- Monitoring de production — exécutez des évaluateurs sur les traces de production pour surveiller la qualité de l’agent
Étape suivante : Traçage manuel et personnalisé














