CodeRoadMap
首页路线题库资源库文章社区
CodeRoadMap

程序员的学习成长路线图。内容免费开放,登录后可同步路线图与课时进度。

由 程序员柏风 独立维护 · 关于作者

学习

  • 路线图
  • 课程
  • 面试题
  • 文章
  • 我

更多

  • 资源
  • 社区
  • 关于作者
  • 内容说明

© 2026 CodeRoadMap

津ICP备2026012044号-1·津公网安备12011002026155号·coderoadmap@126.com
Cloudflare 实战入门/课时/Workers AI
RawBlame
课时目录12 节

Cloudflare 实战入门

  1. 01边缘计算概览
  2. 02Wrangler 与本地开发
  3. 03Workers 核心
  4. 04Workers KV
  5. 05R2 对象存储
  6. 06D1 数据库
  7. 07Queues 消息队列
  8. 08Durable Objects
  9. 09Workers AI
  10. 10Stream 与媒体
  11. 11安全与防护
  12. 12运维与集成

Workers AI

边缘 AI 与 Vectorize。

30 分钟

Workers AI

这一课你将能做到

  1. 在 Worker 中调用 Workers AI 完成文本生成、分类、翻译、向量嵌入
  2. 使用 AI Gateway 统一代理多家 AI 提供商(OpenAI、Anthropic、Workers AI)并实现缓存和限流
  3. 结合 Vectorize 构建语义搜索 / RAG 应用

为什么要学

你想给本站 Next.js 前端加一个「AI 智能问答」功能。传统做法是前端调用你的 Next.js API Route,API Route 再转发到 OpenAI,链路是:用户 → Cloudflare CDN → 你的服务器 → OpenAI。这一圈下来延迟高、成本高、还暴露了你的 API Key。

人话:Workers AI 让你直接在边缘跑模型推理——Llama、Mistral、BGE 嵌入模型,一行绑定调用,不用管 GPU、不用管 API Key 泄露、不用跨洋调用。再配合 AI Gateway,你可以把 OpenAI、Anthropic、Workers AI 统一成一个网关,做缓存、限流、监控、Key 池管理。

先建立图像

传统 AI 调用:                          Workers AI + AI Gateway:

[浏览器]                                 [浏览器]
   │                                        │
   ▼                                        ▼
[Next.js API Route] ──> [OpenAI]         [Cloudflare Edge Worker]
(你的服务器)                                  │
   │ 跨洋调用                          ┌─────┴─────┐
   ▼                                   ▼           ▼
美国 OpenAI 机房                   [Workers AI]  [AI Gateway]
延迟 300ms+                        (边缘推理)      │
                                              ├──> OpenAI
                                              ├──> Anthropic
                                              └──> Workers AI
                                              (缓存/限流/Key池)

跟着做

步骤 1:绑定 Workers AI

wrangler.toml:

[ai]
binding = "AI"

步骤 2:调用 LLM 生成文本

export interface Env {
  AI: Ai;
}

export default {
  async fetch(request: Request, env: Env): Promise<Response> {
    const { prompt } = await request.json();
    
    const response = await env.AI.run('@cf/meta/llama-3.1-8b-instruct', {
      messages: [
        { role: 'system', content: 'You are a helpful assistant.' },
        { role: 'user', content: prompt },
      ],
      max_tokens: 512,
    });
    
    return Response.json(response);
  },
} satisfies ExportedHandler<Env>;

步骤 3:生成向量嵌入

const embedding = await env.AI.run('@cf/baai/bge-base-en-v1.5', {
  text: 'Cloudflare Workers is a serverless platform',
});
// embedding.data 是一个 number[][],可以存入 Vectorize

步骤 4:创建 Vectorize 索引

npx wrangler vectorize create my-embeddings --dimensions=768 --metric=cosine

wrangler.toml:

[[vectorize]]
binding = "VECTORIZE"
index_name = "my-embeddings"

步骤 5:写入和查询向量

// 写入
await env.VECTORIZE.upsert([
  {
    id: 'doc-1',
    values: embedding.data[0],
    metadata: { title: 'Workers 文档', url: '/docs/workers' },
  },
]);

// 查询
const results = await env.VECTORIZE.query(queryEmbedding.data[0], {
  topK: 5,
  returnMetadata: 'all',
});

步骤 6:配置 AI Gateway

到 Dashboard → AI → AI Gateway 创建一个 gateway,拿到 gateway URL。然后:

const gatewayUrl = 'https://gateway.ai.cloudflare.com/v1/{account_id}/{gateway_name}/openai';

const response = await fetch(`${gatewayUrl}/chat/completions`, {
  method: 'POST',
  headers: {
    'Authorization': `Bearer ${env.OPENAI_API_KEY}`,
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    model: 'gpt-4o-mini',
    messages: [{ role: 'user', content: prompt }],
  }),
});

