llmix
生产级 LLM 调用中间件:模型热切换、缓存、熔断、Key 轮换,三语言同构(Python/TS/R
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
生产级 LLM 调用中间件:模型热切换、缓存、熔断、Key 轮换,三语言同构(Python/TS/R
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
想象一下这样的场景:你的 AI 产品已经上线运营了三个月,调用的是 OpenAI GPT-4,突然某天 GPT-4 的 API 价格上涨了两倍,或者响应速度明显变慢,你怎么办?大多数团队的选择是——改代码、换模型、发版、回滚,整个流程可能需要一到两天,期间服务还不稳定。
sno-ai/llmix 就是来解决这个痛点的。它是一个生产级的 LLM 调用中间层,核心理念非常清晰:你继续用你熟悉的 SDK,但把模型切换变成一个纯粹的配置变更,而不是代码变更。换模型不需要重新部署,一行配置改完,服务热加载,下一个请求就自动走新模型。
这个思路解决的不只是「换模型」一件事。在实际生产环境中,LLM 调用还面临一系列「外场问题」:某个 API Key 被限流、两个用户同时问了同一个问题导致重复 token 消耗、供应商服务变慢需要熔断降级、Key 需要定期轮换防止泄露……这些都发生在 SDK 调用和模型响应之间的那段「空白地带」,而这恰恰是 LLMix 要填满的地方。
LLMix 最有意思的设计哲学是三语言同构(Polyglot Parity)。同一个项目同时维护 Python、TypeScript 和 Rust 三个实现版本,且通过版本校验脚本 scripts/check-version-parity.sh 确保三个语言包的功能完全对齐。这意味着如果你有一个 Python 后端服务和一个 TypeScript 前端 AI 助手,它们可以共享完全相同的 MDA preset 配置文件,在运行时表现出完全一致的模型切换、重试和缓存行为。
这个多语言架构在真实业务中非常实用。AI 产品往往涉及异构技术栈:Python 数据处理 + TypeScript 前端 + Rust 高性能推理节点。用 LLMix,三个模块对模型行为的认知是同一个版本,不存在「Python 测过了但 TypeScript 没测」的分歧。
从 monorepo 结构来看,项目分为 llmix 和 mda-config 两个子包:
MDA(Model-Deploy-Adapter)是 LLMix 的核心概念。你可以把它理解为一份「模型配置文件」,定义了:
配置通过 mda-config 包管理,可以发布到 compiled registry。应用在运行时动态加载配置,模型切换对业务代码完全透明。对于 AI 产品的持续迭代和 A/B 测试来说,这个能力价值巨大——同一个服务同时跑两种模型,流量比例随时调整,不需要发版。
LLMix 的模块列表几乎涵盖了 LLM 调用中最常见的所有可靠性问题:
| 模块 | 功能 |
|---|---|
| Response Cache | 基于语义相似度的响应缓存,相同问题不重复消耗 token |
| Circuit Breaker | 供应商响应超时时自动熔断,快速失败防止级联拖垮 |
| Key Pool | 多 Key 轮换,单个 Key 限流时自动切换 |
| Singleflight | 相同请求合并为一次调用,减少重复计算 |
| Retry Policy | 可配置指数退避重试策略 |
| Adaptive Semaphore | 根据供应商负载动态控制并发量 |
特别值得一提的是 Key Rotation(密钥轮换)。在生产环境中,API Key 泄露是常见风险,传统做法是定期手动换 Key 并更新代码。用 LLMix,只需更新 key pool 配置,服务自动热加载,风险窗口从数小时缩短到分钟级。
LLMix 的安装极为简单,没有 Docker,没有复杂的部署步骤。三个语言任选其一:
# Python
pip install sno-llmix
# TypeScript
npm install @snoai/llmix
# Rust
cargo add llmix-rs
Python 需要 3.14+,TypeScript 需要 5.0+,Rust 需要 1.83+。安装完成后,通过 MDA preset 配置文件指定模型和 adapter,即可开始使用。官方文档提供 Python、TypeScript、Rust 三种语言的示例,覆盖了从基础调用到高级配置的全部场景。
LLMix 的定位是「调用层」而非「推理层」,它对模型的调用能力完全依赖底层 SDK 的实现。这意味着如果某个模型的 SDK 本身有 bug 或限制,LLMix 并不能绕过它。此外,由于是纯库形式,没有提供 Web UI 或管理界面,配置的调试和可视化需要依赖外部工具。
另一个值得关注的点是 Python 3.14+ 的门槛:目前 Python 3.14 仍处于早期采用阶段,大量生产环境仍在使用 3.10-3.12 版本,这可能限制了该库在保守型团队中的推广。
LLMix 所在的赛道是 LLM 基础设施的「中间件层」。2025-2026 年,随着大模型供应商越来越多、模型迭代速度越来越快,模型切换和供应商管理已经成为 AI 产品团队的刚性需求。以往这是每个团队自己解决的内部问题,现在以 LLMix 为代表的基础设施库正在将其标准化。
从技术趋势来看,三语言同构的设计非常符合当下 AI Agent 多运行时部署的需求——同一套业务逻辑可能跑在 Python 的 LangChain 后端、TypeScript 的 AI SDK 前端,以及 Rust 的边缘推理节点上。共享一份配置、保持行为一致,这个需求只会越来越强烈。
开源协议采用 Apache 2.0,代码可自由商用,对于需要将 LLMix 集成到商业产品的团队非常友好。