本帖使用社区开源推广,符合推广要求。我申明并遵循社区要求的以下内容:
- 我的帖子已经打上 开源推广 标签: 是
- 我的开源项目完整开源,无未开源部分: 是
- 我的开源项目已链接认可 LINUX DO 社区: 是
- 我帖子内的项目介绍,AI生成、润色内容部分已截图发出: 是
- 以上选择我承诺是永久有效的,接受社区和佬友监督: 是
以下为项目介绍正文内容,AI生成、润色内容已使用截图方式发出
CLIProxyAPI 是很多佬友拼车 ChatGPT Pro 20x / Claude Max 20x 订阅的首选 2api 方案,为了防止某个拼友在短时间内把限额蹬完,往往还需要搭配 new-api 对用户进行限额。
但是 CLIProxyAPI + new-api 存在一些弊端,包括:
- 客户端无法使用 WebSocket,只能退化到 HTTP/SSE
- 上游推出新接口、新字段或新事件后,需要等待 new-api 和 CLIProxyAPI 两层都完成适配(当初 OpenAI 推出
/v1/alpha/search 接口 new-api 就适配的挺慢的)
- 多一层流式转发会增加超时、断流、卡流和 Buffer 限制等问题的概率
- 部署维护成本增加,定位问题更困难
好在 CLIProxyAPI 本身支持添加多个客户端 API Key,如果能够对每个 Key 进行单独限额,就能在仅使用 CLIProxyAPI 的情况下完成用户限额。
为此,我开发了 cpa-plugin-key-billing 插件,该插件做的事情十分简单,在请求进入时识别 API Key 并检查订阅额度(额度不足时拦截请求),请求完成后插件根据模型定价计算费用,再更新该 Key 的用量。

该插件具有以下特性:
- 支持定期重置额度,每个 API Key 独立计时
- 支持按输入 Token 阈值切换长上下文阶梯计价
- 可从 models.dev 获取模型参考价,不用挨个设置模型定价
下面是插件的功能/界面展示:
API Key 计费页面展示每个 API 的用量情况,可以为特定 API Key 选择订阅计划和重置额度。还能为 API Key 设置备注,设置成使用该 API Key 的用户名就能更好的区分每个 API Key 了

订阅计划页面可以新建订阅计划,额度和重置周期都能自定义,创建订阅计划的时候还能批量选择 API Key,创建完立马把该计划应用到选择的 API Key 上,不用去 API Key 页面一个一个调

模型定价页面可以设置模型定价,如果 models.dev 上有匹配的模型 ID,则会自动应用参考价,不用一个一个模型设置。模型定价支持长上下文阶梯价

计费日志页面可以看到最近的一些请求计费情况

总的来说,该插件实现非常简单基础,没有倍率支持、没有汇率转换等高级功能(将来也不打算支持)。合适的场景是和三五好友拼车使用 ChatGPT Pro 20x / Claude Max 20x 账号,而不是大规模商业应用。
欢迎各位佬友试用: