HybridInference
HybridInference 是一个开源的 LLM 推理网关。它对外只提供一套 OpenAI 兼容的 HTTP API,背后可以同时接你自己部署的推理服务器(vLLM、SGLang、Ollama,或其他任何兼容 OpenAI API 的服务)和各家托管的 provider API,每个请求交给谁来回答,由网关决定。
整个系统围绕一个想法:客户端请求的是模型 id,而实际处理请求的端点可以随时替换。同一个模型 id 背后可以同时挂多条路由,于是可以按权重在它们之间分流、在某个端点变差时自动切到别的路由、分别计价并记录日志——客户端一行代码都不用改。
这份文档讲的是网关软件本身:怎么运行、怎么理解、怎么扩展,以及怎么参与开发。源码在 github.com/HarvardMadSys/hybridInference,采用 MIT 许可;发现 bug 或有问题,请提交到它的 issue tracker。
包含哪些部分
OpenAI 兼容的接口——
POST /v1/chat/completions、POST /v1/embeddings、POST /v1/responses和GET /v1/models;另外,/v1/messages和/anthropic/v1/messages提供 Anthropic Messages 接口,方便使用这套协议的客户端。路由引擎——每个模型可以选自己的 router;同一个模型 id 的多条路由按权重挑选,失败了自动换下一条;每个端点还有熔断器,持续失败的端点会被暂时移出。
provider adapter——一个通用的 OpenAI 兼容 adapter,你自己部署的本地服务器也用它;另外还有 OpenRouter、Anthropic 官方 API、Google Vertex 上的 Claude 和 Gemini 的专用 adapter。
Web 控制台与管理后台——一个 Next.js 应用,提供注册登录、API key 管理、用量和最近请求、对话调试页(playground),以及管理后台:用户、模型可见性、provider key、路由权重和数据分析。
运行数据存储——用 Postgres 存账号、API key 和请求日志;表结构由网关在启动时自动创建,不需要单独的迁移工具。
后端是 apps/backend/ 下的 Python 代码(3.10–3.13),分成两部分:serving/(HTTP 接口、鉴权、adapter、存储、可观测性)和 routing/(路由表、路由策略、端点健康、回退)。控制台是 apps/frontend/ 下的 Next.js 应用。整个仓库采用 MIT 许可证。
从哪里开始
如果你想 |
看这里 |
|---|---|
不用账号、key 或 GPU,先看网关处理一次请求 |
|
用真实的 provider 跑起你自己的网关 |
|
了解发行版能配置、能定制哪些东西 |
|
跟着一个请求,从 HTTP 入口一路走到上游调用 |
|
从网关已经支持的 provider 再接入一个模型 |
|
接入一个网关还不支持的 provider API |
|
不改 YAML、不重启,直接在管理控制台里添加 provider、key 或模型 |
配置 里的从管理控制台做运行时配置一节 |
改变端点的挑选方式,或者自己写一个路由策略 |
|
提交代码改动 |
|
确认运行的是哪个版本,或规划一次升级 |
|
查一个术语,例如路由、端点或发行版 |
本站的范围
这些页面讲的是软件本身,不针对任何一个具体部署。某个网关提供哪些模型、怎么在上面开账号,由各自的运营方另行公布。
仓库的组织方式也体现了这一点:每个部署把自己的站点信息、配置文件位置和功能开关放在 distributions/ 下的发行版 overlay里,而不是写进代码。所以新克隆下来的仓库不带任何别人的部署信息,跑起来就是你自己的网关。怎么配置和扩展 overlay,见 发行版定制。
入门
定制部署