还在为AI的Token额度崩溃?这个开源项目让我彻底告别“429 Too Many Requests”
如果你每天打开ChatGPT、Claude或者Gemini,第一眼看到的不是回复,而是“quota exceeded”、“429”或者“额度不足”——那你跟我一样,被折磨得够呛。
说实话,这几个月我试过无数办法:换账号、买plus、甚至研究怎么薅各个平台的免费试用。折腾一圈下来发现,真正解决问题的不是花钱,而是一个叫CLIProxyAPI的开源小工具。
今天我把这套方案完整拆出来,手把手教你5分钟搭好。不扯虚的,全是实操。
本段欲回答的核心问题:为什么我们需要一个本地代理来封装这些API?
先聊点实在的。OpenAI的API调用成本,懂的人都懂——200美金的额度听着不少,真跑几个代码生成任务,几天就没了。Claude更狠,刷着刷着突然给你个“quota exceeded”,进度全丢。Gemini那边,429错误码简直是日常问候。
老张我踩过这些坑之后发现,问题的根源不在于“有没有额度”,而在于额度分配的方式太死板——单个账号的配额用完了就是完了,但如果我们能把多个账号、多个模型的配额聚合起来,轮询使用,是不是就能绕开这个限制?
CLIProxyAPI做的就是这件事。它把GPT、Gemini、Claude、Qwen3、Kimi、GLM这些模型,全部封装成OpenAI和Anthropic的标准API接口。你本地跑起来之后,上层应用根本不知道背后在轮询哪个账号、哪个模型,它只知道——请求发出去,结果回来,额度好像永远用不完。
这玩意儿不是魔法,是负载均衡。
一、安装配置:从下载到跑起来,别跳步
本段欲回答的核心问题:如何正确安装CLIProxyAPI并确保服务正常启动?
先去GitHub Release页面,找到对应你系统架构的压缩包。Windows用户选windows_amd64,Mac看你是Intel还是M芯片,Linux同理。下载完别急着双击——这玩意儿是命令行工具,不是桌面软件。
1.1 解压与存放
我习惯把这类工具统一放在D:\Program Files\下,方便管理。解压后整个文件夹挪过去,路径里最好不要有中文和空格,避免后续莫名其妙的问题。
D:\Program Files\CLIProxyAPI_6.8.51_windows_amd64\
1.2 创建配置文件
这个工具的核心行为,全写在config.yaml里。你需要手动新建这个文件,放在解压后的根目录。下面是我实际在用的配置,注释都写明白了:
# 服务端口
port: 8317
# 绑定地址(空字符串表示监听所有接口,设置为127.0.0.1仅本地访问)
host: ""
# 认证令牌存储目录
auth-dir: "~/.cli-proxy-api"
# API密钥(客户端调用时需要携带)
api-keys:
- "你的自定义密码"
# 远程管理配置,配合EasyCLI或者WebUI使用
remote-management:
allow-remote: true
secret-key: "你的WebUI登录密码"
# 是否集成WebUI开关,false表示可以通过http://YOUR_SERVER_IP:8317/management.html打开WebUI
disable-control-panel: false
# 调试模式
debug: false
# 请求失败重试次数
request-retry: 3
# 配额耗尽行为:
quota-exceeded:
switch-project: true # 配额耗尽时自动切换项目
switch-preview-model: true # 配额耗尽时自动切换到预览模型
# 负载均衡策略:
routing:
strategy: "round-robin" # round-robin轮询,或fill-first填满优先
老张踩坑提醒:
api-keys和secret-key别设成一样,也千万别用123456这种弱口令。这玩意儿如果暴露在公网,别人就能拿你的聚合池免费跑API——你成了大善人。
1.3 启动服务
在文件夹空白处按住Shift点鼠标右键,选“在终端打开”。然后敲:
cli-proxy-api
如果看到控制台输出一堆日志,最后停在某个端口监听的信息上,恭喜,服务活了。
这一步坑不少:
-
如果提示“端口被占用”,去config.yaml里换个port,比如8318。 -
如果报找不到配置文件,检查一下 config.yaml是不是放在和可执行文件同级的目录,名字大小写对不对。 -
Windows Defender偶尔会拦截,允许就是了。
二、管理配置:通过WebUI绑定你的账号池
本段欲回答的核心问题:如何把多个Google账号或其他OAuth账号添加到代理池中?
服务跑起来之后,打开浏览器访问:
http://localhost:8317/management.html
第一次进去会让你输密码,就是config.yaml里那个secret-key。
2.1 OAuth登录流程
进去之后界面很清爽,核心功能就几个按钮。点击“OAuth登录”,会跳转到Google的授权页面。
这里要说明一下原理:CLIProxyAPI不是直接偷你的账号密码,而是通过OAuth协议获取访问令牌。这个令牌的有效期有限,你可以随时在Google账号的安全设置里撤销。
选择你要添加的Google邮箱,确认授权。页面会提示“认证成功”,然后回到管理界面,你会看到新增了一条认证记录,里面包含了邮箱地址、令牌状态、过期时间。
这一步能加多少个账号?理论上不限。 我试过加了5个,轮询用,Gemini的限额基本没见底过。
2.2 管理面板的其他功能
除了加账号,管理面板还能实时查看每个模型的调用次数、成功率、平均延迟。如果某个账号频繁报错,可以手动把它踢下线,轮询策略会自动绕过它。
老张觉得最实用的功能是“预览模型自动切换”。Gemini有个规律:正式版额度用完了,预览版往往还能撑一阵。把这个开关打开,系统会在正式版报429时自动fallback到预览版,请求基本不断。
三、客户端验证:用Cherry Studio实测调用
本段欲回答的核心问题:配置完成后,如何确认API代理正常工作?
服务跑通、账号加好,最后一步就是用客户端实际调用一下,验证整个链路。
3.1 在Cherry Studio中添加自定义Provider
Cherry Studio是我常用的API调试工具,支持OpenAI格式的自定义接入。打开设置,找到“模型提供商”,点“添加自定义Provider”。
填这几个关键项:
-
名称:随便写,比如“MyProxy” -
API地址: http://localhost:8317/v1 -
API密钥:就是config.yaml里的 api-keys,我设的是你的自定义密码 -
模型列表:可以手动填,也可以让它自动拉取。支持自动拉取的客户端会直接显示可用的模型名。
3.2 可用模型一览
点“获取模型列表”,如果一切正常,你会看到一大串模型名:
-
gpt-4、gpt-3.5-turbo -
claude-3-opus、claude-3-sonnet -
gemini-pro、gemini-ultra -
qwen3、kimi、glm-4
这些并不是本地真的跑了这些模型,而是代理层把后端的各种模型,映射成了标准名称。你请求gpt-4,它可能实际调用的是某个Gemini账号,但返回格式和OpenAI一模一样。
3.3 发起一次对话
选一个模型,比如GPT-5.2-Codex(这名字是自定义的映射,别被迷惑)。输入“写一个Python快速排序”,点发送。
几秒后,回复回来了。检查返回内容的格式,确认是标准的OpenAI completion结构。再看看控制台日志,你会看到类似这样的输出:
[INFO] 2025-03-20 15:23:45 请求分发到项目:google-account-3
[INFO] 2025-03-20 15:23:45 实际调用模型:gemini-1.5-pro
[INFO] 2025-03-20 15:23:48 响应成功,tokens消耗:145
看到没?你请求的是GPT-5.2-Codex,实际干活的是Gemini-1.5-pro。这就是代理的魔力——上层应用无感知,底层资源被充分利用。
四、更多场景:Claude Code、VSCode、OpenCode怎么接?
本段欲回答的核心问题:除了聊天界面,其他开发工具如何接入这个代理?
Cherry Studio只是其中一种客户端。如果你用的是Claude Code、VSCode的Continue插件,或者OpenCode这类代码生成工具,接入逻辑完全一样:
-
找到工具的API设置,把请求地址改成 http://你的IP:8317/v1 -
API密钥填config.yaml里的 api-keys -
模型名填代理支持的映射名称(管理面板里能看到完整列表)
以VSCode的Continue插件为例,在config.json里这样配:
{
"models": [
{
"title": "MyProxy-GPT",
"provider": "openai",
"model": "gpt-4",
"apiBase": "http://localhost:8317/v1",
"apiKey": "你的自定义密码"
}
]
}
保存后重启VSCode,侧边栏的模型下拉框里就会出现这个选项。写代码、问问题,背后走的全是你的代理池。
老张实测: 用这套配置跑代码生成任务,连续工作4小时,没遇到一次配额超限。而如果用原生API,这个量级至少得准备3-4个付费账号轮换。
实用摘要 / 操作清单
如果你现在准备动手,按这个顺序来,基本不会出岔子:
-
下载对应架构的压缩包,解压到无中文路径的目录。 -
新建config.yaml,复制上面的模板,修改端口、密钥、策略。 -
终端运行 cli-proxy-api,确认服务无报错。 -
访问 http://localhost:8317/management.html,用secret-key登录。 -
添加OAuth账号(至少一个Google账号,多个更好)。 -
在任意OpenAI兼容客户端中,设置API地址为 http://你的IP:8317/v1,密钥为config.yaml中的api-keys。 -
选一个模型发条消息,验证回复正常。
一页速览(One-page Summary)
-
项目本质:一个本地运行的代理服务,把多个厂商的API(GPT、Gemini、Claude等)聚合成统一的OpenAI/Anthropic标准接口。 -
核心价值:通过账号轮询和模型降级,让开发者“感觉”额度用不完,彻底摆脱429和quota exceeded。 -
安装时间:熟练工5分钟,新手15分钟能跑通。 -
依赖条件:需要有至少一个可用的OAuth账号(主要是Google),数量越多效果越好。 -
适用场景:代码生成、批量API调用、频繁实验性测试、教育用途。 -
潜在风险:配置不当可能导致代理暴露在公网,被他人盗用;长期大量使用可能触发厂商的风控(但目前看轮询机制能有效分散风险)。
常见问答(FAQ)
Q1:这个代理会帮我免费调用GPT-4吗?
A1:不会。它本身不提供免费额度,只是帮你把已有的多个账号资源聚合起来轮询使用。如果你的账号本身有免费额度或付费订阅,通过代理可以让这些额度“叠加”起来用。
Q2:添加多个Google账号,会不会被官方封号?
A2:目前看风险较低。代理模拟的是正常用户行为,且会在账号之间轮询,不会单一账号高频调用。但任何滥用官方API的行为都有理论上的封号风险,建议适度使用。
Q3:config.yaml里的api-keys和secret-key有什么区别?
A3:api-keys是客户端调用代理时需要提供的密码,相当于你的API Key;secret-key是登录Web管理面板的密码。两者建议设成不同的值。
Q4:为什么我添加了账号,但调用时还是429?
A4:检查两点:第一,账号是否真的还有配额(可以去官方控制台看);第二,管理面板里该账号状态是否正常(如果显示令牌失效,需要重新授权)。另外确认负载均衡策略没有设置成只用一个账号。
Q5:这个代理支持流式输出吗?
A5:支持。它完全遵循OpenAI的流式返回格式,对接SSE的客户端都能正常工作。
Q6:可以在公网使用吗?
A6:技术上可以(host设为空字符串即可),但强烈不建议。如果一定要暴露到公网,务必设置防火墙规则、使用HTTPS反向代理,并启用复杂的api-keys。否则你的代理池会成为全网“公用”资源。
Q7:支持自定义模型映射吗?
A7:管理面板里可以手动配置每个请求对应的实际模型,比如把“gpt-4”映射到“gemini-ultra”。配置文件也支持更细粒度的路由规则。
Q8:这个项目有官方技术支持吗?
A8:开源项目,主要靠社区。遇到问题可以去GitHub提issue,或者看作者的X账号@laozhang2579,经常分享更新和踩坑经验。
