# @frogbotai/gateway 中文文档

规范地址：https://npmcn.com/package/%40frogbotai/gateway/

版本：0\.42\.0
npm 元数据更新时间：2026-11-15T07:36:47.592Z
中文译文更新时间：2026-11-15T14:32:39.301Z
软件包许可：MIT

本文由上游 README 翻译，可能存在偏差，请结合原文核对 API、命令与配置。版权与许可归原作者所有。

原始 npm 页面：https://www.npmjs.com/package/%40frogbotai/gateway
原文对照：https://npmcn.com/package/%40frogbotai/gateway/?lang=original
项目主页：https://github.com/frogbotai/frogbot#readme
源码仓库：https://github.com/frogbotai/frogbot

## 关键信息（来自 npm 元数据）

- 包体积（解压后）：2.6 MB，775 个文件
- 模块格式：ES Module
- TypeScript 类型：包内自带
- Node.js 要求：\>=24\.22\.3
- 运行依赖：47 个
- peer 依赖：pino ^9\.14\.0，@opentelemetry/resources ^2\.0\.1，@opentelemetry/sdk-metrics ^2\.0\.1，@aws-sdk/credential-providers ^3\.972\.0，@opentelemetry/sdk-trace-base ^2\.0\.1，@opentelemetry/sdk-trace-node ^2\.0\.1，@opentelemetry/context-async-hooks ^2\.0\.1，@opentelemetry/exporter-trace-otlp-http ^0\.203\.0，@opentelemetry/exporter-metrics-otlp-http ^0\.203\.0
- 首次发布：2026-07-19T21:07:53.750Z
- 最新版本发布：2026-11-15T07:36:47.371Z
- 近 30 天下载量：9167（2026-10-16 至 2026-11-14，npm 官方下载统计）
- 已发布版本数：42（近 12 个月 42 个）

## 中文简介

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

## 安装

```sh
npm install @frogbotai/gateway
```

也可以使用：`pnpm add @frogbotai/gateway`、`yarn add @frogbotai/gateway`、`bun add @frogbotai/gateway`

## README

[![FrogBot logo](https://raw.githubusercontent.com/frogbotai/frogbot/main/.github/assets/frogbot-logo.svg)](https://www.frogbot.ai/)

# @frogbotai/出道

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

[![License](https://img.shields.io/badge/license-MIT-green?style=flat-square)](https://github.com/frogbotai/frogbot/blob/main/LICENSE)   [![npm](https://img.shields.io/npm/v/%40frogbotai%2Fgateway?style=flat-square)](https://www.npmjs.com/package/@frogbotai/gateway)   [![npm downloads](https://img.shields.io/npm/dw/%40frogbotai%2Fgateway?style=flat-square)](https://www.npmjs.com/package/@frogbotai/gateway)   [![Discord](https://img.shields.io/badge/Discord-join%20chat-5865F2?logo=discord&logoColor=white&style=flat-square)](https://discord.com/invite/JBZF7syAnU)   ![Node](https://img.shields.io/badge/node-%E2%89%A520-brightgreen?style=flat-square)

* * *

#### [**探索文档**](https://docs.frogbot.ai/)  • 妇女  [**加入 Discord 时**](https://discord.com/invite/JBZF7syAnU)

* * *

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

> FrogBot的核心框架嵌入了这个精确的软件包来给它自己的动力 `ai` 配置块——见 [在蛙博特配置AI](https://docs.frogbot.ai/ai/overview)。这个软件包没有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在每个路由上的错误信封;同样提供方的上游错误以原始状态逐字传送
-   **完全麻省理工学院开源** ——无闸口功能,不需要主机级

## 快速启动

```bash
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 一起使用

```ts
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`

```bash
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/completions` | OpenAI 聊天补全 | 对 |
| `POST /v1/responses` | OpenAI 响应 API | 对 |
| `POST /v1/messages` | 安东尼消息 API | 对 |
| `POST /v1/embeddings` | OpenAI 嵌入 | —— 说 |
| `POST /v1/images/generations` | OpenAI 图像 | —— 说 |
| `POST /v1/audio/speech` | OpenAI 演讲 | —— 说 |
| `POST /v1/audio/transcriptions` | OpenAI 译名 | —— 说 |
| `POST /v1/rerank` | 重新排队 | —— 说 |
| `POST /v1/videos/generations` | 视频生成 | —— 说 |
| `GET /v1/models` | OpenAI 模型(目录发现) | —— 说 |

线路还在其裸露的道路上提供服务(`/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`:

```ts
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 获取处理器,在任何地方挂载:

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

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

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

在已有的Hono应用程序中:

```ts
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 的信封 :

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

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

## 青蛙瓶的一部分

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

## 许可证

[麻省理工学院](https://github.com/frogbotai/frogbot/blob/main/LICENSE) 科尔比·吉尔伯特

## 常见问题

### @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 和提交记录判断。

