ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

LiteRouter:一个超轻量的 LLM API 网关,让你的多模型接入不再散落一地

LiteRouter:一个超轻量的 LLM API 网关,让你的多模型接入不再散落一地 一个 Rust 二进制 一个 SQLite 文件就能把 OpenAI、Claude、各种中转站统一收口成你自己的sk-…端点。先说痛点当你在使用 LLM API的时候十有八九会撞上这几件事凭据散落各处——OpenAI、Anthropic、某国内云、几个中转站每个项目维护一套API_KEY离职交接、轮换密钥、权限回收全靠人肉记事本。上游抖动没人兜底——A 厂商 5xx、B 厂商限流、C 厂商超时业务方只能被动看到错误想做自动切下一个渠道就得自己写重试和熔断。协议不互通——你用的是 Anthropic SDK (POST /v1/messages)但手上只有 OpenAI 协议的渠道要嘛换 SDK要嘛自己写转换包括流式响应、tool calls、token 计数。用量不可见——谁、什么时候、用了哪个渠道的哪个模型、消耗多少 token、花了多少钱没有面板就只能去翻各家后台。客户端断开还在烧配额——流式响应用户关页面了上游请求还没取消照样计费、照样扣额度。多个客户端各自维护一份配置清单——桌面端一份、Web 一份、移动端一份、内部脚本一份……上游要切一个渠道、加一个模型、改一个 base_urlN 份配置就得改 N 次版本不一致时还会出现我这能跑、TA 那 503的玄学问题。如果你点过头那这个项目就是写给你的。LiteRouter 是什么LiteRouter是一个轻量级的 LLM API 网关把所有上游 LLM 服务OpenAI / Claude / 中转站 …聚合在同一个端点后面对外签发你自己定义的sk-…访问令牌再帮你搞定模型路由、多渠道故障转移、协议转换、用量统计这一整套脏活。单一 Rust 二进制 单文件 SQLite零外部依赖拉下来就跑内置 Web 管理界面Vue 3 Element Plus不需要再装任何外部面板单容器镜像约 22 MB基于alpine:3.20一条docker compose up -d就上线定位一句话“自托管版的 OneAPI但更轻、更克制、更适合个人和小团队”。它能做什么1. 一个端点两套协议对外只暴露http://your-host:3000/v1POST /v1/chat/completions—— OpenAI Chat Completions 协议POST /v1/messages—— Anthropic Messages 协议两边都原生支持 SSE 流式透传下游 SDK 不用改一行代码只换base_url和api_key。2. 协议自动转换最香的功能Anthropic 协议的客户端可以直接打 OpenAI 协议的渠道反之亦然零配置。比如你装了 Claude CodeAnthropic 协议但手里只有 OpenAI 兼容渠道照样能用——网关自动把请求体转过去、流式响应再转回来包括 tool calls。3. 模型路由 多渠道故障转移Channel填入上游的 OpenAI URL / Anthropic URL / 模型列表 / API KeyMapping把客户端的虚拟模型名比如my-gpt-4o映射到一组真实的上游模型 ID按顺序尝试任何一个候选非 2xx 或传输错误就自动切下一个400/422 这种客户端错误直接返回不浪费上游配额支持models *通配符过渡期最方便4. 内部令牌 配额自己签发sk-…令牌给内部服务或个人用户可选每分钟请求数RPM限制每日 token 用量限制超额直接 429权限清晰老板再问这个 token 是谁发的你能秒答。5. 客户端断开 → 上游自动取消SSE 流式响应中下游一旦断开用户关页面、网络断axum 的取消令牌会立刻 abort 上游 reqwest 请求不再继续烧上游配额。这个细节是商业部署的真痛点。6. 熔断器可选后台有一个轻量级熔断器连续失败 → 半开探测 → 恢复后自动重新放行。指数退避30 → 60 → 120 …可配上限。单渠道雪崩时其它渠道照常服务。7. 用量与日志每一条请求都落库渠道、模型、状态码、prompt / completion / total token、耗时。管理界面有调用日志和用量统计两个面板管理员看全局普通用户只看自己的。技术栈亮点后端Rust axum0.7 sqlx0.7 (SQLite) reqwesttokio前端Vue 3 Vite Element Plusvue-i18n支持中英双语密码PBKDF2-HMAC-SHA25610 万轮32 字节输出纯 Rust 实现alpine 编译毫无压力数据库迁移sqlx 嵌入式启动时自动跑不允许在db.rs里手写CREATE TABLE测试8 个集成测试套件 一堆单元测试约 236 个用例前端 14 个 vitest 套件 i18n key parity 检查一句话概括这是一个对工程整洁度有要求的项目不是 hack 出来的脚本。适合谁不想把 OpenAI/Claude 凭据直接塞进业务代码的个人开发者用多个中转站/渠道想做自动故障转移的小团队需要把上游协议和下游 SDK解耦的项目特别是 Anthropic ↔ OpenAI 混用对自托管敏感、希望部署物尽量小、尽量少外部依赖的人想给内部服务统一配额和用量看板的团队30 秒上手最快的部署方式直接拉预构建的镜像。镜像已经公开发布在 GitHub Container Registry。1. 在数据目录旁边写一份compose.ymlservices:literouter:image:ghcr.io/qihangkong/literouter:v0.0.3container_name:literouterports:-${PORT:-3000}:3000environment:-LITEROUTER_DB/app/data/literouter.dbvolumes:-./data:/app/datarestart:unless-stopped2. 启动mkdir-pdatadockercompose up-d打开http://localhost:3000向导会引导你创建第一个管理员账号登录后到Channels加几个上游、Tokens签发一个内部 key下游 SDK 就能跑了。注意必须显式设LITEROUTER_DB/app/data/literouter.db。漏了这一行数据库会落到容器可写层下次重建容器时数据静默丢失不会有任何报错。上面这份 compose 已经替你设好了。要换端口PORT8080 docker compose up -d。升级dockercompose pulldockercompose up-d启动时会自动跑 schema migration自 v0.0.2 起都是INSERT OR IGNORE类老数据无损。想从源码构建gitclone https://github.com/qihangkong/LiteRouter.gitcdLiteRouterdockercompose up-d--build本地开发模式./run.sh start# 后端 3000前端 5173带 HMR访问 http://localhost:5173GitHub代码、文档、Changelog、Release 都在 GitHub 上欢迎来挑刺、提 Issue、或者直接 ⭐ ** GitHub LiteRouter**如果你正好被多 LLM 渠道管理折磨过这可能是你今晚最值得花 10 分钟看的一个仓库。
返回列表