15 分钟搭建本地 AI API 网关
厌倦在不同 AI 编程工具间反复切换?本文手把手带你编译安装、配置认证、验证调用,搭建 CLIProxyAPI 本地代理服务。完成后主流 AI 模型统一暴露为 OpenAI 兼容接口,Cursor 等工具无需改代码即可切换模型,支持多账号自动负载均衡。

15 分钟搭建本地 AI API 网关
平时写代码开了 Cursor,想换模型又去装 Claude Code,偶尔还要切 Copilot。每个工具认证方式不同、额度限制各异,频繁切换让人头疼。更麻烦的是,AI 模型各自协议独立,统一调用需要自己写适配层对接。
本文带你从零搭建 CLIProxyAPI 代理服务,编译、配置、调用一气呵成。完成后,所有 AI 模型统一暴露为 OpenAI 兼容的 API 接口,Cursor、Continue、甚至自定义脚本都能直接对接。
前置准备
- Go 环境:Go 1.21+(项目使用 Go 编译)
- 基础命令行操作:会用
git clone、cd、curl即可 - 至少一个 AI 账号:Claude Code / ChatGPT Codex / Kimi / Gemini 任一,支持 OAuth 认证
- 可选:Docker(容器化部署)
不需要懂 Go 源码,把它当成可调用的网络服务即可。
编译安装
从 GitHub 拉取代码并编译:
bash
git clone https://github.com/router-for-me/CLIProxyAPI.git
cd CLIProxyAPI
go mod tidy && go build -o cliproxyapi .
编译完成后,当前目录生成 cliproxyapi 可执行文件。整个过程通常 1-2 分钟,取决于网络状况。
Go 编译出的二进制文件没有外部依赖,部署到服务器直接运行即可,这也是 Go 语言适合做基础设施工具的优势。
启动服务
CLIProxyAPI 启动后监听本地端口,将多个 AI 提供商请求统一转发。
bash
./cliproxyapi --port 8080
启动后显示日志:
[CLIProxyAPI] Server started on :8080
[CLIProxyAPI] OpenAI-compatible endpoint ready
服务已经开始运行,但此时还没有配置任何提供商,调用接口会返回空响应。
OAuth 接入 Claude Code
Claude Code 走 OAuth 流程,无需手动管理 API Key。浏览器访问:
http://localhost:8080/oauth/claude
按页面提示登录 Anthropic 账号并授权。CLIProxyAPI 自动获取 token,后续 /v1/chat/completions 请求即可打到 Claude 模型。
项目还支持其他提供商,访问路径类似:
- OpenAI Codex:
http://localhost:8080/oauth/openai - Google Gemini:
http://localhost:8080/oauth/antigravity - xAI Grok:
http://localhost:8080/oauth/grok - Kimi:通过 Kimi Open Platform 获取 API Key 或在配置中填入
OAuth 认证对开发者最省事——不用管密钥轮换、不用填配置文件,浏览器点一下授权即可。个人开发者快速验证,这是最优路径。
验证接口通路
新开终端执行 curl 请求:
bash
curl http://localhost:8080/v1/chat/completions \
-H "Content-Type: application/json" \
-d '{
"model": "claude-sonnet-4-20250514",
"messages": [{"role": "user", "content": "用一句话解释什么是微服务"}]
}'
返回标准 OpenAI Chat Completion 响应格式:
json
{
"id": "chatcmpl-xxx",
"object": "chat.completion",
"created": 1726750000,
"choices": [{
"index": 0,
"message": {
"role": "assistant",
"content": "微服务是将大型应用拆分为多个独立部署的小型服务..."
},
"finish_reason": "stop"
}],
"usage": {"prompt_tokens": 20, "completion_tokens": 45, "total_tokens": 65}
}
choices[0].message.content 有内容返回,说明代理网关已经跑通。此时它就是一个标准的 OpenAI-compatible API 端点,任何支持 OpenAI SDK 的工具都能直接使用。
接入 Cursor
Cursor 是最常用的 AI 编程工具之一,接入步骤如下:
打开 Cursor Settings → Features → AI:
- API Base URL:
http://localhost:8080/v1 - API Key:填占位符如
local-proxy(本地 OAuth 无需真实 Key) - Model:选择
claude-sonnet-4-20250514或其他目标模型
保存后回到 Chat 面板测试。Cursor 支持多模型切换时,可同时配置多个 provider,编辑器内随时切换。统一 API 接口的威力在于——改 endpoint 就能换模型,不需要改工具代码。
多账号负载均衡(进阶)
CLIProxyAPI 支持同一提供商配置多个账号,自动轮询分发请求。团队开发时,一人额度用完自动切到下一个可用账号。
完成多次 OAuth 登录后,CLIProxyAPI 自动管理账号池,按 round-robin 策略分配请求。
生产环境建议配合 CPA-Manager-Plus 等第三方管理工具,可视化监控每个账号的额度、延迟、token 消耗,自动剔除不健康账号。
常见问题
端口被占用? 加 --port 9090 指定新端口,同步修改调用方 Base URL。
返回 401 或空响应? 大概率未完成 OAuth 授权。浏览器访问对应 provider 路径(如 http://localhost:8080/oauth/claude)确保登录成功。
部署到服务器? 用 nohup ./cliproxyapi --port 8080 > log.txt 2>&1 & 后台运行,或 Docker 打包。防火墙规则只允许信任 IP 访问对应端口。
支持流式响应? 支持。curl 请求加 "stream": true,服务按 SSE 格式逐 token 返回。Cursor、Continue 等工具默认开启 stream 模式。
总结
编译安装、OAuth 接入、curl 验证、Cursor 对接,本地 AI 统一网关搭建完成。
核心思路:抹平不同 AI 提供商的差异,对外暴露统一的 OpenAI 兼容接口。以后接任何 AI 工具,Endpoint 指向本地代理,路由、认证、负载均衡全交给 CLIProxyAPI 处理。
深入探索方向:
- 查看项目
docs/sdk-usage.md,学习 Go 代码嵌入 CLIProxyAPI - 试用 Management API,实现运行时动态管理账号和配置
- 搭配 CPA Usage Keeper 做用量可视化
有问题欢迎留言交流。