指南
在X-End-User-ID 请求头中填入使用你应用的那个人的稳定 ID。PoYo 会将该 ID 与发送它的 API Key 关联存储。之后你可以封禁这个人,而无需轮换或停用 API Key。
适用范围
在以下请求中发送该请求头:- 统一生成:
POST https://api.poyo.ai/api/generate/submit - 原生 Chat:
POST /v1/chat/completionsPOST /v1/responsesPOST /v1/messages(Claude Messages,使用x-api-key认证)POST /v1beta/models/{model}:generateContent和:streamGenerateContent
API Key 开关
在 API Key 页面,打开该 API Key 的 End users 对话框。开关名为 Require an end user ID。 在该 API Key 的 End users 对话框中开启 Require an end user ID 后,生成和对话请求都必须包含X-End-User-ID。缺少该请求头时,POST /api/generate/submit 和原生 Chat 返回 HTTP 400,message 为 The X-End-User-ID header is missing. This API key requires it on generation and chat requests.
Require an end user ID 关闭时,不带该请求头的请求照常工作,PoYo 不会查询封禁状态。带了该请求头的请求仍会检查该 ID 是否被封禁。某个 ID 第一次出现时,PoYo 会记录它。
请求头与 ID 规则
User-1 和 user-1 是不同的 ID。包含该字符集以外的字符,或长度超过 128 个字符时,返回 HTTP 400,message 为 End user ID is invalid. Use 1-128 characters: letters, numbers, and . _ : -.。空值或只含空白的值视为缺少该请求头。
封禁终端用户
封禁作用于该 API Key + 该终端用户 ID。同一 API Key 下的其他 ID 仍可正常使用,API Key 本身也保持有效。 在 API Key 页面打开 End users 对话框。你可以在这里开启或关闭 Require an end user ID、搜索已记录的 ID、封禁某个 ID 以及解除封禁。 被封禁的 ID 返回 HTTP 403,message 为 end_user_blocked。只要请求带有该请求头就会执行检查。开启 Require an end user ID 后,每个提交请求和原生 Chat 请求都必须带该请求头,因此每次都会执行检查。
错误
通过读取error.message 区分以下情况。
ID 无效时的响应与上面示例的 JSON 结构相同,只有
error.message 不同。被封禁的 ID 使用 code 403 和 error.type permission_error。
提交示例
对话示例
x-api-key 之外使用同样的 X-End-User-ID 请求头: