站点图标 高效码农

还在为AI额度爆炸抓狂?5分钟部署开源代理API,永久告别“429 Too Many Requests”

还在为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-keyssecret-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这类代码生成工具,接入逻辑完全一样:

  1. 找到工具的API设置,把请求地址改成http://你的IP:8317/v1
  2. API密钥填config.yaml里的api-keys
  3. 模型名填代理支持的映射名称(管理面板里能看到完整列表)

以VSCode的Continue插件为例,在config.json里这样配:

{
  "models": [
    {
      "title": "MyProxy-GPT",
      "provider": "openai",
      "model": "gpt-4",
      "apiBase": "http://localhost:8317/v1",
      "apiKey": "你的自定义密码"
    }
  ]
}

保存后重启VSCode,侧边栏的模型下拉框里就会出现这个选项。写代码、问问题,背后走的全是你的代理池。

老张实测: 用这套配置跑代码生成任务,连续工作4小时,没遇到一次配额超限。而如果用原生API,这个量级至少得准备3-4个付费账号轮换。


实用摘要 / 操作清单

如果你现在准备动手,按这个顺序来,基本不会出岔子:

  1. 下载对应架构的压缩包,解压到无中文路径的目录。
  2. 新建config.yaml,复制上面的模板,修改端口、密钥、策略。
  3. 终端运行cli-proxy-api,确认服务无报错。
  4. 访问http://localhost:8317/management.html,用secret-key登录。
  5. 添加OAuth账号(至少一个Google账号,多个更好)。
  6. 在任意OpenAI兼容客户端中,设置API地址为http://你的IP:8317/v1,密钥为config.yaml中的api-keys
  7. 选一个模型发条消息,验证回复正常。

一页速览(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,经常分享更新和踩坑经验。

退出移动版