跳到主要内容Workers AI 使用指南:免费额度与成本优化实践 | 极客日志JavaScriptNode.jsAI
Workers AI 使用指南:免费额度与成本优化实践
Workers AI 是 Cloudflare 提供的无服务器 AI 推理服务,提供每日 10,000 Neurons 免费额度及边缘网络加速。相比 OpenAI,其成本显著降低,适合个人项目及中小规模应用。支持多种开源模型如 Llama 3.1、Mistral 等。可通过 REST API、Wrangler 部署 Worker 或 OpenAI SDK 兼容接口调用。涵盖配置步骤、成本计算、模型选择及实战案例,帮助开发者快速上手并优化成本。
清心50 浏览 Workers AI 使用指南

初次接触 OpenAI 账单时,发现成本较高。对于小项目测试,寻找免费或低成本的替代方案至关重要。Cloudflare 推出的 Workers AI 提供了无服务器 AI 推理服务,无需自建 GPU 或管理服务器,即可调用 Llama、Mistral 等开源大模型。
Workers AI 核心优势
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 租用成本高 | 取决于配置 | 任意模型 |
适用场景:
- ✅ 个人项目、原型验证、学习实验
- ✅ 中小规模生产应用 (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 次代码生成
若超出免费额度,自动转为付费模式 ($0.011/1000 Neurons)。即使每日使用 50,000 Neurons,月成本也仅约 $13,远低于 OpenAI。
快速上手:三种调用方式
- 注册 Cloudflare 账号 (免费)
- 安装 Node.js (用于方式二、三)
方式一:REST API
最快的体验方式,无需写代码,使用 curl 命令测试。
第一步:获取 API Token 和 Account ID
- 登录 Cloudflare Dashboard。
- 地址栏显示
https://dash.cloudflare.com/xxxxxxxxx,xxxxxxxxx 即为 Account ID。
- 点击右上角头像 → My Profile → API Tokens。
- 点击 "Create Token" → 选择 "Workers AI" 模板 → 生成 Token。Token 只显示一次,务必保存。
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"} ] }'
- 错误 7003: Token 或 Account ID 填写错误。
- 错误 10000: 模型名称错误,注意包含
@cf/。
- 超时: 首次调用可能冷启动,等待 10 秒左右。
方式二:Wrangler 部署 Worker
npm install -g wrangler
wrangler login
npm create cloudflare@latest my-ai-worker
按提示选择项目类型 (Hello World Worker)、语言 (JavaScript/TypeScript) 及是否初始化 Git。
第三步:配置绑定
编辑 wrangler.toml,添加:
export default {
async fetch(request, env) {
if (request.method === 'OPTIONS') {
return new Response(null, {
headers: {
'Access-Control-Allow-Origin': '*',
'Access-Control-Allow-Methods': 'POST',
'Access-Control-Allow-Headers': 'Content-Type',
},
});
}
if (request.method !== 'POST') {
return new Response('Method not allowed', { status: 405 });
}
try {
const { messages } = await request.json();
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' },
});
}
},
};
wrangler dev
wrangler deploy
部署成功后获得 *.workers.dev 域名。
方式三:OpenAI SDK 兼容接口
import OpenAI from 'openai';
const client = new OpenAI({
apiKey: process.env.CLOUDFLARE_API_TOKEN,
baseURL: `https://api.cloudflare.com/client/v4/accounts/${process.env.ACCOUNT_ID}/ai/v1`,
});
const chatCompletion = await client.chat.completions.create({
model: '@cf/meta/llama-3.1-8b-instruct',
messages: [
{ role: 'system', content: '你是一个友好的 AI 助手' },
{ role: 'user', content: 'Hello!' },
],
});
console.log(chatCompletion.choices[0].message.content);
只需修改 apiKey、baseURL 和 model 参数。
模型选择建议
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 |
| Mistral 7B v0.2 | 7B | 32k 上下文 | 长文档分析 | @cf/mistral/mistral-7b-instruct-v0.2 |
| DeepSeek-R1 | 32B | 推理能力强 | 数学、代码、逻辑 | @cf/deepseek/deepseek-r1-distill-qwen-32b |
- 初次尝试: Llama 3.1-8B (响应快,成本低)。
- 高要求: Llama 3.1-70B 或 DeepSeek-R1 (推理强,但消耗多)。
- 长文档: Mistral 7B v0.2 (支持 32k 上下文)。
其他实用模型包括图像生成 (Stable Diffusion XL)、语音识别 (Whisper)、文本嵌入 (BGE-base) 等。
实战案例
案例 1: 智能问答 API
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();
const messages = [
{ role: 'system', content: '你是一个技术博客的 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' } });
}
},
};
案例 2: 批量文本摘要
注意速率限制 (300 请求/分钟),需控制并发。
async function generateSummary(text, env) {
const messages = [
{ role: 'system', content: '你是一个专业的文本摘要助手...' },
{ role: 'user', content: text },
];
const response = await env.AI.run('@cf/meta/llama-3.1-8b-instruct', { messages, max_tokens: 150 });
return response.response;
}
案例 3: 多语言翻译
利用 Llama 3.1 的多语言能力,成本远低于 Google Translate。
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', { messages });
return response.response;
}
进阶技巧
1. 流式响应
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' } });
2. 限制输出长度
设置 max_tokens 节省 Neurons。
await env.AI.run('@cf/meta/llama-3.1-8b-instruct', { messages, max_tokens: 100 });
3. AI Gateway
启用缓存和监控,在 wrangler.toml 中配置 gateway 名称。
4. Next.js 集成
使用 Edge Runtime 直接调用 API。
export const runtime = 'edge';
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 }),
});
return NextResponse.json(await response.json());
}
常见问题
- 如何获取 API Token? Dashboard → My Profile → API Tokens → Create Token → Workers AI 模板。
- Account ID 在哪里? 登录后地址栏显示的 UUID 部分。
- Token 泄露怎么办? 立即在 API Tokens 页面撤销并重新生成。
- 免费额度用完? 自动转付费模式,可在 Dashboard 设置用量提醒。
- 遇到速率限制? 大多数模型限制 300 请求/分钟,需加延迟或使用队列。
- 哪些地区可用? 全球可用,中国大陆访问可能需要特殊网络。
- 模型质量不佳? 优化 Prompt、更换更大模型或调整 temperature 参数。
- 支持微调吗? 支持 LoRA 微调 (付费功能),通常优化 Prompt 即可。
- 如何监控用量? Cloudflare Dashboard → Workers AI → Analytics。
- 支持哪些语言? JavaScript/TypeScript (Workers), Python (REST API), 任何支持 HTTP 的语言。
总结
对个人开发者和小团队而言,Workers AI 非常值得尝试。
- ✅ 免费额度慷慨 (每天 10,000 Neurons)
- ✅ 付费价格便宜 (比 OpenAI 便宜 60-90%)
- ✅ 上手简单 (REST API 和 OpenAI 兼容接口)
- ✅ 响应速度快 (全球边缘网络)
- ✅ 模型选择多 (50+ 开源模型)
- ⚠️ 模型质量略逊于 GPT-4 (接近 GPT-3.5)
- ⚠️ 速率限制 (300 请求/分钟)
- ⚠️ 文档仍需完善
- 个人项目直接上,免费额度足够。
- 创业项目先用,规模扩大后再评估迁移。
- 企业应用谨慎评估 SLA 和数据合规性。
相关免费在线工具
- RSA密钥对生成器
生成新的随机RSA私钥和公钥pem证书。 在线工具,RSA密钥对生成器在线工具,online
- Mermaid 预览与可视化编辑
基于 Mermaid.js 实时预览流程图、时序图等图表,支持源码编辑与即时渲染。 在线工具,Mermaid 预览与可视化编辑在线工具,online
- 随机西班牙地址生成器
随机生成西班牙地址(支持马德里、加泰罗尼亚、安达卢西亚、瓦伦西亚筛选),支持数量快捷选择、显示全部与下载。 在线工具,随机西班牙地址生成器在线工具,online
- Keycode 信息
查找任何按下的键的javascript键代码、代码、位置和修饰符。 在线工具,Keycode 信息在线工具,online
- Escape 与 Native 编解码
JavaScript 字符串转义/反转义;Java 风格 \uXXXX(Native2Ascii)编码与解码。 在线工具,Escape 与 Native 编解码在线工具,online
- JavaScript / HTML 格式化
使用 Prettier 在浏览器内格式化 JavaScript 或 HTML 片段。 在线工具,JavaScript / HTML 格式化在线工具,online