本指南将指导您设置和部署您的第一个带有嵌入式函数调用的 Workers AI 项目。您将使用 Workers、Workers AI 绑定、ai-utils 包
↗ 和一个大型语言模型 (LLM),以在 Cloudflare 全球网络上部署您的第一个带有嵌入式函数调用的 AI 驱动的应用程序。
请按照 Workers AI 入门指南 直到第 2 步。
接下来,在您的项目存储库中运行以下命令以安装 Worker AI 实用程序包。
npm i @cloudflare/ai-utils
yarn add @cloudflare/ai-utils
pnpm 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