Skip to content

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 配合是因为:

  1. OpenRouter 提供完全兼容 OpenAI 的 API 端点/v1 端点镜像 OpenAI 的 schema
  2. 复用官方 OpenAI SDK — 将 base_url 指向 OpenRouter 即可
  3. 自动 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 请求主路径,对用户感知延迟影响可忽略不计。