API Nexus —— 一个本地 AI 模型网关
API Nexus —— 一个本地 AI 模型网关
前言
用 AI 用得越多,越会撞上同一个烦恼:手里攒了一堆 API Key,DeepSeek、OpenAI、智谱、Kimit……每个客户端都得单独配一遍 base_url 和 key;有的工具只认 OpenAI 格式,有的(比如 Claude Code)只认 Anthropic 格式,想换个供应商就得到处改配置。
API Nexus 就是我为了解决这件事写的一个小工具——一个跑在本地的 AI 模型网关。它把所有供应商收拢到一个统一入口后面,对外同时暴露 OpenAI 和 Anthropic 两套兼容接口,谁来都能接上;中间还会做协议互转、优先级路由和故障回退。说人话就是:客户端只管连本地这一个地址,剩下的脏活累活交给它。
它能做什么
- OpenAI 兼容入口:
/v1/chat/completions、/v1/completions、/v1/embeddings、/v1/models - Anthropic 兼容入口:
/v1/messages、/v1/messages/count_tokens - 双向协议转换:OpenAI Chat Completions 和 Anthropic Messages 两种协议之间自动互转。也就是说,一个只会说 Anthropic 协议的客户端(比如 Claude Code),可以无缝调用一个只提供 OpenAI 接口的供应商,反之亦然。
- 优先级路由与故障回退:给每个供应商设优先级,请求按优先级走;上游挂了或报错,自动 fallback 到下一个。
- 供应商预设:内置了一票常见厂商的预设,填 Key 就能用。
- 本地代理 Key 保护:对外的本地接口可以单独设一个代理 API Key,不会把真实上游 Key 直接暴露给每个客户端。
- 桌面 UI:基于 Tauri 的桌面应用,供应商管理、模型管理、用量统计都有可视化页面。
技术栈
这个项目我用的是 Tauri 2 的架构,前后端分得很干净:
| 层级 | 技术 |
|---|---|
| 桌面外壳 | Tauri 2 |
| 前端 UI | React 18 + TypeScript + React Router |
| 样式 | Tailwind CSS |
| 构建 | Vite 6 |
| 后端核心 | Rust |
| HTTP 服务 | axum + tokio |
| 上游请求 | reqwest |
选 Tauri 而不是 Electron,主要是图它轻——核心代理逻辑用 Rust 写,常驻后台也不吃内存;UI 那部分用 React 写起来顺手,热更新体验也好。后端的代理服务跑在 axum 上,默认监听 127.0.0.1:11434。
内置的供应商预设
为了省去查文档填 base_url 的功夫,我把常用厂商都做成了预设,选一个、填上 Key 就能用:
- DeepSeek(OpenAI 协议 / Anthropic 协议两版都有)
- OpenAI
- Anthropic
- Gemini(OpenAI 协议)
- Mistral
- xAI
- Kimi
- OpenRouter
- SiliconFlow(硅基流动)
- 火山方舟
- 智谱 GLM
- 腾讯混元
- 百度千帆
当然,预设之外你也可以手动加任意 OpenAI / Anthropic 兼容的供应商,自定义 base_url 和模型列表。
跑起来
开发环境:
1 | npm install |
跑 Tauri 桌面应用:
1 | npm run tauri dev |
打包:
1 | npm run tauri build |
客户端怎么连
API Nexus 起来之后,把客户端指向本地这一个地址就行。
OpenAI 兼容的客户端:
1 | base_url = http://127.0.0.1:11434/v1 |
Anthropic 兼容的客户端(包括 Claude Code):
1 | ANTHROPIC_BASE_URL=http://127.0.0.1:11434 |
客户端那边的 API Key,填你在 API Nexus 里设的那个代理 Key 就好——真实的上游 Key 只存在网关里,不用散落在各个工具的配置文件里。
一个典型用法
我自己最常用的场景,是拿它给 Claude Code 喂便宜的国产模型。Claude Code 只认 Anthropic 协议,但我想用走 OpenAI 协议的某家供应商——直接配是配不上的。有了 API Nexus,把它的 Anthropic 入口指给 Claude Code,再让网关在背后把请求转成 OpenAI 协议发给真正的上游,就通了。同时还能配上多家供应商做优先级和回退,主力额度用光了自动切备用,体验上几乎无感。
开源地址
项目已经开源,欢迎 Star / Issue / PR:
👉 https://github.com/wweiyi2004/api-nexus
如果你也被一堆 API Key 和不兼容的协议折磨过,不妨试试看。
