Workers AI 完整教程:每天白嫖 10000 次大模型调用,比 OpenAI 省 90%

说实话,第一次看到 OpenAI 账单的时候我整个人都傻了。一个月 200 多美元,就因为做了个小项目测试了几天 API。那时候我就在想:有没有免费或者便宜点的替代方案? 后来在研究 Cloudflare 的边缘计算功能时,偶然发现了 Workers AI。测试了一周后发现,免费额度对个人开发者来说真的够用。今天就把完整的使用方法分享给你。

Workers AI 是什么?为什么值得关注?

简单来说,Workers AI 就是 Cloudflare 推出的无服务器 AI 推理服务。你不需要自己买 GPU、不需要管服务器,写几行代码就能调用 Llama、Mistral 这些开源大模型。 最关键的是三点:

  1. 每天 10,000 Neurons 免费额度
    • 实测大概能处理几百次对话,个人项目完全够用
    • 用 Llama 3.1-8B 模型,我测试了 1000 次简单对话,消耗了大约 8000 Neurons
  2. 付费也很便宜: $0.011/1000 Neurons
    • 比 OpenAI GPT-3.5 便宜 60-70%
    • 比 GPT-4 便宜 90% 以上
  3. 全球边缘网络加速
    • Cloudflare 有 300+ 个节点
    • 响应速度比很多云服务商快

和其他方案对比一下

你可能会问:免费的东西能好用吗?我整理了个表格对比:

方案 免费额度 付费价格 响应速度 模型选择
Workers AI 10,000 Neurons/天 $0.011/1k Neurons 快(边缘节点) 50+ 开源模型
OpenAI API $5 新用户(一次性) $0.002/1k tokens(GPT-3.5) 中等 GPT 系列
HuggingFace 有限免费调用 按模型计费 较慢 海量模型
自建服务器 - GPU租用成本高 取决于配置 任意模型
什么时候适合用 Workers AI?
  • ✅ 个人项目、原型验证、学习实验
  • ✅ 中小规模生产应用(QPS < 300)
  • ✅ 对成本敏感的初创项目 什么时候不太合适?
  • ⚠️ 大规模批量处理(每天几十万次调用)
  • ⚠️ 对延迟极度敏感的实时应用(需要 < 100ms 响应)
  • ⚠️ 需要最新 GPT-4 级别模型的场景

免费额度够用吗?我帮你算一笔账

这个"Neurons"是 Cloudflare 自己定义的计费单位,刚开始我也看懵了。简单理解就是: Neurons = (输入 tokens + 输出 tokens) × 模型系数 不同模型的系数不一样:

  • Llama 3.1-8B: 系数约 0.8
  • Llama 3.1-70B: 系数约 3.5
  • Mistral 7B: 系数约 0.7 实际能用多少次? 我实测了一下,用 Llama 3.1-8B 处理中文对话:
  • 简单问答(100 字以内): 每次消耗 5-8 Neurons
  • 长文本摘要(1000 字输入): 每次消耗 30-50 Neurons
  • 代码生成(500 行代码): 每次消耗 20-40 Neurons 按这个消耗量算,每天 10,000 Neurons 大概能处理:
  • 1000-2000 次简单对话
  • 200-300 次长文本处理
  • 250-500 次代码生成 老实讲,对个人开发者来说真的很够用了。我现在用 Workers AI 跑了个小机器人,每天处理几百条消息,完全在免费额度内。

如果超了免费额度怎么办?

会自动转成付费模式,$0.011/1000 Neurons。 我算了一下,就算超了,成本也很低:

  • 假设你每天用 50,000 Neurons(是免费额度的 5 倍)
  • 超出部分: 40,000 Neurons
  • 费用: 40,000 / 1000 × <math xmlns="http://www.w3.org/1998/Math/MathML"> 0.011 = ∗ ∗ 0.011 = ** </math>0.011=∗∗0.44/天**
  • 一个月也就 ** <math xmlns="http://www.w3.org/1998/Math/MathML"> 13 左右 ∗ ∗ 对比 O p e n A I : 相同调用量可能要 13 左右** 对比 OpenAI:相同调用量可能要 </math>13左右∗∗对比OpenAI:相同调用量可能要50-100,Workers AI 确实便宜不少。

快速上手:三种方式调用 Workers AI

前置准备很简单:

  1. 注册 Cloudflare 账号(免费)
  2. 安装 Node.js(如果用方式二、三) 接下来我介绍三种调用方式,从简单到进阶,你可以根据自己需求选择。

方式一:最简单 - 直接用 REST API

这是最快的体验方式,连代码都不用写,用 curl 命令就能测试。

第一步:获取 API Token 和 Account ID

  1. 登录 Cloudflare,访问 dash.cloudflare.com
  2. 地址栏会显示 https://dash.cloudflare.com/xxxxxxxxx,这串 xxxxxxxxx 就是你的 Account ID,复制保存好
  3. 点击右上角头像 → My Profile → API Tokens
  4. 点击"Create Token" → 找到"Workers AI"模板 → "Use template"
  5. 继续到最后,会生成一个 Token,这个只显示一次,一定要保存好 我当时找这个 Token 位置翻了好久,所以专门截了图(如果你也找不到,可以搜 Cloudflare API Tokens 页面)。

第二步:测试调用 打开终端,运行这个命令(记得替换你的 Account ID 和 Token):

bash 复制代码
curl https://api.cloudflare.com/client/v4/accounts/{你的Account_ID}/ai/run/@cf/meta/llama-3.1-8b-instruct \
  -H "Authorization: Bearer {你的API_Token}" \
  -H "Content-Type: application/json" \
  -d '{
    "messages": [
      {"role": "system", "content": "你是一个友好的 AI 助手"},
      {"role": "user", "content": "用一句话介绍一下 Cloudflare Workers AI"}
    ]
  }'

如果看到返回类似这样的 JSON,就说明成功了:

json 复制代码
{
  "result": {
    "response": "Cloudflare Workers AI 是一个无服务器的 AI 推理平台..."
  },
  "success": true
}

第一次成功返回的时候,我激动得截了个图发朋友圈😂 常见错误处理:

  • 错误 7003: Token 或 Account ID 填错了,检查一下是否完整复制
  • 错误 10000 : 模型名字写错了,注意是 @cf/meta/llama-3.1-8b-instruct,不要漏掉 @cf/
  • 超时: 首次调用可能慢一点(冷启动),等 10 秒左右,后续就快了

方式二:推荐 - 用 Workers + Wrangler 部署

这是官方推荐的方式,好处是可以部署成一个永久可用的 API,而且配置管理更方便。

第一步:安装 Wrangler CLI

bash 复制代码
npm install -g wrangler

然后登录你的 Cloudflare 账号:

bash 复制代码
wrangler login

会自动打开浏览器让你授权,点同意就行。

第二步:创建 Worker 项目

bash 复制代码
npm create cloudflare@latest my-ai-worker

会问你几个问题,按这样选择:

  • Select a project type: "Hello World" Worker
  • Do you want to use TypeScript? 看你喜欢,我选的 No(用 JavaScript)
  • Do you want to use git? Yes
  • Do you want to deploy? 先选 No,测试好再部署

第三步:配置 Workers AI 绑定

进入项目目录,编辑 wrangler.toml 文件,在最后加上这几行:

toml 复制代码
[ai]
binding = "AI"

这样就可以在代码里用 env.AI 访问 Workers AI 服务了,不需要手动传 Token。

第四步:写代码

编辑 src/index.js(或 index.ts),把内容改成这样:

javascript 复制代码
export default {
  async fetch(request, env) {
    // 处理 CORS(如果你要从网页调用)
    if (request.method === 'OPTIONS') {
      return new Response(null, {
        headers: {
          'Access-Control-Allow-Origin': '*',
          'Access-Control-Allow-Methods': 'POST',
          'Access-Control-Allow-Headers': 'Content-Type',
        },
      });
    }
    // 只接受 POST 请求
    if (request.method !== 'POST') {
      return new Response('Method not allowed', { status: 405 });
    }
    try {
      // 解析请求
      const { messages } = await request.json();
      // 调用 AI 模型
      const response = await env.AI.run('@cf/meta/llama-3.1-8b-instruct', {
        messages: messages || [
          { role: 'user', content: 'Hello!' }
        ]
      });
      // 返回结果
      return new Response(JSON.stringify(response), {
        headers: {
          'Content-Type': 'application/json',
          'Access-Control-Allow-Origin': '*',
        },
      });
    } catch (error) {
      return new Response(JSON.stringify({ error: error.message }), {
        status: 500,
        headers: { 'Content-Type': 'application/json' },
      });
    }
  },
};

