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
2
npm install
npm run dev

跑 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 和不兼容的协议折磨过,不妨试试看。