@cloudflare/ai-gateway

中文文档
0.0.6发布于 2025/12/10TypeScriptESM + CJS近 30 天下载 3704

Cloudflare AI 网关的 SDK

中文使用文档
文档目录15 节
  1. 目录
  2. 特征
  3. 安装
  4. 开始
  5. 基本用途
  6. 简化答复
  7. 结构化输出( Zod)
  8. 结构化输出
  9. 自定义工具
  10. 限制
  11. 流线
  12. API 参考
  13. new AIGateway(config: GatewayConfig)
  14. gateway.generateText(options: GenerateTextOptions)
  15. createTool(config: ToolConfig)

AI 网关 SDK

一个轻量级TypeScript SDK到Cloudflare的AI Gateway,用于统一访问多个AI供应商(OpenAI,Google AI Studio等).
支持文本生成(带有可选流),结构化输出通过Zod,以及自定义工具集成.


目录


特征

  • 多重提供者 支持:OpenAI,谷歌AI Studio等.
  • 流线 低纬度消费的答复.
  • 结构化产出 使用 佐德语Name。 。 。 .
  • 自定义工具 对外部数据/行动的整合(功能调用).

安装

npm install @cloudflare/ai-gateway
# or
yarn add @cloudflare/ai-gateway

开始

以您的账户细节和 API 密钥证明 AIGateway :

import { AIGateway } from "@cloudflare/ai-gateway";

const gateway = new AIGateway({
  gatewayName: "<YOUR_GATEWAY_NAME>",
  accountId: "<YOUR_ACCOUNT_ID>",
  apiKey: "<YOUR_AIG_CF_TOKEN>"
});

基本用途

生成一次性文本补全 :

const { output } = await gateway.generateText({
  modelName: "openai/gpt-4.1",
  userPrompt: "Hello, how are you?",
  metadata: {
    eu: true,
  },
});
console.log("Output:", output);

简化答复

获得部分结果时:

const { output } = await gateway.generateText({
  modelName: "google-ai-studio/gemini-2.5-flash-preview-04-17",
  userPrompt:
    "Write a 500 word essay on the importance of AI in modern society.",
  stream: true,
});

for await (const chunk of output) {
  console.log("Chunk:", chunk);
}

结构化输出( Zod)

执行JSON计划

import z from "zod";

const { output } = await gateway.generateText({
  modelName: "openai/gpt-4.1",
  schema: z.object({
    answer: z.string(),
  }),
  userPrompt: "Hello, how are you?",
});

// `output.answer` is guaranteed to be a string by Zod
console.log("Answer:", output.answer);

结构化输出

将流与计划验证相结合:

const { output } = await gateway.generateText({
  modelName: "openai/gpt-4.1",
  schema: z.object({
    answer: z.string(),
    details: z.object({
      length: z.number(),
      language: z.string(),
    }),
  }),
  stream: true,
  userPrompt:
    "Hello, how are you? What is the length of your response and what language is it in?",
});

output.details.length.then((length) => {
  console.log("Length:", length);
});
output.details.language.then((language) => {
  console.log("Language:", language);
});
output.answer.then((answer) => {
  console.log("Answer:", answer);
});

自定义工具

定义和登记模型可称为的外部“工具”(功能):

import { createTool } from "@cloudflare/ai-gateway";
import z from "zod"; //v3

const weatherTool = createTool({
  name: "getWeather",
  description: "Get the current weather for a given city",
  parameters: z.object({
    city: z.string().describe("The city to fetch weather for"),
  }),
  function: async ({ city }) => {
    // Your implementation here (API call, database lookup, etc.)
    return { city, temperature: 22, condition: "Sunny" };
  },
});

const { output } = await gateway.generateText({
  modelName: "google-ai-studio/gemini-2.5-flash-preview-04-17",
  tools: [weatherTool],
  userPrompt: "Hello, what is the weather in Bangalore?",
});

console.log("Weather:", output);

限制

流线

  • SDK 运行的假设是,内容总是在工具块或工具块之前流出,如果其中任何一个块交织在一起,那么前一流块就会被丢出

API 参考

new AIGateway(config: GatewayConfig)

创建新的 AI 网关客户端 .

new AIGateway({
  gatewayName: string,
  accountId: string,
  apiKey: string,
});
财产类型说明
gatewayNamestring您唯一的网关标识符 .
accountIdstring你的账号.
apiKeystring一个带有AI Gateway的CF符号运行范围.

gateway.generateText(options: GenerateTextOptions)

生成文本( 可选流出或系统验证) .

gateway.generateText({
  modelName: string,
  userPrompt: string,
  schema?: ZodSchema<T>,
  stream?: boolean,
  tools?: ReturnType<typeof createTool>[],
  metadata?: Record<string, any>,
}): Promise<GenerateTextResult<T>>
选项类型说明
modelNamestring供应商/型号的标识符(例如:. "openai/gpt-4.1", (中文(简体) ), "google-ai-studio/gemini-…"(中文(简体) )
userPromptstring文本提示或用户查询 .
schema?ZodSchema<T>可选的Zod schema来验证和打入JSON响应.
stream?boolean若为 true,返回文本块或字段承诺的可同步.
tools?ReturnType<typeof createTool>[]用于模型引用的函数调用工具矩阵 .
metadata?Record<string, any>提供方特有的元数据(如区域旗帜).

回返情况:

  • 文本数字 :

    { output: string | AsyncIterable<string> }
    
  • 结构化输出数字 :

    { output: T | { [K in keyof T]: Promise<T[K]> } }
    

createTool(config: ToolConfig)

定义自定义函数调用工具 .

createTool({
  name: string,
  description: string,
  parameters: ZodSchema<object>,
  function: (args: any) => Promise<any>,
});
财产类型说明
namestring独特的工具标识符 .
descriptionstring人可读取的模型描述.
parametersZodSchema<object>Zod schema 定义工具的输入参数 .
function(args) => Promise<any>接收经验证的投入并返回结果的执行.

版本与发布记录

@cloudflare/ai-gateway 共发布 10 个版本,首次发布于 2025/07/04;过去 12 个月发布了 8 个版本。

版本发布日期距今
0.0.6latest2025/12/1010 个月前
0.0.52025/12/0311 个月前
0.0.42025/12/0311 个月前
0.0.32025/11/2411 个月前
0.0.3-binbin2025/11/2411 个月前
0.0.2-bin2025/11/2411 个月前

其他发布通道:beta → 0.0.1,bin → 0.0.3-bin。

关于 @cloudflare/ai-gateway 的常见问题

@cloudflare/ai-gateway 是什么?

Cloudflare AI 网关的 SDK

如何安装 @cloudflare/ai-gateway?

在项目目录运行 npm install @cloudflare/ai-gateway,或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖:@cloudflare/workers-types(*)。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖,Yarn 需要手动安装。

@cloudflare/ai-gateway 支持 TypeScript 吗?

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

@cloudflare/ai-gateway 支持 ESM 还是 CommonJS?

同时提供 ES Module 与 CommonJS 入口,import 和 require() 都可以使用,打包工具会自动选择合适的版本。

@cloudflare/ai-gateway 可以商用吗?

@cloudflare/ai-gateway 使用 未声明 许可。package.json 没有声明许可证。没有许可证的代码默认保留全部权利,商用前请联系作者或查看仓库中的 LICENSE 文件。以上为概括,不构成法律意见,请以许可原文为准。

@cloudflare/ai-gateway 的下载量有多少?

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

@cloudflare/ai-gateway 还在维护吗?

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