跟踪 Ollama
MLflow 跟踪通过 OpenAI SDK 集成,为 Ollama 模型提供自动跟踪功能。由于 Ollama 暴露了一个与 OpenAI 兼容的 API,您只需使用 mlflow.openai.autolog() 即可跟踪 Ollama 调用。

MLflow 跟踪会自动捕获有关 Ollama 调用的以下信息
- 提示和完成响应
- 延迟
- Token 用量
- 模型名称
- 如果指定,还包括额外的元数据,如
temperature、max_tokens。 - 如果响应中返回函数调用
- 如果抛出任何异常
- 以及更多...
开始使用
安装依赖项
- Python
- JS / TS
pip install 'mlflow[genai]' openai
npm install mlflow-openai openai
启动 MLflow 服务器
- 本地 (pip)
- 本地 (docker)
如果您有本地 Python 环境 >= 3.10,您可以使用 mlflow CLI 命令在本地启动 MLflow 服务器。
mlflow server
MLflow 还提供了一个 Docker Compose 文件,用于启动带有 postgres 数据库和 minio 服务器的本地 MLflow 服务器。
git clone --depth 1 --filter=blob:none --sparse https://github.com/mlflow/mlflow.git
cd mlflow
git sparse-checkout set docker-compose
cd docker-compose
cp .env.dev.example .env
docker compose up -d
有关更多详细信息,请参阅 说明,例如覆盖默认环境变量。
运行 Ollama 服务器
确保您的 Ollama 服务器正在运行,并且您想要使用的模型已拉取。
ollama run llama3.2:1b
启用跟踪并调用 Ollama
- Python
- JS / TS
import mlflow
from openai import OpenAI
# Enable auto-tracing for OpenAI (works with Ollama)
mlflow.openai.autolog()
# Optional: Set a tracking URI and an experiment
mlflow.set_tracking_uri("https://:5000")
mlflow.set_experiment("Ollama")
# Initialize the OpenAI client with Ollama API endpoint
client = OpenAI(
base_url="https://:11434/v1",
api_key="dummy",
)
response = client.chat.completions.create(
model="llama3.2:1b",
messages=[
{"role": "system", "content": "You are a helpful assistant."},
{"role": "user", "content": "Why is the sky blue?"},
],
temperature=0.1,
max_tokens=100,
)
import { OpenAI } from "openai";
import { tracedOpenAI } from "mlflow-openai";
// Wrap the OpenAI client and point to Ollama endpoint
const client = tracedOpenAI(
new OpenAI({
baseURL: "https://:11434/v1",
apiKey: "dummy",
})
);
const response = await client.chat.completions.create({
model: "llama3.2:1b",
messages: [
{ role: "system", content: "You are a helpful assistant." },
{ role: "user", content: "Why is the sky blue?" },
],
temperature: 0.1,
max_tokens: 100,
});
在 MLflow UI 中查看跟踪
浏览到您的 MLflow UI(例如,https://:5000)并打开 Ollama 实验,以查看上述调用的跟踪。

→ 查看 后续步骤,了解有关 MLflow 更多功能的信息,例如用户反馈跟踪、提示管理和评估。
支持的 API
MLflow 通过 OpenAI 集成支持对以下 Ollama API 进行自动跟踪
| 聊天补全 | 函数调用 | 流式传输 | 异步 |
|---|---|---|---|
| ✅ | ✅ | ✅ (*1) | ✅ (*2) |
(*1)流式传输支持需要 MLflow 2.15.0 或更高版本。(*2)异步支持需要 MLflow 2.21.0 或更高版本。
如需请求支持其他 API,请在 GitHub 上提交 功能请求。
流式传输和异步支持
MLflow 支持对流式传输和异步 Ollama API 进行跟踪。请参阅 OpenAI 跟踪文档以获取通过 OpenAI SDK 跟踪流式传输和异步调用的示例代码片段。
与手动跟踪结合使用
为了更精确地控制跟踪行为,MLflow 提供了 手动跟踪 SDK 来为您的自定义代码创建跨度。手动跟踪可以与自动跟踪结合使用,以创建自定义跟踪,同时保留自动跟踪的便利性。有关更多详细信息,请参阅 OpenAI 跟踪文档中的 与手动跟踪结合使用部分。
Token 用量
MLflow >= 3.2.0 通过 OpenAI SDK 集成支持对 Ollama 模型的令牌使用情况跟踪。每个 LLM 调用的令牌使用情况将记录在 mlflow.chat.tokenUsage 属性中。跟踪信息对象中的 token_usage 字段将显示整个跟踪过程的总令牌使用情况。有关更多详细信息,请参阅 令牌使用情况文档。
禁用自动跟踪
可以通过调用 mlflow.openai.autolog(disable=True) 或 mlflow.autolog(disable=True) 来全局禁用对 Ollama(通过 OpenAI SDK)的自动跟踪。