本指南将指导您设置和部署您的第一个带有嵌入式函数调用的 Workers AI 项目。您将使用 Workers、Workers AI 绑定、ai-utils 包 ↗ 和一个大型语言模型 (LLM),以在 Cloudflare 全球网络上部署您的第一个带有嵌入式函数调用的 AI 驱动的应用程序。
请按照 Workers AI 入门指南 直到第 2 步。
接下来,在您的项目存储库中运行以下命令以安装 Worker AI 实用程序包。
npm i @cloudflare/ai-utilsyarn add @cloudflare/ai-utilspnpm add @cloudflare/ai-utils使用以下代码更新您应用程序目录中的 index.ts 文件:
import { runWithTools } from "@cloudflare/ai-utils";
export default { async fetch(request, env, ctx) { // 定义函数 const sum = (args) => { const { a, b } = args; return Promise.resolve((a + b).toString()); }; // 使用函数调用运行 AI 推理 const response = await runWithTools( env.AI, // 支持函数调用的模型 "@hf/nousresearch/hermes-2-pro-mistral-7b", { // 消息 messages: [ { role: "user", content: "123123123 + 10343030 的结果是多少?", }, ], // AI 模型可以利用的可用工具的定义 tools: [ { name: "sum", description: "将两个数字相加并返回结果", parameters: { type: "object", properties: { a: { type: "number", description: "第一个数字" }, b: { type: "number", description: "第二个数字" }, }, required: ["a", "b"], }, // 引用先前定义的函数 function: sum, }, ], }, ); return new Response(JSON.stringify(response)); },};import { runWithTools } from "@cloudflare/ai-utils";
type Env = { AI: Ai;};
export default { async fetch(request, env, ctx) { // 定义函数 const sum = (args: { a: number; b: number }): Promise<string> => { const { a, b } = args; return Promise.resolve((a + b).toString()); }; // 使用函数调用运行 AI 推理 const response = await runWithTools( env.AI, // 支持函数调用的模型 "@hf/nousresearch/hermes-2-pro-mistral-7b", { // 消息 messages: [ { role: "user", content: "123123123 + 10343030 的结果是多少?", }, ], // AI 模型可以利用的可用工具的定义 tools: [ { name: "sum", description: "将两个数字相加并返回结果", parameters: { type: "object", properties: { a: { type: "number", description: "第一个数字" }, b: { type: "number", description: "第二个数字" }, }, required: ["a", "b"], }, // 引用先前定义的函数 function: sum, }, ], }, ); return new Response(JSON.stringify(response)); },} satisfies ExportedHandler<Env>;此示例使用 import { runWithTools} from "@cloudflare/ai-utils" 导入实用程序,并遵循下面的 API 参考。
此外,在此示例中,我们定义并描述了 LLM 可以用来响应用户查询的工具列表。在这里,该列表仅包含一个工具,即 sum 函数。
由 runWithTools 函数抽象出来,会发生以下步骤:
sequenceDiagram
participant Worker as Worker
participant WorkersAI as Workers AI
Worker->>+WorkersAI: 发送消息、函数调用提示和可用工具
WorkersAI->>+Worker: 为函数调用选择工具和参数
Worker-->>-Worker: 执行函数
Worker-->>+WorkersAI: 发送消息、函数调用提示和函数结果
WorkersAI-->>-Worker: 发送包含函数输出的响应
ai-utils 包 也在 Github ↗ 上开源。
请按照 Workers AI 入门指南 的第 4 步和第 5 步进行本地开发和部署。
有关更多详细信息,请参阅 API 参考。
- @2025 Cloudflare Ubitools
- Cf Repo