第五步:本地测试

bash 复制代码
wrangler dev

会启动一个本地服务器,通常是 http://localhost:8787。 用 curl 测试一下:

bash 复制代码
curl http://localhost:8787 \
  -X POST \
  -H "Content-Type: application/json" \
  -d '{
    "messages": [
      {"role": "user", "content": "介绍一下你自己"}
    ]
  }'

如果返回正常,就可以部署了。

第六步:部署到生产环境

bash 复制代码
wrangler deploy

部署成功后,会给你一个 *.workers.dev 域名,比如:

arduino 复制代码
https://my-ai-worker.your-name.workers.dev

这就是你的 AI API 地址了,可以从任何地方调用。 我现在用这个方式跑了个小客服机器人,完全免费,响应速度也不错(通常 1-3 秒)。

方式三:用 OpenAI SDK 无缝迁移

如果你之前用的是 OpenAI API,现在想换成 Workers AI,这个方法最方便 - 代码几乎不用改。 Workers AI 提供了 OpenAI 兼容的端点,只需要改一下 baseURL 就行。

javascript 复制代码
import OpenAI from 'openai';
const client = new OpenAI({
  apiKey: process.env.CLOUDFLARE_API_TOKEN, // 用你的 Cloudflare Token
  baseURL: `https://api.cloudflare.com/client/v4/accounts/${process.env.ACCOUNT_ID}/ai/v1`,
});
// 和 OpenAI 一模一样的调用方式
const chatCompletion = await client.chat.completions.create({
  model: '@cf/meta/llama-3.1-8b-instruct', // 换成 Workers AI 的模型名
  messages: [
    { role: 'system', content: '你是一个友好的 AI 助手' },
    { role: 'user', content: 'Hello!' }
  ],
});
console.log(chatCompletion.choices[0].message.content);

注意事项:

  • apiKey 用 Cloudflare 的 API Token
  • baseURL 改成 Workers AI 的端点
  • model 改成 Workers AI 支持的模型名(前面要加 @cf/) 我之前有个 Next.js 项目用的 OpenAI,迁移到 Workers AI 只花了 10 分钟,改了这三个地方就行。

能用哪些模型?怎么选?

Workers AI 现在支持 50 多个模型,我挑几个常用的介绍一下。

文本生成模型(最常用)

模型 参数量 特点 推荐场景 模型 ID
Llama 3.1 8B 平衡性好,速度快 日常对话、客服、摘要 @cf/meta/llama-3.1-8b-instruct
Llama 3.1 70B 质量更高,慢一点 复杂推理、长文本 @cf/meta/llama-3.1-70b-instruct
Llama 4 Scout 17B(MoE) 多模态(图文) 图像理解+文本 @cf/meta/llama-4-scout
Mistral 7B v0.2 7B 32k 上下文 长文档分析 @cf/mistral/mistral-7b-instruct-v0.2
DeepSeek-R1 32B 推理能力强 数学、代码、逻辑 @cf/deepseek/deepseek-r1-distill-qwen-32b
OpenAI GPT-OSS 120B/20B Cloudflare 独家 接近 GPT-4 级别 @cf/openai/gpt-oss-120b
我的选择建议:
  1. 初次尝试用 Llama 3.1-8B
    • 响应快(1-2 秒)
    • 质量够用,不输 GPT-3.5
    • 免费额度消耗少
  2. 要求高一点用 Llama 3.1-70B 或 DeepSeek-R1
    • 推理能力更强
    • 生成质量接近 GPT-4
    • 就是慢一点(3-5 秒),消耗也多 3-4 倍
  3. 长文档分析用 Mistral 7B v0.2
    • 支持 32k 上下文窗口(Llama 3.1 只有 8k)
    • 适合处理长论文、长代码

其他实用模型

  • 图像生成 : Stable Diffusion XL - @cf/stabilityai/stable-diffusion-xl-base-1.0
  • 语音识别 : Whisper - @cf/openai/whisper
  • 文本嵌入 : BGE-base - @cf/baai/bge-base-en-v1.5(做向量搜索用)
  • 内容安全 : Llama Guard 3 - @cf/meta/llama-guard-3-8b(检测有害内容) 完整模型列表可以看官方文档: developers.cloudflare.com/workers-ai/...

