Cloudflare Workers AI部署Kimi与GLM:边缘计算如何降低大模型延迟与成本
2026/8/7 6:02:19 网站建设 项目流程

如果你最近在尝试部署或调用大模型 API,大概率会遇到两个头疼的问题:延迟太高成本太贵。无论是 OpenAI 的 GPT 系列,还是国内主流的 Kimi、GLM,直接调用官方 API 不仅响应速度受网络影响,按 token 计费的模式也让频繁的测试和轻量级应用变得“奢侈”。

有没有一种方案,能让这些强大的模型跑得更快、更便宜,甚至能部署在离用户更近的地方?Cloudflare 给出的答案是Workers AI。这不仅仅是又一个“云函数”,而是一个在全球 300 多个城市边缘节点上运行的无服务器 GPU 计算平台。更关键的是,它正在大规模地运行像KimiGLM这样的热门模型。

这篇文章要解决的,正是开发者最关心的三个问题:第一,Cloudflare Workers AI 到底是如何让模型“变小、变快、变安全”的?第二,作为开发者,我能否以及如何零成本地体验或使用这些能力?第三,这种“边缘 AI”的模式,会如何改变我们构建 AI 应用的成本结构和响应范式?

我们将从技术原理、实操接入、成本对比和未来影响四个维度,为你彻底拆解 Cloudflare 的 AI 边缘计算策略。你会发现,它降低的不仅是几毫秒的延迟和几分钱的成本,更是一种全新的、去中心化的 AI 应用开发思路。

1. 重新理解“边缘AI”:为什么是 Cloudflare Workers AI?

在深入代码之前,我们必须先理解 Cloudflare Workers AI 的定位。它不是一个简单的“模型托管服务”,其核心价值在于“将计算推向数据产生的地方”

传统的 AI 服务架构通常是“中心化”的:你的应用服务器(可能在东京)向某个区域的 AI 服务 API(比如部署在弗吉尼亚的 AWS 上)发起请求,数据需要横跨大洋。这个过程中,网络延迟(通常 100-300ms)往往比模型推理本身(可能 50ms)还要长。

Cloudflare 的颠覆性在于,它拥有全球最庞大的边缘网络之一。当你使用 Workers AI 时,你的代码和模型(经过优化后)会被部署到离终端用户最近的几十个甚至上百个边缘节点上。这意味着:

  • 延迟极低:请求无需回源到某个中心机房,在边缘节点就近处理,首次响应时间(TTFB)可降低至 50ms 以内。
  • 成本结构改变:Cloudflare 采用“请求次数 + 计算时长”的计费模式,并且为免费套餐提供了非常慷慨的额度(每日数万次推理),使得原型验证和小规模应用几乎零成本。
  • 无状态与自动扩展:作为 Serverless 服务,你无需关心服务器、GPU 驱动、CUDA 版本,也无需为闲置资源付费。流量高峰时,它会自动在全球节点间调度和扩展。

那么,Kimi 和 GLM 是如何“上车”的呢?Cloudflare 并没有直接托管完整的原生模型。其核心动作是“优化与转换”。通过与智谱 AI、月之暗面等模型提供方合作,Cloudflare 的工程师团队会使用一系列模型压缩、量化、图优化技术(如 ONNX Runtime, GGUF 格式转换),将原始的大模型“瘦身”,使其能够在边缘 GPU(如 NVIDIA A100/T4 的切片)上高效运行,同时尽可能保持原有能力。

这回答了标题中的“更小、更快”。而“更安全”则体现在:1) 请求数据在边缘处理,无需传输到第三方模型厂商的核心服务器,减少了数据泄露的中转风险;2) Cloudflare 的网络本身具备强大的 DDoS 防护和安全策略。

2. 核心概念拆解:Workers、AI、模型与运行时

