手把手教你搭建免费AI API中转服务:把网页版额度变成标准接口
很多人花钱买便宜的API中转服务,其实自己就能搭。这篇文章把整个方法讲清楚,不需要复杂的编程知识,跟着步骤操作就行。
为什么你需要这个?
如果你手头有ChatGPT Plus、Claude Pro或者Gemini的账号,每个月的订阅费都交了,但这些额度只能在他们各自的网页上用。你想写个程序调用AI,OpenAI要一套代码,Claude又要换一套,Gemini还得再改。更麻烦的是,哪个服务出问题,你的整个流程就卡住了。
淘宝上那些卖“低价API中转”的商家,价格从几块到几十块不等,他们卖的就是把网页版免费额度包装成API服务。中间的差价能有3到10倍。其实你自己也能做,只需要一个工具。
CLIProxyAPI是什么
CLIProxyAPI就是一个反向代理加API适配层。它做的事情很简单:你登录ChatGPT、Claude或者Gemini的网页版,浏览器里会产生一个OAuth Token。CLIProxyAPI拿到这个Token,模拟成API调用的方式,把你的请求发给AI平台,然后把返回结果整理成标准的OpenAI格式。
对外提供的接口和OpenAI官方完全一样,比如/v1/chat/completions、/v1/models这些端点都有。所以任何支持自定义API地址的工具,都能直接连上它。
支持的平台包括ChatGPT、Claude、Gemini、Codex、Kimi,还在不断增加。
安装步骤
整个安装分三步:装Docker、拉项目、配配置文件。
第一步:安装Docker
如果你的服务器还没装Docker,执行下面命令:
sudo apt update && sudo apt install -y docker.io curl git
sudo systemctl enable --now docker第二步:拉取项目代码
mkdir -p ~/cli-proxy-api/
cd ~/cli-proxy-api/
git clone https://github.com/router-for-me/CLIProxyAPI.git
cd CLIProxyAPI第三步:创建配置文件
复制示例配置文件:
cp config.example.yaml config.yaml
nano config.yaml配置文件内容如下(简化版,只保留必要部分):
host: "0.0.0.0"
port: 8317
tls:
enable: false
remote-management:
allow-remote: true
secret-key: "自己设一个密码"
auth-dir: "~/.cli-proxy-api"
api-keys:
- sk-你的OAuth-token
debug: false这里的关键是api-keys,填的不是花钱买的API Key,而是你网页版登录后在浏览器里拿到的OAuth Token。这是把网页版额度变成API的核心。
第四步:运行服务
bash docker-build.sh
docker compose up -d如果遇到权限问题(提示无法连接docker daemon),执行:
sudo usermod -aG docker $USER
newgrp docker
# 然后重新运行上面的命令
bash docker-build.sh
docker compose up -d验证是否启动成功:
docker ps第五步:访问管理后台
打开浏览器访问:http://你的服务器IP:8317/management.html
如果你在config.yaml里设置了host: "0.0.0.0",就可以通过局域网访问。
第六步:绑定你的AI账号
在管理后台登录你自己的ChatGPT、Claude等网页版账号,系统会自动获取Token额度。你可以同时登录多个账号,系统会自动分配使用,账号越多可用的额度越大。
怎么和其他工具配合
有了这个API,你就可以把它和各种自动化工具串起来。
配合任务调度工具
像Hermes这样的任务调度框架,支持定时触发任务。你只需要把CLIProxyAPI的地址填进AI后端配置里,它就能调用你绑定的任何模型。比如每天凌晨3点自动生成日报,用Claude还是ChatGPT随你选。
配合数据抓取工具
OpenClaw负责从网页上抓数据,比如用户评论、新闻、价格变动。抓完之后直接发给CLIProxyAPI,让AI来处理这些数据。OpenClaw的AI接口也兼容OpenAI格式,改一下base URL就接上了。
配合代码生成工具
Claude Code和Codex都支持自定义API地址。以Claude Code为例:
export ANTHROPIC_BASE_URL=http://localhost:8317/v1
export ANTHROPIC_API_KEY=sk-你的key
claudeCodex也一样:
export OPENAI_API_BASE=http://localhost:8317/v1
export OPENAI_API_KEY=sk-你的key从这些工具的角度看,它们完全不知道后面走的是网页版额度,正常调用就行。
常见问题和解决方法
端口被占用:8317端口如果已经被占用,需要在config.yaml和docker命令里同时改掉端口号,不能只改一处。
Token过期:网页版的Token有有效期,过期后调用会报401错误。CLIProxyAPI支持自动刷新,但配置要正确。如果突然大量报错,先检查Token状态。
调用频率限制:网页版额度有限,调用太频繁会触发限制。CLIProxyAPI有并发控制选项,根据你的实际额度调整。
最后说几句
这套方案本质上就是用一层轻量的代理,把分散的网页版额度打包成一个标准API。我自己跑了一段时间,稳定性还可以,偶尔Token过期需要手动刷新一下,其他时候基本不用管。
如果你有条件,可以购买网页版的会员,获取更高额度,搭配使用体验会更好。
整个方法不复杂,跟着步骤操作半小时就能搭好。以后写自动化脚本,再也不用换一套代码换一套SDK了。
本文内容仅供个人学习、研究或参考使用,不构成任何形式的决策建议、专业指导或法律依据。未经授权,禁止任何单位或个人以商业售卖、虚假宣传、侵权传播等非学习研究目的使用本文内容。如需分享或转载,请保留原文来源信息,不得篡改、删减内容或侵犯相关权益。感谢您的理解与支持!