实战案例:三个真实例子

案例1:构建智能问答 API(最简单)

场景: 给你的博客或文档站加一个 AI 客服。 完整代码(基于方式二):

javascript 复制代码
export default {
  async fetch(request, env) {
    // 允许跨域
    const corsHeaders = {
      'Access-Control-Allow-Origin': '*',
      'Access-Control-Allow-Methods': 'POST, OPTIONS',
      'Access-Control-Allow-Headers': 'Content-Type',
    };
    if (request.method === 'OPTIONS') {
      return new Response(null, { headers: corsHeaders });
    }
    try {
      const { question } = await request.json();
      // 你可以在 system 提示词里加上你网站的背景知识
      const messages = [
        {
          role: 'system',
          content: '你是一个技术博客的 AI 助手,主要回答关于 Web 开发、AI 应用的问题。回答要简洁、友好。'
        },
        {
          role: 'user',
          content: question
        }
      ];
      const response = await env.AI.run(
        '@cf/meta/llama-3.1-8b-instruct',
        { messages }
      );
      return new Response(
        JSON.stringify({ answer: response.response }),
        { headers: { ...corsHeaders, 'Content-Type': 'application/json' } }
      );
    } catch (error) {
      return new Response(
        JSON.stringify({ error: '处理失败,请稍后重试' }),
        { status: 500, headers: { ...corsHeaders, 'Content-Type': 'application/json' } }
      );
    }
  }
};

前端调用:

javascript 复制代码
async function askQuestion(question) {
  const response = await fetch('https://your-worker.workers.dev', {
    method: 'POST',
    headers: { 'Content-Type': 'application/json' },
    body: JSON.stringify({ question })
  });
  const data = await response.json();
  return data.answer;
}
// 使用
const answer = await askQuestion('Workers AI 怎么收费?');
console.log(answer);

成本估算: 假设每天有 200 个用户提问,每次对话消耗 10 Neurons,总共 2000 Neurons,完全在免费额度内。

案例2:批量文本摘要生成

场景: 你有一堆文章需要生成摘要,比如 RSS 订阅、新闻抓取。

javascript 复制代码
async function generateSummary(text, env) {
  const messages = [
    {
      role: 'system',
      content: '你是一个专业的文本摘要助手。请将用户提供的文章总结成 2-3 句话,突出核心观点。'
    },
    {
      role: 'user',
      content: `请总结以下文章:\n\n${text}`
    }
  ];
  const response = await env.AI.run(
    '@cf/meta/llama-3.1-8b-instruct',
    {
      messages,
      max_tokens: 150 // 限制输出长度,节省 Neurons
    }
  );
  return response.response;
}
// 批量处理
export default {
  async fetch(request, env) {
    const { articles } = await request.json(); // 假设传入文章数组
    const summaries = [];
    // 注意速率限制: 300 请求/分钟,所以要控制并发
    for (const article of articles) {
      const summary = await generateSummary(article.content, env);
      summaries.push({ title: article.title, summary });
      // 简单的速率控制(实际应该用更智能的队列)
      await new Promise(resolve => setTimeout(resolve, 200)); // 每次间隔 200ms
    }
    return new Response(JSON.stringify(summaries), {
      headers: { 'Content-Type': 'application/json' }
    });
  }
};

注意速率限制:

  • Llama 3.1-8B 限制是 300 请求/分钟
  • 如果要批量处理,记得加延迟或用队列
  • 我一般用 p-queue 这个 npm 包控制并发 成本计算实例:
  • 假设每篇文章 1000 字,生成 100 字摘要
  • 每次消耗约 30 Neurons
  • 处理 300 篇文章 = 9000 Neurons,还在免费额度内

案例3:多语言翻译服务(比 Google Translate 便宜)

场景: 做一个翻译工具,或者给你的应用加国际化支持。