开始实操前,我们需要明确几个关键概念,避免混淆:

  • Cloudflare Workers: 一个在全球边缘运行 JavaScript/Wasm 的无服务器计算平台。你可以把它理解为“边缘版的 AWS Lambda”。
  • Workers AI: 是 Workers 平台的一个绑定功能(Binding)。它不是一个独立产品,而是让你在 Worker 脚本中能直接调用的 AI 推理运行时。
  • AI 模型: Workers AI 提供了一个模型目录,包括开源模型(如 Llama、Mistral)和合作商业模型(如本次提到的 Kimi、GLM)。这些模型都经过了 Cloudflare 的优化和封装,以统一的 API 提供。
  • 运行时: 你的 Worker 脚本(JavaScript)运行在 V8 隔离中,而 AI 模型运行在相邻的、安全的 GPU 运行时内。两者通过高效的内部通道通信,对你而言只是一个简单的函数调用。

一个重要认知:你无法将自己训练的 PyTorch 模型直接上传到 Workers AI 运行。你必须使用其官方支持的模型目录中的模型。目前,Kimi 和 GLM 系列模型(如 GLM-4、GLM-4V)已在该目录中。

这种设计带来了极简的开发者体验,但也限定了使用边界。它最适合需要低延迟、高并发、轻量级推理的 AI 应用场景,例如:

  • 实时聊天助手
  • 文本内容审核/分类
  • 代码补全与解释
  • 文档摘要与翻译
  • 轻量级图像理解(结合 GLM-4V)

3. 环境准备与前置条件

要开始使用 Workers AI 运行 Kimi 或 GLM,你需要准备以下环境:

  1. 一个 Cloudflare 账户: 访问 Cloudflare 官网 注册,无需信用卡即可开始使用免费套餐。
  2. Node.js 环境: 本地需要安装 Node.js (版本 18 或更高) 和 npm,用于使用 Wrangler 命令行工具。
  3. Wrangler CLI: Cloudflare 的官方开发、部署工具。通过 npm 全局安装:
    npm install -g wrangler
  4. 登录 Wrangler: 在终端中运行以下命令,按提示完成浏览器授权登录。
    wrangler login
  5. (可选) IDE 或代码编辑器: 如 VS Code。

免费额度说明: Cloudflare 为 Workers AI 提供了每日免费的推理额度,足够个人开发者进行大量测试和小型应用。具体额度可在 Dashboard 查看,通常包括数万次神经元网络调用。

4. 快速开始:创建你的第一个 AI Worker

我们通过一个最简单的例子,实现在边缘调用 GLM-4 模型进行对话。

4.1 初始化项目

在终端中,创建一个新目录并初始化一个 Worker 项目:

# 创建项目目录并进入 mkdir my-ai-worker && cd my-ai-worker # 初始化一个基础的 Worker 项目(选择“Hello World”模板即可) wrangler init

在初始化过程中,Wrangler 会交互式地询问项目配置。对于本示例,你可以全部选择默认选项。

4.2 配置wrangler.toml

初始化后,项目根目录会生成一个wrangler.toml文件。这是 Worker 的配置文件。我们需要在其中绑定 Workers AI。用编辑器打开该文件,确保其内容类似如下:

name = "my-ai-worker" compatibility_date = "2024-08-01" # 关键步骤:绑定 AI 服务 ai = { binding = "AI" }

ai = { binding = "AI" }这行配置是核心,它在你 Worker 的运行时环境中注入了一个名为AI的对象,通过它你可以调用模型。

4.3 编写 AI 推理代码

接下来,修改src/index.js文件(如果是 TypeScript 项目则是src/index.ts)。我们将编写一个处理 HTTP 请求并调用 GLM-4 的 Worker。

// src/index.js export default { async fetch(request, env) { // 1. 解析请求,获取用户输入的问题 const url = new URL(request.url); const question = url.searchParams.get('question') || '你好,请介绍一下你自己。'; // 2. 调用 Workers AI 的 GLM-4 模型 // env.AI 就是我们在 wrangler.toml 中绑定的对象 const response = await env.AI.run('@cf/glm-4', { prompt: question, // 其他可选的参数,例如 max_tokens, temperature 等 max_tokens: 500, stream: false // 设为 true 可启用流式响应 }); // 3. 将模型的回复返回给客户端 return new Response(JSON.stringify(response, null, 2), { headers: { 'Content-Type': 'application/json' }, }); }, };

