Appearance
OpenRouter API 支持通过 user 参数在请求中传入任意字符串标识符来标记终端用户。这个可选字段帮助 OpenRouter 理解你的用户群体构成。推荐使用稳定的内部 ID(如 user_12345、customer_abc123),避免传入个人身份信息(邮箱、姓名等)。保持同一用户的标识符格式一致,避免每次请求使用随机字符串。
通过在 API 请求中传入 user 参数,可以将请求与你应用中的终端用户关联。
使用方式
在请求体中添加 user 字段:
json
{
"model": "openai/gpt-4o",
"messages": [
{"role": "user", "content": "Hello, how are you?"}
],
"user": "user_12345"
}代码示例
typescript
import { OpenRouter } from '@openrouter/sdk';
const openRouter = new OpenRouter({
apiKey: process.env.OPENROUTER_API_KEY,
});
const response = await openRouter.chat.send({
model: 'openai/gpt-4o',
messages: [
{
role: 'user',
content: "What's the weather like today?",
},
],
user: 'user_12345', // 你的用户标识符
stream: false,
});
console.log(response.choices[0].message.content);最佳实践
选择稳定的标识符
同一用户在不同请求中使用一致的标识符:
- 推荐:
user_12345、customer_abc123、account_xyz789 - 避免:每次请求随机生成的字符串
考虑隐私保护
- 使用内部系统的用户 ID,不要暴露个人信息
- 避免传入邮箱、姓名等 PII(个人身份信息)
- 可以使用匿名化的哈希 ID 提升隐私保护
保持格式统一
在整个应用中使用相同的格式约定:
python
# 统一格式
user_id = f"app_{internal_user_id}"常见问题
Q: user 参数是必填的吗?
A: 不,这是可选参数。但传入此参数有助于 OpenRouter 在出现滥用投诉或异常用量时,更好地协助你定位问题。
Q: 传入的 user ID 会被记录在日志里吗?
A: OpenRouter 会记录这个字段用于运营目的,但不会与请求内容(prompt/响应)一起存储。
Q: 可以传入什么格式的字符串?
A: 任意字符串均可,没有特定格式要求。关键是在你的应用中保持一致,让同一个用户的不同请求都使用相同的标识符。