javascript 复制代码
async function translate(text, targetLang, env) {
  const messages = [
    {
      role: 'system',
      content: `你是一个专业的翻译助手。将用户输入翻译成 ${targetLang},保持原文风格和语气。只返回翻译结果,不要加任何解释。`
    },
    {
      role: 'user',
      content: text
    }
  ];
  const response = await env.AI.run(
    '@cf/meta/llama-3.1-8b-instruct', // Llama 3.1 支持多语言
    { messages }
  );
  return response.response;
}
export default {
  async fetch(request, env) {
    const { text, targetLang } = await request.json();
    const translation = await translate(text, targetLang, env);
    return new Response(JSON.stringify({ translation }), {
      headers: { 'Content-Type': 'application/json' }
    });
  }
};

成本对比:

  • Google Cloud Translation API: $20/百万字符
  • Workers AI(Llama 3.1) : 假设 100 字文本消耗 15 Neurons
    • 百万字符 = 10,000 次调用 = 150,000 Neurons
    • 成本: 150,000/1000 × <math xmlns="http://www.w3.org/1998/Math/MathML"> 0.011 = ∗ ∗ 0.011 = ** </math>0.011=∗∗1.65** 便宜了 10 倍以上!当然,Google Translate 准确度可能稍高一点,但 Llama 3.1 的翻译质量我觉得也够用了。

进阶技巧:优化性能和成本

1. 使用流式响应减少等待时间

对于长文本生成,可以用流式响应,让用户看到逐字输出(像 ChatGPT 那样)。

javascript 复制代码
const response = await env.AI.run(
  '@cf/meta/llama-3.1-8b-instruct',
  {
    messages,
    stream: true // 开启流式响应
  }
);
// 返回流式响应
return new Response(response, {
  headers: { 'Content-Type': 'text/event-stream' }
});

前端用 Server-Sent Events(SSE)接收:

javascript 复制代码
const eventSource = new EventSource('https://your-worker.workers.dev');
eventSource.onmessage = (event) => {
  const data = JSON.parse(event.data);
  console.log(data.response); // 逐字显示
};

2. 设置 max_tokens 控制成本

如果你不需要很长的回复,可以限制输出长度:

javascript 复制代码
const response = await env.AI.run(
  '@cf/meta/llama-3.1-8b-instruct',
  {
    messages,
    max_tokens: 100 // 最多生成 100 个 token
  }
);

这样能节省不少 Neurons,尤其是批量处理的时候。

3. 用 Cloudflare AI Gateway 做缓存和监控

Cloudflare 还有个 AI Gateway 服务,可以:

  • 缓存相同请求的结果(节省 Neurons)
  • 监控 API 调用统计
  • 限流保护 (防止滥用) 配置很简单,在 wrangler.toml 里加:
toml 复制代码
[ai]
binding = "AI"
gateway = "my-gateway" # 你的 AI Gateway 名字

然后在 Cloudflare Dashboard → AI Gateway 里创建一个 Gateway。 我现在用这个来监控我的 Worker,可以看到每天消耗了多少 Neurons,哪些请求最慢,挺方便的。

4. 与其他服务集成

集成到 Next.js 应用:

typescript 复制代码
// app/api/ai/route.ts
import { NextRequest, NextResponse } from 'next/server';
export const runtime = 'edge'; // 重要: 用 Edge Runtime
export async function POST(request: NextRequest) {
  const { messages } = await request.json();
  const response = await fetch(
    `https://api.cloudflare.com/client/v4/accounts/${process.env.ACCOUNT_ID}/ai/run/@cf/meta/llama-3.1-8b-instruct`,
    {
      method: 'POST',
      headers: {
        'Authorization': `Bearer ${process.env.CF_API_TOKEN}`,
        'Content-Type': 'application/json',
      },
      body: JSON.stringify({ messages }),
    }
  );
  const data = await response.json();
  return NextResponse.json(data);
}

结合 Cloudflare Pages 部署前端: 你可以把前端部署到 Cloudflare Pages,后端用 Workers AI,全部在 Cloudflare 生态内,速度更快而且都免费。 我现在有个项目就是这么部署的,前端 + 后端一分钱没花。

常见问题解答

Q1: 如何获取 API Token?

A: Dashboard → My Profile → API Tokens → Create Token → 选择 "Workers AI" 模板。记得保存好,只显示一次。

Q2: Account ID 在哪里找?

A: 登录后看地址栏,https://dash.cloudflare.com/xxxxxxxxx,那串 xxxxxxxxx 就是。

Q3: Token 泄露了怎么办?