代码解释

  • env.AI.run是调用 AI 模型的通用方法。
  • @cf/glm-4是 Workers AI 模型目录中 GLM-4 模型的标识符。对于 Kimi,标识符可能是@cf/moonshot/kimi(具体名称需查阅最新文档)。
  • prompt是必需的参数,即发送给模型的输入文本。
  • max_tokens控制生成文本的最大长度。
  • stream: false表示一次性返回完整结果。对于长文本,建议使用流式响应 (stream: true) 以获得更好的用户体验。

4.4 本地开发与测试

在部署到云端之前,先在本地运行测试:

wrangler dev

Wrangler 会启动一个本地开发服务器(通常位于http://localhost:8787)。打开浏览器或使用curl访问:

http://localhost:8787/?question=Cloudflare Workers是什么?

你应该能立即收到一个由 GLM-4 模型生成的、关于 Cloudflare Workers 的 JSON 格式回答。

4.5 部署到全球边缘网络

本地测试无误后,一键部署到 Cloudflare 全球网络:

wrangler deploy

部署成功后,Wrangler 会输出你的 Worker 的线上地址(格式如https://my-ai-worker.<你的子域>.workers.dev)。现在,你的 AI 应用已经运行在离全球用户最近的边缘节点上了。

5. 进阶应用:构建一个流式对话 API

一次性响应适合简单问答,但真正的对话体验需要流式传输(Streaming)。下面我们改造上面的 Worker,使其支持 Server-Sent Events (SSE) 流式输出,并模拟一个简单的对话历史。

// src/index.js - 进阶版:支持流式对话 export default { async fetch(request, env) { const url = new URL(request.url); const path = url.pathname; // 路由处理 if (path === '/chat' && request.method === 'POST') { return handleChat(request, env); } // 返回一个简单的 HTML 前端页面用于测试 return new Response(html, { headers: { 'Content-Type': 'text/html' } }); }, }; // 处理聊天请求 async function handleChat(request, env) { const { messages } = await request.json(); // 期望格式: [{role: "user", content: "..."}, ...] // 将消息历史格式化为 GLM-4 接受的 prompt // 注意:不同模型的消息格式可能不同,需参考官方文档 const formattedPrompt = messages.map(m => `${m.role}: ${m.content}`).join('\n') + '\nassistant:'; // 调用 AI,启用流式输出 const stream = await env.AI.run('@cf/glm-4', { prompt: formattedPrompt, max_tokens: 1024, stream: true // 关键:启用流式 }); // 创建 SSE 流响应 const { readable, writable } = new TransformStream(); const writer = writable.getWriter(); const encoder = new TextEncoder(); // 异步处理流式响应 (async () => { try { for await (const chunk of stream) { // chunk 是 Uint8Array,包含模型输出的 token const text = new TextDecoder().decode(chunk); // 按照 SSE 格式发送数据 await writer.write(encoder.write(`data: ${JSON.stringify({ text })}\n\n`)); } } catch (err) { console.error('Stream error:', err); await writer.write(encoder.write(`data: ${JSON.stringify({ error: err.message })}\n\n`)); } finally { await writer.close(); } })(); return new Response(readable, { headers: { 'Content-Type': 'text/event-stream', 'Cache-Control': 'no-cache', 'Connection': 'keep-alive', }, }); } // 一个简单的测试前端 HTML const html = ` <!DOCTYPE html> <html> <body> <div id="chat"></div> <input id="input" type="text"/> <button onclick="send()">发送</button> <script> const chatDiv = document.getElementById('chat'); const input = document.getElementById('input'); const messages = []; async function send() { const userMsg = input.value; input.value = ''; messages.push({role: 'user', content: userMsg}); chatDiv.innerHTML += '<div>用户: ' + userMsg + '</div>'; const eventSource = new EventSource('/chat'); eventSource.onmessage = (e) => { const data = JSON.parse(e.data); if(data.text) { chatDiv.innerHTML += '<div>AI: ' + data.text + '</div>'; } }; eventSource.onerror = () => eventSource.close(); // 实际应用中,这里应该用 fetch POST 发送消息历史,本例为简化演示 } </script> </body> </html> `;

这个进阶示例展示了:

  1. 路由处理:区分 API 请求和前端页面。
  2. 消息历史格式化:如何将对话历史转换为模型接受的输入格式。
  3. 流式响应:使用stream: true参数和TransformStream实现 SSE,让用户能实时看到模型生成的内容。
  4. 简单前端集成:提供了一个最简化的 HTML 页面进行交互测试。

6. 运行效果、监控与成本验证

部署后,如何验证效果和监控使用情况?

6.1 性能验证

使用curlPostman测试你的 API 端点,关注两个核心指标:

  • 首字节时间(TTFB): 从发起请求到收到第一个响应字节的时间。在边缘部署的场景下,这个时间通常非常短(<100ms)。
    curl -o /dev/null -s -w "TTFB: %{time_starttransfer}s\n" "https://your-worker.workers.dev/chat"
  • 端到端延迟: 整个请求完成的时间。对于流式响应,可以感知到输出的实时性。

6.2 监控与日志

Cloudflare Dashboard 提供了强大的监控能力:

  1. 登录 Cloudflare Dashboard 。
  2. 进入Workers & Pages-> 选择你的 Worker。
  3. Metrics标签页,你可以查看:
    • 请求次数、错误率。
    • CPU 时间AI 推理神经元调用次数(这是计费的关键指标)。
    • 各边缘节点的请求分布。
  4. Logs标签页,可以实时查看或搜索详细的请求/响应日志,这对调试至关重要。

6.3 成本估算与免费额度

Workers AI 的计费基于神经元网络调用次数(Neuron Network Inference Calls)。免费套餐通常包含:

  • 每日数万次标准推理调用。
  • 对于 Kimi、GLM 这类较大模型,每次调用消耗的神经元数会更多,但免费额度内仍可进行相当可观的测试。

关键建议: 在 Dashboard 的Workers AI部分查看详细的用量和配额。对于生产应用,务必设置用量告警。

7. 常见问题与排查思路

在实际使用中,你可能会遇到以下问题:

问题现象可能原因排查方式解决方案
部署失败Error: 400wrangler.toml配置错误,或账户权限不足。1. 运行wrangler whoami检查登录状态。
2. 检查wrangler.toml语法和name全局唯一性。
1. 重新wrangler login
2. 确保项目名未被占用,修正配置文件。
运行时错误AI is not definedwrangler.toml中未正确绑定 AI,或绑定名称不匹配。1. 检查wrangler.toml是否有ai = { binding = "AI" }
2. 检查代码中是否使用env.AI(绑定名需一致)。
确保配置绑定,且代码中引用的变量名与binding值相同。
模型调用返回Model not found模型标识符拼写错误,或该模型在你所在区域不可用。1. 查阅 Cloudflare AI 文档 ,确认正确的模型 ID。
2. 尝试调用一个已知的简单模型(如@cf/meta/llama-2-7b-chat-int8)测试。
使用文档中列出的准确模型 ID。注意商业模型(如 Kimi)可能需要等待区域逐步开放。
响应速度慢,TTFB 高请求可能未命中边缘节点,或模型冷启动。1. 在 Dashboard 日志中查看请求的colo(数据中心)代码。
2. 连续发起两次请求,对比首次和后续请求的延迟。
1. 冷启动是 Serverless 常态,预热或保持一定请求频率可缓解。
2. 检查网络,确保测试客户端离 Cloudflare 节点较近。
流式响应不工作或中断前端 SSE 实现有误,或 Worker 响应头设置不正确。1. 用curlPostman直接测试/chat端点,看是否有数据流。
2. 检查 Worker 代码中响应头Content-Type: text/event-stream是否正确设置。
1. 确保后端使用for await...of正确迭代流。
2. 前端检查EventSource是否正确处理onmessageonerror
达到速率限制或配额不足免费额度用尽或超出速率限制。查看 Dashboard 中 Workers AI 的用量图表和配额信息。升级付费计划,或优化应用逻辑,减少不必要的模型调用。使用缓存机制。

8. 最佳实践与工程化建议

要将 Workers AI 用于实际项目,请遵循以下建议:

  1. 模型选择与测试

    • 不是所有任务都需要大模型: 对于文本分类、情感分析等简单任务,先尝试@cf/meta/llama-2-7b-chat-int8等更小、更快的开源模型,成本更低。
    • 进行 A/B 测试: 在关键业务上,对比不同模型(如 GLM-4 vs Kimi)在效果、速度、成本上的差异。
    • 关注模型上下文长度: Kimi 以长上下文见长,GLM-4 在代码和推理上可能更强。根据场景选择。
  2. 应用层优化

    • 实现对话缓存: 对于相同或相似的查询,可以在 Worker 中使用 Cloudflare KV 存储缓存结果,避免重复调用模型,大幅节省成本和延迟。
    • 设置超时与重试: 在 Worker 中调用env.AI.run时,使用Promise.raceAbortController设置合理的超时(如 30秒),并实现简单的重试逻辑(注意重试会增加成本)。
    • 输入验证与清理: 永远不要将未经处理的用户输入直接发送给模型。实施严格的输入长度、内容检查,防止提示词注入攻击和资源滥用。
  3. 安全与合规

    • 权限最小化: Worker 默认无需数据库等敏感权限。如需访问 KV、D1 等资源,在wrangler.toml中按需绑定。
    • 认证与授权: 公开的 AI API 极易被滥用。务必通过 API 令牌、JWT、或 Cloudflare Access 等机制对请求进行认证。
    • 内容安全审核: 对于生成式 AI,考虑在输出给用户前,增加一层内容安全过滤(可调用另一个轻量级审核模型),防止生成有害内容。
  4. 成本监控与告警

    • 利用 Cloudflare Dashboard 告警: 在 Dashboard 中为 “AI 推理神经元调用” 设置用量告警,避免意外费用。
    • 估算成本模型: 根据你的业务逻辑(平均对话轮次、每次调用的 token 数),估算月度成本。免费额度外的成本是$0.01 / 1000 次神经元调用(价格可能变动,请以官网为准),需提前规划。
  5. 备选与降级方案

    • 不要将所有鸡蛋放在一个篮子里: 对于核心业务,设计降级策略。当 Workers AI 服务不可用或达到限额时,可以优雅地回退到其他备用 AI API 提供商。
    • 本地测试与模拟: 在开发阶段,可以编写模拟的env.AI对象进行单元测试,避免消耗线上配额。

Cloudflare Workers AI 将高性能的 AI 推理能力变成了像调用一个普通函数一样简单的基础设施。通过将 Kimi、GLM 等模型部署到全球边缘,它从根本上解决了延迟和成本的痛点。对于开发者而言,这意味着你可以用极低的门槛和成本,构建出响应迅捷、体验流畅的下一代 AI 应用。

技术的下一步演进,很可能是更细粒度的模型定制和混合推理——在边缘运行优化后的小模型处理常见任务,复杂任务再路由到中心大模型。作为开发者,现在正是熟悉边缘 AI 范式、优化应用架构的好时机。不妨从今天介绍的简单 Worker 开始,亲手部署一个属于你自己的、运行在全球边缘的智能助手,切身感受“更小、更快、更安全”带来的变化。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询