跟踪 LiteLLM🚄
LiteLLM 是一个开源的LLM网关,允许通过统一接口访问100多个LLM。
MLflow Tracing 为 LiteLLM 提供了自动跟踪功能。通过调用 mlflow.litellm.autolog()
函数为 LiteLLM 启用自动跟踪后,MLflow 将捕获 LLM 调用跟踪并将其记录到当前活动的 MLflow 实验中。
import mlflow
mlflow.litellm.autolog()
MLflow 跟踪会自动捕获关于 LiteLLM 调用的以下信息:
- 提示和完成响应
- 延迟
- 关于LLM提供商的元数据,例如模型名称和端点URL
- Token使用量和成本
- 缓存命中
- 如果抛出任何异常
基本示例
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 会将流块的拼接输出记录为跨度(span)输出。
禁用自动跟踪
可以通过调用 mlflow.litellm.autolog(disable=True)
或 mlflow.autolog(disable=True)
全局禁用 LiteLLM 的自动跟踪。