A: 立即去 API Tokens 页面撤销(Revoke)旧 Token,然后重新生成一个。

Q4: 免费额度用完了怎么办?

A: 会自动转成付费模式,按 $0.011/1000 Neurons 计费。你可以在 Dashboard 设置用量提醒,避免超支。

Q5: 遇到速率限制怎么处理?

A: 大多数 LLM 限制是 300 请求/分钟。如果超了:

  • 加延迟控制请求频率
  • 用队列系统缓冲请求
  • 考虑升级到付费计划(会有更高限制)

Q6: 哪些地区可以使用?

A: 全球都可以,Cloudflare 有 300+ 个边缘节点。但中国大陆访问可能需要特殊网络。

Q7: 模型输出质量不如预期怎么办?

A: 几个建议:

  • 优化 prompt,多给一些示例(few-shot learning)
  • 换更大的模型,比如从 8B 换到 70B
  • 调整 temperature 参数(默认 1.0,降低会更稳定)

Q8: 可以微调模型吗?

A: Workers AI 现在支持 LoRA 微调(2024年新增功能),但这是付费功能,而且需要一定的机器学习知识。对大多数人来说,优化 prompt 就够了。

Q9: 如何监控用量?

A: Cloudflare Dashboard → Workers AI → Analytics,可以看到:

  • 每天消耗的 Neurons
  • 请求次数和成功率
  • 平均响应时间 建议定期检查,避免超额。

Q10: 支持哪些编程语言?

A: 官方支持:

  • JavaScript/TypeScript(Workers)
  • Python(通过 REST API)
  • 任何能发 HTTP 请求的语言 用 REST API 的话,什么语言都能调用。

总结:Workers AI 值得尝试吗?

测试了一个月后,我的结论是:对个人开发者和小团队来说,非常值得。 优点:

  • ✅ 免费额度慷慨(每天 10,000 Neurons)
  • ✅ 付费价格便宜(比 OpenAI 便宜 60-90%)
  • ✅ 上手简单(有 REST API 和 OpenAI 兼容接口)
  • ✅ 响应速度快(全球边缘网络)
  • ✅ 模型选择多(50+ 开源模型) 缺点:
  • ⚠️ 模型质量略逊于 GPT-4(但接近 GPT-3.5)
  • ⚠️ 速率限制(300 请求/分钟,大规模应用可能不够)
  • ⚠️ 文档还不够完善(有些功能要自己摸索) 我的建议:
  1. 个人项目直接上,免费额度足够,而且省了服务器成本
  2. 创业项目可以先用,等规模上来再考虑迁移到其他方案
  3. 企业应用谨慎评估,要考虑 SLA、数据合规性等问题 如果你也在找低成本的 AI 方案,不妨试试 Workers AI。注册账号 5 分钟,跑通第一个例子也就 15 分钟,万一适合你呢?

延伸学习资源


欢迎在评论区分享:

  • 你用 Workers AI 做了什么项目?
  • 遇到了什么坑?
  • 有什么优化建议? 大家一起交流学习,说不定能碰撞出新的想法😄

原文首发自个人博客

相关推荐
用户5191495848451 小时前
探秘C#伪随机数生成器的安全漏洞与破解之道
人工智能·aigc
鱼鱼块2 小时前
"从自然语言到数据库:AI First 时代的编程与开发革命"
sqlite·llm·openai
天远数科2 小时前
微服务架构下的风控数据集成:基于Go的支付行为指数API实战
大数据·api
Max8124 小时前
深入理解 LLM 的"思考工具":从零实现 ReasoningTools
openai·agent
扑克中的黑桃A4 小时前
智能时代的操作系统范式:openEuler的AI就绪度深度评估
aigc
用户12039112947264 小时前
AIGC 时代,数据库终于可以“听懂人话”了:从零打造自然语言操作 SQLite 的完整实战
python·sqlite·aigc
AI生成未来7 小时前
港科大等提出音频驱动多人视频生成新范式 AnyTalker,解锁任意数量角色间的自然互动!
aigc·音视频·视频生成·音频驱动视频
用户268001379198 小时前
苏宁多规格商品 API 解析实战:SKU 关联逻辑与属性值提取技巧
api
emma羊羊8 小时前
【API安全】crapi靶场实战
apache·api·crapi靶场