Skip to Content
文档大模型观测

大模型观测

大模型是机器人智能的核心。当机器人执行任务时,大模型负责理解指令、规划行动、处理异常情况。如果大模型的响应出现偏差,机器人的行为就会出错。

因此,观测大模型的调用质量至关重要:

  • 响应准确性:大模型是否正确理解了用户意图?
  • 延迟监控:响应时间是否影响了机器人的实时性?
  • 成本追踪:Token 消耗是否在预算内?
  • 故障排查:当机器人行为异常时,能否回溯到具体的对话记录?

Ticos Flux 提供两种方式来观测大模型调用。

模式记录内容适用场景
代理模式完整对话内容 + 元数据调试、审计、故障排查
遥测模式仅元数据(Token、延迟)成本监控、性能统计

推荐:对于机器人应用,建议使用代理模式。因为调试机器人行为需要查看完整的对话内容,而不仅仅是统计数据。

模式一:代理模式 (Proxy)

Flux 作为中间代理,拦截并记录所有 LLM 请求。

配置参数

  • Base URL: http://<flux-host>:2860/v1/llm
  • API Key: 使用您的 OpenRouter API Key (通常以 sk-or- 开头)
  • Headers:
    • Authorization: Bearer <your-openrouter-key> (标准认证)
    • x-robot-id: (可选) 关联的机器人 ID

Python 示例

from openai import OpenAI client = OpenAI( base_url="http://localhost:2860/v1/llm", api_key="sk-or-...", default_headers={"x-robot-id": "robot-123"} ) response = client.chat.completions.create( model="anthropic/claude-3-opus", messages=[{"role": "user", "content": "Hello!"}] )

工作原理

Client → Flux (/v1/llm) → OpenRouter → Flux → Client ClickHouse (llm_logs)

记录的数据

字段说明
request_body完整的请求 JSON(包含 messages)
response_body完整的响应 JSON(包含 assistant 回复)
model使用的模型
prompt_tokens输入 Token 数
completion_tokens输出 Token 数
latency_ms响应延迟
robot_id关联的机器人

模式二:遥测模式 (OTLP)

OpenRouter 通过 Broadcast 功能直接推送遥测数据到 Flux,无需代理。

注意:此模式不记录对话内容,仅用于统计和监控。

配置步骤

  1. 登录 OpenRouter 控制台 
  2. 添加 Broadcast 目标:OTel Collector
  3. 配置端点:https://<your-flux-host>/v1/otel/v1/traces

记录的数据

字段说明
model使用的模型
prompt_tokens输入 Token 数
completion_tokens输出 Token 数
latency_ms响应延迟
request_body不可用
response_body不可用

模式选择建议

场景推荐模式原因
调试机器人行为代理模式需要查看对话内容
审计和合规代理模式需要完整记录
仅统计 Token 成本遥测模式无需对话内容
生产环境高可用代理模式 + 降级见下文

生产环境建议

在生产环境中,可以使用代理模式并配置降级策略:

  • 正常情况下通过 Flux 代理
  • 如果 Flux 不可用,客户端自动切换到 OpenRouter 原生 URL

常见问题

Q: 遥测模式为什么不记录对话内容? A: 这是 OpenRouter Broadcast 的设计限制。它基于 OpenTelemetry 标准,只发送 Span 元数据,不包含完整的请求/响应体。

Q: 如果 Flux 宕机了怎么办?

  • 代理模式: 客户端请求会失败,需要切换回 OpenRouter 原生 URL。
  • 遥测模式: 客户端请求不受影响,仅日志丢失。