15 分钟搭建本地 AI API 网关

2 次阅读 0 点赞 0 评论 7 分钟原创技术教程

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

#AI工具 #API代理 #Cursor #LLM #开发者工具
15 分钟搭建本地 AI API 网关

15 分钟搭建本地 AI API 网关

平时写代码开了 Cursor,想换模型又去装 Claude Code,偶尔还要切 Copilot。每个工具认证方式不同、额度限制各异,频繁切换让人头疼。更麻烦的是,AI 模型各自协议独立,统一调用需要自己写适配层对接。

本文带你从零搭建 CLIProxyAPI 代理服务,编译、配置、调用一气呵成。完成后,所有 AI 模型统一暴露为 OpenAI 兼容的 API 接口,Cursor、Continue、甚至自定义脚本都能直接对接。

前置准备

  • Go 环境:Go 1.21+(项目使用 Go 编译)
  • 基础命令行操作:会用 git clonecdcurl 即可
  • 至少一个 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 Codexhttp://localhost:8080/oauth/openai
  • Google Geminihttp://localhost:8080/oauth/antigravity
  • xAI Grokhttp://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 URLhttp://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 做用量可视化

有问题欢迎留言交流。

最后更新:2026-09-19T10:03:07

评论 (0)

发表评论

blog.comments.form.loading
0/500
加载评论中...