メインコンテンツまでスキップ

自動トレース

1 行のコードを追加すると、 mlflow.<library>.autolog() アプリの生成が自動的にトレースされますAI 。 自動トレース は、20+ 以上のサポートされているライブラリとフレームワーク ですぐに使用できます。

前提 条件

Databricks では、最新の GenAI トレース機能のために MLflow 3 を推奨しています。

Databricks ノートブックで次のコマンドを実行して、使用する mlflow パッケージと統合パッケージをインストールします。この例では、OpenAI を使用しています。

  • mlflow[databricks]>=3.1 : 生成AI 機能と Databricks 接続を備えたコア MLflow 機能。
  • openai>=1.0.0: このページの 基本的な自動トレースの例 を実行する場合にのみ必要です (他の LLM プロバイダーを使用している場合は、代わりにそれぞれの SDK をインストールしてください)。
  • 追加のライブラリ : 使用する統合の特定のライブラリをインストールします。

基本要件をインストールします。

Python
%pip install --upgrade "mlflow[databricks]>=3.1" openai>=1.0.0
# Also install libraries you want to trace (langchain, anthropic, etc.)

dbutils.library.restartPython()

資格情報の構成

Databricks ノートブックで、必要な LLM API キーを設定します。

Python
import os
os.environ["OPENAI_API_KEY"] = "your-api-key"

# Add other provider keys as needed
# os.environ["ANTHROPIC_API_KEY"] = "your-api-key"
# os.environ["MISTRAL_API_KEY"] = "your-api-key"

自動トレースの例

ここでは、 Databricks 基盤モデル APIsに接続する OpenAI エージェントの自動トレースを有効にする方法について説明します。

Python
import mlflow
import os
from openai import OpenAI

# Databricks Foundation Model APIs use Databricks authentication.

mlflow.set_tracking_uri("databricks")
mlflow.set_experiment("/Shared/databricks-sdk-autolog-example")

# Enable auto-tracing for OpenAI (which will trace Databricks Foundation Model API calls)
mlflow.openai.autolog()

# Create OpenAI client configured for Databricks
client = OpenAI(
api_key=os.environ.get("DATABRICKS_TOKEN"),
base_url=f"{os.environ.get('DATABRICKS_HOST')}/serving-endpoints"
)

# Query Llama 4 Maverick using OpenAI client
response = client.chat.completions.create(
model="databricks-llama-4-maverick",
messages=[
{"role": "system", "content": "You are a helpful assistant."},
{"role": "user", "content": "What are the key features of MLflow Tracing?"}
],
max_tokens=150,
temperature=0.7
)

print(response.choices[0].message.content)
# Your calls to Databricks Foundation Model APIs are automatically traced!

Databricks統合の完全ガイド

その他の一般的な統合

MLflow は 、サポートされている 20+ のフレームワークを自動的にトレースします。ここでは、最も人気のあるものをご紹介します。

OpenAI の自動トレースを有効にする方法は次のとおりです。

Python
import mlflow
from openai import OpenAI

# Enable automatic tracing
mlflow.openai.autolog()

# Set up tracking
mlflow.set_tracking_uri("databricks")
mlflow.set_experiment("/Shared/tracing-demo")

# Use OpenAI as normal - traces happen automatically
client = OpenAI()
response = client.chat.completions.create(
model="gpt-4o-mini",
messages=[{"role": "user", "content": "What is MLflow Tracing?"}],
max_tokens=100
)

print(response.choices[0].message.content)
# All OpenAI calls are now traced.

OpenAIの完全統合ガイドをご覧ください。

複数のフレームワークの自動トレース

自動トレースは、同じエージェント内の複数のフレームワークに使用できます。

次のコードは、OpenAI の直接 API 呼び出し、 LangChain チェーン、カスタムロジックを 1 つのトレースに組み合わせて、デバッグとモニタリングを容易にします。

Python
%pip install --upgrade langchain langchain-openai
Python
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.trace を使用して、次のシナリオで統合トレースを作成します。

  • 1 つのワークフローで複数の LLM コール
  • 異なるプロバイダーによるマルチエージェントシステム
  • LLM 呼び出し間のカスタムロジック
Python
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 トレースを組み合わせた 1 つのトレースが生成されます。

自動トレースと手動トレースの組み合わせ

高度な例:複数のLLMコール

Python
import mlflow
import openai
from mlflow.entities import SpanType

# Enable auto-tracing for OpenAI
mlflow.openai.autolog()

@mlflow.trace(span_type=SpanType.CHAIN)
def process_user_query(query: str):
# First LLM call: Analyze the query
analysis = openai.OpenAI().chat.completions.create(
model="gpt-4o-mini",
messages=[
{"role": "system", "content": "Analyze the user's query and determine if it requires factual information or creative writing."},
{"role": "user", "content": query}
]
)
analysis_result = analysis.choices[0].message.content

# Second LLM call: Generate response based on analysis
if "factual" in analysis_result.lower():
# Use a different model for factual queries
response = openai.OpenAI().chat.completions.create(
model="gpt-4o-mini",
messages=[
{"role": "system", "content": "Provide a factual, well-researched response."},
{"role": "user", "content": query}
]
)
else:
# Use a different model for creative queries
response = openai.OpenAI().chat.completions.create(
model="gpt-4o-mini",
messages=[
{"role": "system", "content": "Provide a creative, engaging response."},
{"role": "user", "content": query}
]
)

return response.choices[0].message.content

# Run the function
result = process_user_query("Tell me about the history of artificial intelligence")

これにより、次のトレースが 1 つ作成されます。

  • 親スパン process_user_query
  • OpenAI 呼び出し用の 2 つの子スパン

次のステップ

次のページを参照してください。

リファレンスガイド

このガイドで説明する概念と機能の詳細なドキュメントについては、以下を参照してください。