Repository navigation
v1.3.0
可以给别人发客户端密钥了:每个密钥单独限到期、用量和模型,用量按密钥统计。Base URL 多写了 /v1 时,客户端能直接看到怎么改。
新增
- 面板新增「密钥」页,管理客户端密钥:给别人用时建一个发过去,不用再把
api_key发出去。- 客户端密钥只能调
/v1/*,登不了面板。api_key改叫管理员密钥,照旧能登面板、调全部接口,不受下面这些限制。 - 每个密钥可以停用、设到期时间、设每天(北京时间 00:00 重置)和总量的请求次数 / token / 积分上限、设模型白名单。
- 白名单按经模型路由改写后实际发上游的模型名匹配,只认
*通配;/v1/models只列放行的模型。 - 原文随时能复制、能重新生成;「接入方法」给出各客户端的填法。
- 客户端密钥只能调
- 被拦下的请求按入口协议回错误并说明原因:
- 停用、过期、删掉回 401;
- 白名单外的模型回 403;
- 到上限回 429,带
X-Should-Retry: false让 SDK 别自动重试,每天的上限另带到 00:00 的Retry-After。
- 请求次数只算成功的请求:没号可用、上游报错的事后退还,号池出问题时客户端的自动重试不会把次数烧光。
- 用量统计加密钥维度:
- 用量页多了「按密钥」明细,可以按密钥筛,整页只算这个密钥的请求;
- 请求记录多了「密钥」列,搜索也认密钥名;
- 1.3.0 之前的数据显示为「未区分」。
- 只要建过客户端密钥,
/v1/*就必须带有效密钥,api_key为空也一样,免得白名单和上限一绕就过。api_key为空时面板谁都能打开、看得到密钥原文,「密钥」页会提醒先设管理员密钥。 - 密钥存在数据目录的
api_keys.json(0600),备份时记得带上。
修复
- 请求发到
/v1/v1/...(客户端自己会拼/v1,Base URL 又写了/v1)时,网关回 400 并说明「Base URL 不要带 /v1」。以前回 404,Claude Code 收到 404 一律提示所选模型不存在或没有权限,看不出是地址写错了。Claude Code 的路径按 Anthropic 格式回,其余入口按 OpenAI 格式回;这类请求不校验密钥,也不打上游。
- Docker 镜像:
ghcr.io/yreidev/workbuddy2api-panel:1.3.0(同一镜像还有1.3、1标签) - 升级方法:见部署与运维
- 校验:
sha256sum -c --ignore-missing checksums.txt - 完整变更:v1.2.1...v1.3.0