@frogbotai/gateway

中文文档
0.42.0发布于 2026/11/15MITTypeScriptES Module近 30 天下载 9167

在Vercel AI SDK上所建的开源自宿的AI网关. Vercel保存的闭源的服务器侧.

中文使用文档
文档目录13 节
  1. 特征
  2. 快速启动
  3. 与 OpenAI SDK 一起使用
  4. 或者说 curl
  5. 终点
  6. 供应商
  7. 配置
  8. 嵌入
  9. 钩子
  10. 观察性
  11. 错误
  12. 青蛙瓶的一部分
  13. 许可证

FrogBot logo

@frogbotai/出道

在Vercel AI SDK上所建的开源,可自宿,可嵌入的AI网关.
Vercel所保持的闭源的服务器侧面——完全MIT许可.

License   npm   npm downloads   Discord   Node


探索文档  • 妇女  加入 Discord 时


一个终点,每个供应商。 在通往OpenAI,Anthropic,Google,Groq,Mistral,Bedrock,Vertex的网关和路线上指向任何与OpenAI兼容的客户端,以及30+多的供应商——有流线,钩子,以及完整的OpenTeleometry可观察性. 从 CLI 中独立运行, 或者将它嵌入到您已有的服务器中作为获取处理器 .

FrogBot的核心框架嵌入了这个精确的软件包来给它自己的动力 ai 配置块——见 在蛙博特配置AI。这个软件包没有FrogBot依赖性,因此它也完全独立运行:从CLI独立,或者嵌入任何节点/Bun/Deno/Workers服务器中.

