跳到主要内容

追踪 LiteLLM🚄

LiteLLM Tracing via autolog

LiteLLM 是一个开源的 LLM 网关,允许通过统一的接口访问 100 多个 LLM。

MLflow Tracing 为 LiteLLM 提供了自动追踪功能。通过调用 mlflow.litellm.autolog() 函数为 LiteLLM 启用自动追踪,MLflow 将捕获 LLM 调用的追踪信息,并将其记录到活动的 MLflow 实验中。

import mlflow

mlflow.litellm.autolog()

MLflow 追踪自动捕获有关 LiteLLM 调用的以下信息:

  • 提示和完成响应
  • 延迟
  • 关于 LLM 提供程序的元数据,例如模型名称和端点 URL
  • 令牌使用量和成本
  • 缓存命中
  • 如果抛出任何异常

基本示例

import mlflow
import litellm

# Enable auto-tracing for LiteLLM
mlflow.litellm.autolog()

# Optional: Set a tracking URI and an experiment
mlflow.set_tracking_uri("https://:5000")
mlflow.set_experiment("LiteLLM")

# Call Anthropic API via LiteLLM
response = litellm.completion(
model="claude-3-5-sonnet-20240620",
messages=[{"role": "user", "content": "Hey! how's it going?"}],
)

异步 API

MLflow 支持追踪 LiteLLM 的异步 API

mlflow.litellm.autolog()

response = await litellm.acompletion(
model="claude-3-5-sonnet-20240620",
messages=[{"role": "user", "content": "Hey! how's it going?"}],
)

流式传输

MLflow 支持追踪 LiteLLM 的同步和异步流式 API

mlflow.litellm.autolog()

response = litellm.completion(
model="claude-3-5-sonnet-20240620",
messages=[{"role": "user", "content": "Hey! how's it going?"}],
stream=True,
)
for chunk in response:
print(chunk.choices[0].delta.content, end="|")

MLflow 会将流式块中连接的输出记录为跨度输出。

禁用自动跟踪

可以通过调用 mlflow.litellm.autolog(disable=True)mlflow.autolog(disable=True) 来全局禁用 LiteLLM 的自动追踪。