用户跟踪

OpenRoute API 通过可选的 user 参数支持用户跟踪,允许您跟踪自己的用户 ID 并改善应用程序的性能和报告功能。

什么是用户跟踪?

用户跟踪使您能够在 API 请求中为最终用户指定任意字符串标识符。这个可选的元数据帮助 OpenRoute 了解您的子用户,带来以下好处:

  1. 改善缓存:OpenRoute 可以使缓存与您的个人用户保持粘性,改善负载均衡和吞吐量
  2. 增强报告:查看按用户 ID 分解的详细分析和活动提要

工作原理

只需在您的 API 请求中包含一个 user 参数,使用代表您最终用户的任何字符串标识符。这可以是用户 ID、邮箱哈希、会话标识符或您在应用程序中使用的任何其他稳定标识符。

{
  "model": "openai/gpt-4o",
  "messages": [
    {"role": "user", "content": "你好,今天天气怎么样?"}
  ],
  "user": "user_12345"
}

优势

改善缓存性能

当您为特定用户一致地使用相同的用户标识符时,OpenRoute 可以优化缓存以对该用户保持"粘性"。这意味着:

  • 您应用程序的给定用户(假设您正在使用缓存)将始终路由到相同的提供商,缓存将保持温暖
  • 但不同的用户可以分布在不同提供商上,改善负载均衡和吞吐量

增强报告和分析

用户参数在 /activity 页面、该页面的导出以及 /generations API 中可用。

  • 活动提要:在您的 OpenRoute 仪表板中查看按用户 ID 分解的请求
  • 使用分析:了解哪些用户发出最多请求
  • 导出数据:获取包含用户级别分解的详细导出

实现示例

import requests
import json

url = "https://www.openroute.cn/api/v1/chat/completions"
headers = {
    "Authorization": f"Bearer <OPENROUTE_API_KEY>",
    "Content-Type": "application/json"
}
payload = {
    "model": "openai/gpt-4o",
    "messages": [
        {"role": "user", "content": "今天天气怎么样?"}
    ],
    "user": "user_12345"  # 您的用户标识符
}

response = requests.post(url, headers=headers, data=json.dumps(payload))
print(response.json()['choices'][0]['message']['content'])

最佳实践

选择稳定的标识符

在请求中为同一用户使用一致、稳定的标识符:

  • 好的做法:user_12345、customer_abc123、account_xyz789
  • 避免:在请求之间变化的随机字符串

考虑隐私

使用用户标识符时,考虑隐私影响:

  • 使用内部用户 ID 而不是暴露个人信息
  • 避免在用户标识符中包含个人身份信息
  • 考虑使用匿名标识符以获得更好的隐私保护

保持一致

在您的应用程序中使用相同的用户标识符格式:

# 一致的格式
user_id = f"app_{internal_user_id}"

On this page