Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Трассировка MLflow интегрирована с широким спектром популярных библиотек и платформ сгенерированных ИИ, предлагая однострочный интерфейс автоматической трассировки для всех них. Это позволяет получить немедленную наблюдаемость в приложениях GenAI с минимальными настройками.
Эта широкая поддержка означает, что вы можете получить наблюдаемость без существенных изменений кода, используя уже используемые инструменты. Для пользовательских компонентов или неподдерживаемых библиотек MLflow также предоставляет мощные API трассировки вручную.
Автоматическая трассировка фиксирует логику и промежуточные шаги приложения, такие как вызовы LLM, использование инструментов и взаимодействие агента на основе реализации конкретной библиотеки или пакета SDK.
Замечание
В бессерверных вычислительных кластерах автоматическая отладка платформ трассировки genAI не включена автоматически. Необходимо явно включить автологирование, вызвав соответствующую mlflow.<library>.autolog() функцию для конкретных интеграций, которые требуется трассировать.
Основные интеграции на первый взгляд
Ниже приведены примеры быстрого запуска для некоторых наиболее часто используемых интеграций. Щелкните вкладку, чтобы просмотреть базовый пример использования. Подробные предварительные требования и более сложные сценарии для каждого из них см. на их выделенных страницах интеграции (связанных со вкладками или списком ниже).
Открытый ИИ
import mlflow
import openai
# If running this code outside of a Databricks notebook (e.g., locally),
# uncomment and set the following environment variables to point to your Databricks workspace:
# import os
# os.environ["DATABRICKS_HOST"] = "https://your-workspace.cloud.databricks.com"
# os.environ["DATABRICKS_TOKEN"] = "your-personal-access-token"
# Enable auto-tracing for OpenAI
mlflow.openai.autolog()
# Set up MLflow tracking
mlflow.set_tracking_uri("databricks")
mlflow.set_experiment("/Shared/openai-tracing-demo")
openai_client = openai.OpenAI()
messages = [
{
"role": "user",
"content": "What is the capital of France?",
}
]
response = openai_client.chat.completions.create(
model="gpt-4o-mini",
messages=messages,
temperature=0.1,
max_tokens=100,
)
# View trace in MLflow UI
Руководство по интеграции с OpenAI
LangChain
import mlflow
from langchain.prompts import PromptTemplate
from langchain_core.output_parsers import StrOutputParser
from langchain_openai import ChatOpenAI
# If running this code outside of a Databricks notebook (e.g., locally),
# uncomment and set the following environment variables to point to your Databricks workspace:
# import os
# os.environ["DATABRICKS_HOST"] = "https://your-workspace.cloud.databricks.com"
# os.environ["DATABRICKS_TOKEN"] = "your-personal-access-token"
mlflow.langchain.autolog()
mlflow.set_tracking_uri("databricks")
mlflow.set_experiment("/Shared/langchain-tracing-demo")
llm = ChatOpenAI(model="gpt-4o-mini", temperature=0.7, max_tokens=1000)
prompt = PromptTemplate.from_template("Tell me a joke about {topic}.")
chain = prompt | llm | StrOutputParser()
chain.invoke({"topic": "artificial intelligence"})
# View trace in MLflow UI
Руководство по интеграции Full LangChain
LangGraph
import mlflow
from langchain_core.tools import tool
from langchain_openai import ChatOpenAI
from langgraph.prebuilt import create_react_agent
# If running this code outside of a Databricks notebook (e.g., locally),
# uncomment and set the following environment variables to point to your Databricks workspace:
# import os
# os.environ["DATABRICKS_HOST"] = "https://your-workspace.cloud.databricks.com"
# os.environ["DATABRICKS_TOKEN"] = "your-personal-access-token"
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):
"""Use this to get weather information."""
return f"It might be cloudy in {city}"
llm = ChatOpenAI(model="gpt-4o-mini")
graph = create_react_agent(llm, [get_weather])
result = graph.invoke({"messages": [("user", "what is the weather in sf?")]})
# View trace in MLflow UI
Руководство по интеграции с LangGraph
Антропик
import mlflow
import anthropic
import os
# If running this code outside of a Databricks notebook (e.g., locally),
# uncomment and set the following environment variables to point to your Databricks workspace:
# os.environ["DATABRICKS_HOST"] = "https://your-workspace.cloud.databricks.com"
# os.environ["DATABRICKS_TOKEN"] = "your-personal-access-token"
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"}],
)
# View trace in MLflow UI
Полное руководство по антропической интеграции
DSPy
import mlflow
import dspy
# If running this code outside of a Databricks notebook (e.g., locally),
# uncomment and set the following environment variables to point to your Databricks workspace:
# import os
# os.environ["DATABRICKS_HOST"] = "https://your-workspace.cloud.databricks.com"
# os.environ["DATABRICKS_TOKEN"] = "your-personal-access-token"
mlflow.dspy.autolog()
mlflow.set_tracking_uri("databricks")
mlflow.set_experiment("/Shared/dspy-tracing-demo")
lm = dspy.LM("openai/gpt-4o-mini") # Assumes OPENAI_API_KEY is set
dspy.configure(lm=lm)
class SimpleSignature(dspy.Signature):
input_text: str = dspy.InputField()
output_text: str = dspy.OutputField()
program = dspy.Predict(SimpleSignature)
result = program(input_text="Summarize MLflow Tracing.")
# View trace in MLflow UI
Полное руководство по интеграции DSPy
Databricks
import mlflow
import os
from openai import OpenAI # Databricks FMAPI uses OpenAI client
# If running this code outside of a Databricks notebook (e.g., locally),
# uncomment and set the following environment variables to point to your Databricks workspace:
# os.environ["DATABRICKS_HOST"] = "https://your-workspace.cloud.databricks.com"
# os.environ["DATABRICKS_TOKEN"] = "your-personal-access-token"
mlflow.openai.autolog() # Traces Databricks FMAPI using OpenAI client
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?"}],
)
# View trace in MLflow UI
Полное руководство по интеграции Databricks
Коренная порода
import mlflow
import boto3
# If running this code outside of a Databricks notebook (e.g., locally),
# uncomment and set the following environment variables to point to your Databricks workspace:
# import os
# os.environ["DATABRICKS_HOST"] = "https://your-workspace.cloud.databricks.com"
# os.environ["DATABRICKS_TOKEN"] = "your-personal-access-token"
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" # Replace with your region
)
response = bedrock.converse(
modelId="anthropic.claude-3-5-sonnet-20241022-v2:0",
messages=[{"role": "user", "content": "Hello World in one line."}]
)
# View trace in MLflow UI
Руководство по интеграции Full Bedrock
AutoGen
import mlflow
from autogen import ConversableAgent
import os
# If running this code outside of a Databricks notebook (e.g., locally),
# uncomment and set the following environment variables to point to your Databricks workspace:
# os.environ["DATABRICKS_HOST"] = "https://your-workspace.cloud.databricks.com"
# os.environ["DATABRICKS_TOKEN"] = "your-personal-access-token"
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?")
# View trace in MLflow UI
Руководство по полной интеграции AutoGen
Безопасное управление ключами API
В рабочих средах Databricks рекомендует использовать шлюз ИИ или секреты Databricks для управления ключами API. Шлюз ИИ является предпочтительным методом и предлагает дополнительные функции управления.
Предупреждение
Никогда не фиксируйте ключи API непосредственно в коде или записных книжках. Всегда используйте секреты шлюза ИИ или Databricks для конфиденциальных учетных данных.
Шлюз ИИ (рекомендуется)
Databricks рекомендует шлюз искусственного интеллекта для управления и мониторинга доступа к моделям ИИ поколения.
Создайте конечную точку модели Foundation, настроенную с помощью шлюза ИИ:
- В рабочей области Databricks перейдите к разделу Serving>Создать новый конечный пункт.
- Выберите тип конечной точки и поставщик.
- Настройте конечную точку с помощью ключа API.
- Во время настройки конечной точки включите шлюз ИИ и настройте ограничение скорости, резервные копии и защищение по мере необходимости.
- Вы можете получить автоматически созданный код, чтобы быстро начать запросы к конечной точке. Перейдите к развертыванию> вашего конечного пункта >используя>запросы. Обязательно добавьте код трассировки:
import mlflow
from openai import OpenAI
import os
# How to get your Databricks token: https://docs.databricks.com/en/dev-tools/auth/pat.html
# DATABRICKS_TOKEN = os.environ.get('DATABRICKS_TOKEN')
# Alternatively in a Databricks notebook you can use this:
DATABRICKS_TOKEN = dbutils.notebook.entry_point.getDbutils().notebook().getContext().apiToken().get()
# Enable auto-tracing for OpenAI
mlflow.openai.autolog()
# Set up MLflow tracking (if running outside Databricks)
# If running in a Databricks notebook, these are not needed.
mlflow.set_tracking_uri("databricks")
mlflow.set_experiment("/Shared/my-genai-app")
client = OpenAI(
api_key=DATABRICKS_TOKEN,
base_url="<YOUR_HOST_URL>/serving-endpoints"
)
chat_completion = client.chat.completions.create(
messages=[
{
"role": "system",
"content": "You are an AI assistant"
},
{
"role": "user",
"content": "What is MLflow?"
}
],
model="<YOUR_ENDPOINT_NAME>",
max_tokens=256
)
print(chat_completion.choices[0].message.content)
Секреты Databricks
Используйте секреты Databricks для управления ключами API:
Создайте область секрета и сохраните ключ API:
from databricks.sdk import WorkspaceClient # Set your secret scope and key names secret_scope_name = "llm-secrets" # Choose an appropriate scope name secret_key_name = "api-key" # Choose an appropriate key name # Create the secret scope and store your API key w = WorkspaceClient() w.secrets.create_scope(scope=secret_scope_name) w.secrets.put_secret( scope=secret_scope_name, key=secret_key_name, string_value="your-api-key-here" # Replace with your actual API key )Извлеките и используйте секрет в коде.
import mlflow import openai import os # Configure your secret scope and key names secret_scope_name = "llm-secrets" secret_key_name = "api-key" # Retrieve the API key from Databricks secrets os.environ["OPENAI_API_KEY"] = dbutils.secrets.get( scope=secret_scope_name, key=secret_key_name ) # Enable automatic tracing mlflow.openai.autolog() # Use OpenAI client with securely managed API key client = openai.OpenAI() response = client.chat.completions.create( model="gpt-4o-mini", messages=[{"role": "user", "content": "Explain MLflow Tracing"}], max_tokens=100 )
Включение нескольких интеграций для автоматической трассировки
Так как приложения GenAI часто объединяют несколько библиотек, трассировка MLflow позволяет одновременно включить автоматическую трассировку для нескольких интеграции, обеспечивая унифицированный интерфейс трассировки.
Например, чтобы включить трассировку LangChain и прямую трассировку OpenAI:
import mlflow
# Enable MLflow Tracing for both LangChain and OpenAI
mlflow.langchain.autolog()
mlflow.openai.autolog()
# Your code using both LangChain and OpenAI directly...
# ... an example can be found on the Automatic Tracing page ...
MLflow создаст единую сплоченную трассировку, которая объединяет шаги из LangChain и прямых вызовов OpenAI LLM, что позволяет проверить полный поток. Дополнительные примеры объединения интеграции можно найти на странице автоматической трассировки .
Отключение автоматической трассировки
Автоматическая трассировка для любой конкретной библиотеки может быть отключена путем вызова mlflow.<library>.autolog(disable=True).
Чтобы отключить все интеграции автологинга одновременно, используйте mlflow.autolog(disable=True).
import mlflow
# Disable for a specific library
mlflow.openai.autolog(disable=True)
# Disable all autologging
mlflow.autolog(disable=True)