AI Gateway 会自动做:请求日志、缓存(相同 prompt 直接返回缓存结果)、限流、重试、Key 池轮询。

讲清楚要点

  1. Workers AI 是边缘推理:模型跑在 Cloudflare 的 GPU 节点上,延迟比跨洋调用 OpenAI 低得多。但模型规模有限(当前最大是 Llama 3.1 8B 级别),不适合超复杂推理。
  2. AI Gateway 是统一网关:支持 OpenAI、Anthropic、Workers AI、HuggingFace 等多家提供商。核心价值是:缓存、限流、监控、Key 池、统一日志。
  3. Vectorize 是向量数据库:专为 RAG 设计。把文档转成向量存入 Vectorize,查询时把问题也转成向量,做相似度搜索。
  4. 流式响应:LLM 生成是流式的,用 ReadableStream 返回可以边生成边推给前端,提升体验。
  5. 成本控制:Workers AI 按 token 计费,AI Gateway 免费(只收底层提供商费用)。缓存命中可以省 100% 的 API 调用费用。

你可能会懵的地方

  • Workers AI 和 OpenAI 怎么选? 简单任务(分类、翻译、摘要)用 Workers AI,延迟低、成本低;复杂推理(代码生成、长文写作)用 OpenAI/Anthropic,通过 AI Gateway 统一管理。

  • 向量维度怎么确定? 由嵌入模型决定。bge-base-en-v1.5 是 768 维,bge-large-en-v1.5 是 1024 维。创建 Vectorize 索引时必须匹配。

  • AI Gateway 会泄露我的 API Key 吗? 不会。Key 存在 Cloudflare 的密钥管理服务里,请求只在 Cloudflare 内部网络转发,不经过第三方。

  • Workers AI 支持中文吗? 支持。Llama 3.1、Mistral 等多语言模型都能处理中文。嵌入模型建议用 bge-m3(多语言)而不是 bge-base-en。

  • RAG 的完整链路是什么? 文档 → 切分 → 嵌入 → 存入 Vectorize → 用户提问 → 问题嵌入 → Vectorize 检索 → 把相关文档 + 问题一起发给 LLM → 生成回答。

错法对照

错法问题正解
在前端直接调用 OpenAIAPI Key 暴露,任何人都能刷你的额度通过 Worker 或 AI Gateway 代理
不做缓存,相同 prompt 重复调用浪费 API 费用开启 AI Gateway 缓存
嵌入模型和 Vectorize 维度不匹配查询失败或结果错误创建索引时确认模型输出维度
一次性传入整本电子书做嵌入超过模型上下文限制文档切分成 chunk(500-1000 token)
用 Workers AI 做超长文生成模型上下文有限(通常 4K-8K)超长任务用 OpenAI/Anthropic

卡点急救

  1. Workers AI 返回 500:模型可能暂时过载。加重试逻辑,或 fallback 到 AI Gateway + OpenAI。
  2. Vectorize 查询结果为空:检查嵌入模型是否一致(写入和查询必须用同一个模型);检查 topK 是否太小。
  3. AI Gateway 缓存不生效:缓存默认按完整请求体匹配。如果 prompt 有细微差异(如时间戳),缓存不会命中。建议规范化 prompt。

面试常问

  • Workers AI 和 OpenAI 的核心差异? Workers AI 是边缘推理,延迟低、成本低,但模型规模有限;OpenAI 模型更强,但需要跨洋调用,延迟高。生产环境通常混合使用:简单任务走 Workers AI,复杂任务走 OpenAI,统一通过 AI Gateway 管理。

  • RAG 的完整流程? 文档切分 → 嵌入模型转向量 → 存入向量数据库 → 用户提问 → 问题转向量 → 向量检索 Top-K → 拼接上下文 → LLM 生成回答。关键点是嵌入模型一致性、chunk 大小、检索质量。

  • AI Gateway 的价值? 统一入口、缓存降本、限流保护、Key 池管理、日志监控。相当于给你的 AI 调用加了一层「CDN + 防火墙 + 监控系统」。

自测三问

  1. 如果用户问的问题在 Vectorize 里检索不到相关文档,RAG 会怎么表现?怎么优化?
  2. Workers AI 的流式响应怎么用 ReadableStream 实现?
  3. AI Gateway 的缓存键是什么?怎么设计 prompt 才能最大化缓存命中率?

小结一句话

Workers AI + Vectorize + AI Gateway 构成了边缘 AI 的三件套:边缘推理降延迟、向量搜索做 RAG、统一网关做治理。

延伸

  • Workers AI 官方文档
  • AI Gateway 官方文档
  • Vectorize 官方文档
  • 下一课:Stream 与媒体,学习视频处理、图片优化与分发。
加载本节练习…
← 上一课Durable Objects下一课 →Stream 与媒体