Appearance
Arize 提供 LLM 应用的可观测性和追踪能力。由于 OpenRouter 完全兼容 OpenAI API 格式,可直接使用 Arize 的 openinference-instrumentation-openai 包自动 instrument OpenRouter 调用。只需将 OpenAI SDK 的 base_url 设为 https://openrouter.ai/api/v1,并调用 OpenAIInstrumentor().instrument(),所有模型请求即自动被追踪,在 Arize 平台可视化呈现请求时序、Token 用量和错误信息。
Arize 为 LLM 应用提供可观测性和链路追踪服务。由于 OpenRouter 完全兼容 OpenAI API,可直接使用 Arize 的 OpenInference 自动 instrumentation 追踪 OpenRouter 的所有 API 调用。
安装
bash
pip install openinference-instrumentation-openai openai arize-otel前置要求
- OpenRouter 账号和 API key
- Arize 账号(需要 Space ID 和 API Key)
工作原理
Arize OpenInference 能与 OpenRouter 配合是因为:
- OpenRouter 提供完全兼容 OpenAI 的 API 端点 —
/v1端点镜像 OpenAI 的 schema - 复用官方 OpenAI SDK — 将
base_url指向 OpenRouter 即可 - 自动 instrumentation — OpenInference 无缝 hook 进 OpenAI SDK 调用
配置
设置环境变量(将 OpenRouter API key 作为 OPENAI_API_KEY 传入):
python
import os
os.environ["OPENAI_API_KEY"] = "<你的 OpenRouter API key>"完整示例
python
from arize.otel import register
from openinference.instrumentation.openai import OpenAIInstrumentor
import openai
# 初始化 Arize,注册 tracer provider
tracer_provider = register(
space_id="your-space-id",
api_key="your-arize-api-key",
project_name="your-project-name",
)
# Instrument OpenAI SDK(自动追踪所有 OpenAI 兼容请求)
OpenAIInstrumentor().instrument(tracer_provider=tracer_provider)
# 配置 OpenAI client 指向 OpenRouter
client = openai.OpenAI(
base_url="https://openrouter.ai/api/v1",
api_key="your_openrouter_api_key",
default_headers={
"HTTP-Referer": "<YOUR_SITE_URL>", # 可选:你的站点 URL
"X-OpenRouter-Title": "<YOUR_SITE_NAME>", # 可选:你的站点名称
}
)
# 所有请求自动被追踪
response = client.chat.completions.create(
model="meta-llama/llama-3.1-8b-instruct:free",
messages=[
{"role": "user", "content": "Write a haiku about observability."}
],
)
print(response.choices[0].message.content)追踪内容
所有 OpenRouter 模型调用自动记录以下数据:
| 追踪项 | 说明 |
|---|---|
| 请求/响应数据 | 完整的 prompt 和 completion 内容 |
| 时序信息 | 请求延迟、TTFT(首 Token 时间) |
| 模型信息 | 模型名称和 Provider 信息 |
| Token 用量 | 输入/输出 token 数及成本(支持时) |
| 错误信息 | 异常堆栈和调试数据 |
JavaScript/TypeScript 支持
OpenInference 同样提供 OpenAI JavaScript/TypeScript SDK 的 instrumentation,与 OpenRouter 配合方式相同。参见 OpenInference JS 示例。
常见问题
Q: 使用 OpenRouter 的 API key 而非 OpenAI 的,Arize instrumentation 是否仍然有效?
A: 完全有效。Arize OpenInference 只 hook OpenAI SDK 的调用逻辑,不关心 API key 归属哪个平台,只要 endpoint 兼容 OpenAI 格式即可工作。
Q: 模型名称在 Arize 追踪中如何显示?
A: 显示的是你在 model 参数中传入的字符串,例如 meta-llama/llama-3.1-8b-instruct:free。这方便你在 Arize 面板中按模型筛选和对比不同模型的性能。
Q: Arize 追踪会增加额外延迟吗?
A: 追踪数据是异步发送到 Arize 的,不会阻塞 API 请求主路径,对用户感知延迟影响可忽略不计。