特征

  • OpenAI 兼容线条格式 ——聊天补全,反应API,和Anthropic's Messages API,所以现有的SDK和客户端工作不变
  • 36+ 内置供应商 外加通用的OpenAI相容端点,用于任何自行托管的(vLLM,Ollama,LM Studio,
  • 每个模式 - 聊天、嵌入、图像、演讲、抄录、重新排队和录像
  • 到处流出 - 关于聊天完成、回复和信息的SSE
  • 可嵌入 —— 说 createGateway() 返回在 HonterCG 、 Next.js、 Bun、 Deno 或 Cloudflare 工人中挂起的获取处理器
  • 生命周期钩 —— 说 beforeOperation → beforeUpstream → afterUpstream编号 :afterError → afterOperation,将符号使用汇总到工具循环中
  • 建造的可观察性 ——有条不紊地进行记录(使你自己的比诺兼容地进行记录)和OpenTeleometry追踪
  • 电线校正错误 ——OpenAI在每个路由上的错误信封;同样提供方的上游错误以原始状态逐字传送
  • 完全麻省理工学院开源 ——无闸口功能,不需要主机级

快速启动

OPENAI_API_KEY=sk-... npx @frogbotai/gateway

CLI从环境变量中自动发现提供者(OPENAI_API_KEY, (中文(简体) ), ANTHROPIC_API_KEY, (中文(简体) ), GOOGLE_GENERATIVE_AI_API_KEY, (中文(简体) ), GROQ_API_KEY,并且听着 0.0.0.0:3939 默认(HOST 编号 : PORT 编号 : --port 页:1 如果找不到供应商, 它会有一个友好的错误退出, 列出它寻找的每个环境 var .

型号ID被命名为 provider/model ——前缀告诉哪个提供者发送到的网关.

与 OpenAI SDK 一起使用

import OpenAI from 'openai';

const client = new OpenAI({
  apiKey: 'unused', // the gateway holds the upstream keys
  baseURL: 'http://localhost:3939/v1',
});

const res = await client.chat.completions.create({
  model: 'anthropic/claude-sonnet-5-5',
  messages: [{ role: 'user', content: 'Hello' }],
  stream: true,
});

或者说 curl

curl http://localhost:3939/v1/chat/completions \
  -H 'Content-Type: application/json' \
  -d '{
    "model": "openai/gpt-4o-mini",
    "messages": [{ "role": "user", "content": "Hello" }]
  }'

终点

路线兼容性流线
POST /v1/chat/completionsOpenAI 聊天补全对
POST /v1/responsesOpenAI 响应 API对
POST /v1/messages安东尼消息 API对
POST /v1/embeddingsOpenAI 嵌入—— 说
POST /v1/images/generationsOpenAI 图像—— 说
POST /v1/audio/speechOpenAI 演讲—— 说
POST /v1/audio/transcriptionsOpenAI 译名—— 说
POST /v1/rerank重新排队—— 说
POST /v1/videos/generations视频生成—— 说
GET /v1/modelsOpenAI 模型(目录发现)—— 说

线路还在其裸露的道路上提供服务(/chat/completions),所以把处理器挂在任何前缀下只是工作.

供应商

Alibaba、Anthropic、Anthropic(AWS)、Assema、Azure、Baseten、Amazon Bedrock、黑森林实验室、ByteDance、Cerebras、Cohere、Deepgram、DeepInfra、DeepSeek、11Labs、Fal、Fireworks、Gladia、Google、Google Vertex、Groq、Hugging Face、Hume、Kling AI、LMNT、Luma、Mistral、Moonshot AI、OpenAI、Perplexity、Prodia、Repet、Greege、AI、Vercel、Voyage、xAI——在任何其他键下加上任何与OpenAI兼容的习惯终点 providers (Ollama, LM Studio, vLLM,.).

配置

放下一个 gateway.config.ts 在您运行 CLI 的位置旁边( 或指向一个 --config:

import { defineConfig } from '@frogbotai/gateway';

export default defineConfig({
  providers: {
    openai: {},
    anthropic: {},
    ollama: { baseURL: 'http://localhost:11434/v1' },
  },
  upstreamTimeoutMs: 60_000,
  hooks: {
    afterOperation: [
      ({ operation, model, usage }) => {
        console.log(operation, model, usage?.totalTokens);
      },
    ],
  },
});

其他选项包括: enabled_providers 编号 : disabled_providers 允许/ 拒绝列表, 自定义 catalog 页:1 GET /v1/models, (中文(简体) ), basePath, (中文(简体) ), maxBodyBytes, (中文(简体) ), logger, (中文(简体) ), tracing,以及 tracer。 。 。 .

嵌入

createGateway() 返回 WinterCG 获取处理器,在任何地方挂载:

import { serve } from '@hono/node-server';
import { createGateway } from '@frogbotai/gateway';

const gw = createGateway({
  providers: { openai: {} },
});

serve({ fetch: gw.handler, port: 3939 });

在已有的Hono应用程序中:

app.mount('/v1', gw.handler);

或者作为Next.js的路由处理器, Bun/Deno服务器,或者Cloudflare Worker——任何说话的 (req: Request) => Promise<Response>。 。 。 .

钩子

每条路线的运行周期相同: beforeOperation → beforeUpstream → afterUpstream编号 :afterError → afterOperation钩子收到操作名称 犬科 provider/model ID,一个共享可变上下文包,和(出道时)汇总的符号用法——在工具回路的每回相接. 用于验证、费率限制、成本跟踪或审计记录.

观察性

  • 日志 ——通过任何与皮诺相容的伐木机(或任何满足的) GatewayLogger),或让网关创建其控制台记录器
  • 追踪 ——提供开口遥测 Tracer,或只使用节点 @frogbotai/gateway/setup 导出到拖带一; CLI 荣誉 OTEL_EXPORTER_OTLP_ENDPOINT 从盒子里出来

错误

所有错误反应使用 OpenAI 的信封 :

{
  "error": {
    "message": "...",
    "type": "invalid_request_error",
    "code": "string | null",
    "param": "string | null"
  }
}

同源提供器上游出错(如OpenAI呼叫上无效的OpenAI密钥)会以上游HTTP状态逐字传输. 网关源出的错误与网关本身的形状相同 code 数值。 错误帮助导出自 @frogbotai/gateway/errors 因此嵌入器可以产生匹配的信封.

青蛙瓶的一部分

这个套件没有青蛙博特的依赖性,完全靠自己的力量运作。 准确的包裹也是 蛙标 内部嵌入了第一个人工智能代理框架 ai 配置块 。 见 在蛙博特配置AI 为了这个融合.

许可证

麻省理工学院 科尔比·吉尔伯特

版本与发布记录

@frogbotai/gateway 共发布 42 个版本,首次发布于 2026/07/20;过去 12 个月发布了 42 个版本。

版本发布日期距今
0.42.0latest2026/11/15今天
0.41.02026/11/097 天前
0.40.02026/11/069 天前
0.39.02026/11/0213 天前
0.38.02026/11/0115 天前
0.37.02026/10/2917 天前

关于 @frogbotai/gateway 的常见问题

@frogbotai/gateway 是什么?

在Vercel AI SDK上所建的开源自宿的AI网关. Vercel保存的闭源的服务器侧.

如何安装 @frogbotai/gateway?

在项目目录运行 npm install @frogbotai/gateway,或使用 pnpm add / yarn add / bun add。它还提供命令行工具 frogbotai-gateway,可以用 npx frogbotai-gateway 直接运行。

@frogbotai/gateway 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@frogbotai/gateway 支持 ESM 还是 CommonJS?

以 ES Module 形式发布,推荐使用 import 引入。在 CommonJS 项目中,Node.js 20.19+ / 22.12+ 可以直接 require() 不含顶层 await 的 ES Module,更早的版本需要改用动态 import()。

@frogbotai/gateway 需要什么版本的 Node.js?

package.json 的 engines 字段要求 Node.js >=24.22.3。版本不符时 npm 默认只给出警告,开启 engine-strict 后会拒绝安装。

@frogbotai/gateway 可以商用吗?

@frogbotai/gateway 使用 MIT 许可。宽松许可:允许商业使用、修改和再分发,通常只需在分发时保留原版权与许可声明。以上为概括,不构成法律意见,请以许可原文为准。

@frogbotai/gateway 的下载量有多少?

根据 npm 官方下载统计,@frogbotai/gateway 在 2026/10/16 – 2026/11/14 这 30 天内被下载 9,167 次,日均约 306 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@frogbotai/gateway 还在维护吗?

最新版本 0.42.0 发布于 2026/11/15(今天);至今共发布 42 个版本,其中过去 12 个月发布了 42 个;首次发布于 2026/07/20。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。