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"} ] }'
成功返回 JSON 即表示调用正常。
常见错误处理:
- 错误 7003: Token 或 Account ID 填写错误。
- 错误 10000: 模型名称错误,注意包含
@cf/。
- 超时: 首次调用可能冷启动,等待 10 秒左右。
方式二:Wrangler 部署 Worker
官方推荐方式,可部署为永久可用 API。
第一步:安装 Wrangler CLI
npm install -g wrangler
wrangler login
第二步:创建 Worker 项目
npm create cloudflare@latest my-ai-worker
按提示选择项目类型 (Hello World Worker)、语言 (JavaScript/TypeScript) 及是否初始化 Git。
第三步:配置绑定
编辑 wrangler.toml,添加:
[ai]
binding = "AI"
第四步:编写代码 (src/index.js)
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',
: ,
},
});
} (error) {
(.({ : error. }), {
: ,
: { : },
});
}
},
};
第五步:本地测试与部署
wrangler dev
wrangler deploy
部署成功后获得 *.workers.dev 域名。
方式三:OpenAI SDK 兼容接口
适用于已有 OpenAI 项目的无缝迁移。
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
基于 Worker 构建博客客服。
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 (.({ : }), { : , : { ...corsHeaders, : } });
}
},
};
案例 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. 流式响应
减少等待时间,类似 ChatGPT 逐字输出。
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' } });
前端通过 SSE 接收数据。
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 和数据合规性。
官方文档:https://developers.cloudflare.com/workers-ai/
模型目录:https://developers.cloudflare.com/workers-ai/models/