vLLM 集成
本指南介绍如何使用 OpenTelemetry 将 vLLM 的推理过程通过 Litefuse 进行追踪。vLLM 提供了内置的 OpenTelemetry 支持,可以配置为将 trace 发送到 Litefuse 的 OpenTelemetry 端点。
什么是 vLLM? vLLM 是一个快速且易于使用的 LLM 推理和服务库。它具备业界领先的吞吐量、基于 PagedAttention 的高效内存管理、连续批处理,并支持各种开源模型。
什么是 Litefuse? Litefuse 是一个开源的 AI Agent 可观测性与评估平台。它提供追踪、prompt 管理和评估能力,帮助团队调试、分析和迭代他们的 LLM 应用。
快速开始
我们将通过一个简单示例,演示如何使用 vLLM,并通过 OpenTelemetry 让 Litefuse 进行追踪。
第一步:安装依赖
%pip install vllm langfuse -q第二步:设置环境变量
通过注册 Litefuse Cloud 或自托管 Litefuse 获取你的 Litefuse API Key。
import os
# Get keys for your project from the project settings page: https://litefuse.cloud
os.environ["LANGFUSE_PUBLIC_KEY"] = "pk-lf-..."
os.environ["LANGFUSE_SECRET_KEY"] = "sk-lf-..."
os.environ["LANGFUSE_BASE_URL"] = "https://litefuse.cloud"
# Configure OpenTelemetry endpoint & headers
os.environ["OTEL_EXPORTER_OTLP_TRACES_PROTOCOL"] = "http/protobuf"
os.environ["OTEL_SERVICE_NAME"] = "vllm"第三步:初始化 OpenTelemetry 追踪
配置好后,vLLM 会自动暴露 OpenTelemetry span。下一步设置的 Langfuse 客户端会捕获这些 OTEL span 并发送到 Litefuse。
from vllm import LLM, SamplingParams
langfuse_host = "https://litefuse.cloud" # or https://litefuse.cloud
otlp_traces_endpoint = f"{langfuse_host}/api/public/otel/v1/traces"
# --- vLLM ---
llm = LLM(
model="facebook/opt-125m",
otlp_traces_endpoint=otlp_traces_endpoint,
disable_log_stats=False,
)现在我们初始化 Litefuse 的 OTel 客户端。get_client() 会使用环境变量中提供的凭据初始化 Langfuse 客户端。
from langfuse import get_client
langfuse = get_client()
# Verify connection
if langfuse.auth_check():
print("Langfuse client is authenticated and ready!")
else:
print("Authentication failed. Please check your credentials and host.")第四步:使用 vLLM 加载模型
我们使用 vLLM 的 LLM 类加载模型。本示例为了演示使用了一个小模型(facebook/opt-125m)。你可以将其替换为任何 vLLM 支持的模型。
out = llm.generate(
["Write one sentence about Berlin."],
SamplingParams(max_tokens=32),
)
print(out[0].outputs[0].text)第五步:在 Litefuse 中查看 trace
运行模型后,你可以在 Litefuse 中看到新的 span。
注意: vLLM 目前只把 token 数和延迟指标导出到 Litefuse。LLM 的输入和输出需要使用 Langfuse SDK 在单独的 trace 中手动捕获。