用户跟踪
OpenRoute API 通过可选的 user
参数支持用户跟踪,允许您跟踪自己的用户 ID 并改善应用程序的性能和报告功能。
什么是用户跟踪?
用户跟踪使您能够在 API 请求中为最终用户指定任意字符串标识符。这个可选的元数据帮助 OpenRoute 了解您的子用户,带来以下好处:
- 改善缓存:OpenRoute 可以使缓存与您的个人用户保持粘性,改善负载均衡和吞吐量
- 增强报告:查看按用户 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'])
import OpenAI from 'openai';
const openai = new OpenAI({
baseURL: 'https://www.openroute.cn/api/v1',
apiKey: '<OPENROUTE_API_KEY>',
});
async function chatWithUserTracking() {
const response = await openai.chat.completions.create({
model: 'openai/gpt-4o',
messages: [
{
role: 'user',
content: "今天天气怎么样?",
},
],
user: 'user_12345', // 您的用户标识符
});
console.log(response.choices[0].message.content);
}
chatWithUserTracking();
最佳实践
选择稳定的标识符
在请求中为同一用户使用一致、稳定的标识符:
- 好的做法:
user_12345
、customer_abc123
、account_xyz789
- 避免:在请求之间变化的随机字符串
考虑隐私
使用用户标识符时,考虑隐私影响:
- 使用内部用户 ID 而不是暴露个人信息
- 避免在用户标识符中包含个人身份信息
- 考虑使用匿名标识符以获得更好的隐私保护
保持一致
在您的应用程序中使用相同的用户标识符格式:
# 一致的格式
user_id = f"app_{internal_user_id}"
Last updated on