gateway
全本地化生产级 Super SDK,TypeScript 一套代码调用 300+ LLM,通过统一类型系统实现 provider 可插拔切换
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
全本地化生产级 Super SDK,TypeScript 一套代码调用 300+ LLM,通过统一类型系统实现 provider 可插拔切换
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。

凌晨两点,你正在赶一个 AI 功能交付。项目要求同时支持 GPT-4o 写文案、Claude 做推理、Gemini 出图片描述——但三家 API 风格完全不同:OpenAI 用 messages[].role,Anthropic 坚持 system 必须单独拆出来,Google 又是一套 contents[] 格式。你花了一整晚写 adapter,写到第三个 provider 的时候,代码里已经全是 if provider == "openai" 的条件分支,自己都看不懂了。
Adaline Gateway 解决的就是这个痛点。它是一个全本地运行的 TypeScript SDK,用"超级类型"(Super Types)把各家 LLM 的接口抽象成统一格式——不管底层是 GPT-4o 还是 Gemini,开发者只跟一套 API 打交道。
2023 年下半年开始,LLM 市场进入"百模大战"。OpenAI 不再是唯一选择:Anthropic 的 Claude 在长上下文和推理上优势明显,Google Gemini 不断刷新多模态基准,xAI Grok 异军突起,加上 AWS Bedrock、Azure OpenAI、Together AI 等各路玩家,每个 provider 都有自己独特的 API 设计哲学。
这带来了一个现实问题:应用开发者要为每个 LLM 单独维护一套 adapter。代码重复、升级麻烦、测试成本翻倍。LangChain、LiteLLM 等框架尝试解决这一问题,但它们本质上是"代理层"——请求经过中间层转发,数据必须经过第三方服务器。
Adaline 团队在 2024 年初提出了不同的思路:不做代理,做类型桥接层。Gateway 本身是本地 SDK,不转发任何数据,但它用 TypeScript 的类型系统把各家的输入输出做了统一映射。
Adaline Gateway 的野心不只是"换个 provider 不用改代码",它提供了一套完整的 LLM 工程化工具链:
多 provider 支持(300+ 模型):覆盖 OpenAI、Anthropic、Google AI Studio/Vertex、xAI、AWS Bedrock、Azure OpenAI、Groq、Together AI、OpenRouter 等主流平台,每个 provider 都是独立 npm 包(@adaline/openai、@adaline/anthropic 等),按需安装。
强类型 Tool Calling:各家 LLM 的 function calling 格式差异极大——OpenAI 是 functions[],Anthropic 是 tools[] 的自定义 schema。Gateway 定义了统一的 ToolType 结构,写一次就能在不同 provider 间复用。
请求批次处理(Batch):支持批量发送请求,自定义队列,配合重试策略(指数退避)和缓存插件,大幅降低 API 调用成本和延迟。
OpenTelemetry 可观测性:内置 tracing 支持,可接入 Jaeger、Zipkin 等主流链路追踪系统,满足企业级可观测需求。
插件化架构:缓存、日志、HTTP 客户端均可通过插件扩展,官方文档称可以像"搭积木"一样组合。
Gateway 仓库采用 pnpm workspace + Turbo 构建的 monorepo 结构:
core/:核心 SDK,定义 Super Types、请求/响应模型、插件接口core/providers/:各 provider 实现(OpenAI、Anthropic 等)packages/:工具包(provider、types)tools/:实验性工具(如 gateway-experiments)examples/:各 provider 的使用示例docs/:文档开发流程高度工程化:CommitLint 规范提交、Changeset 管理版本发布、Vitest 全量测试覆盖、Turbo 智能增量构建。在 GitHub 上随手翻一个 commit message,格式都极为规范——这在开源 SDK 项目中并不常见,说明团队对代码质量有较高要求。
技术栈方面,主力语言为 TypeScript 5.6+(严格模式),运行时 Node.js 18+,验证层使用 Zod 做运行时类型校验,构建工具为 tsup。值得注意的是:这不是一个 AI 训练框架或推理引擎,它完全依赖外部 LLM API,自身不运行任何模型——因此不需要 GPU。
安装非常简洁:
npm install @adaline/gateway @adaline/types @adaline/openai
调用示例(以 OpenAI 为例):
import { Gateway } from "@adaline/gateway";
import { OpenAiProvider } from "@adaline/openai";
const gateway = new Gateway({ provider: new OpenAiProvider({ apiKey: process.env.OPENAI_API_KEY }) });
const response = await gateway.chat({
model: "gpt-4o",
messages: [{ role: "user", content: [{ modality: "text", value: "Hello!" }] }],
});
如果切换到 Anthropic,只需要把 provider 从 @adaline/openai 换成 @adaline/anthropic,其余代码几乎不动。这是 Gateway 最大的价值主张:真正实现 provider 的可插拔切换。
官方文档站点(https://www.adaline.ai/docs)内容详尽,覆盖每个 provider 的配置方式、认证说明和示例代码。
1. 依赖外部 API,本地模型支持有限 Gateway 不是一个"本地模型运行器"。虽然可以通过自定义 provider(OpenAI-like 接口)接入 Ollama 或 LM Studio,但需要自己处理 baseUrl 配置,并非开箱即用。如果需求是"完全离线运行 LLM",Gateway 并不能直接满足。
2. 厂商锁定风险 Gateway 定义了自己的类型系统,如果未来 Adaline 项目停止维护,迁移成本不可忽视。毕竟"统一接口"的代价是引入一个新的抽象层。
3. Node.js 专属 官方定位为"Isomorphic"(同构),但核心包针对 Node.js 18+ 优化,浏览器端使用存在一定限制。对于纯前端开发者,门槛略高。
4. 相对年轻 截至 2024 年底,该项目在 GitHub 获得约 600+ stars,在 LLM SDK 细分领域有一定关注度,但生态(第三方插件、社区贡献)还在建设期。
Adaline Gateway 的出现,反映了 LLM 应用开发领域的一个深层趋势:随着模型能力趋同,开发者体验成为新的竞争维度。当 GPT-4o 和 Claude 3.5 在基准测试上差距越来越小时,谁能让开发者更省力地集成,谁就更有优势。
Gateway 所在的赛道对标 Vercel AI Gateway(服务端代理)和 LiteLLM(代理层),但选择了纯本地 SDK 的路线,不收集任何数据,定位更偏向对隐私敏感的企业用户。这是一个明确的差异化定位——在 AI 数据合规要求越来越严格的背景下,"数据不过境"的 SDK 方案对金融、医疗等行业的吸引力不容忽视。
从增长曲线看,该项目自 2024 年 10 月上 Hacker News 以来保持稳定增长,npm 周下载量突破万级,对于一个细分领域的工具库而言已经相当可观。如果 Adaline 团队能持续维护 provider 包跟上各大厂商的 API 变化,这个项目有望成为 TypeScript 生态中 LLM 集成的标准选择之一。