Cloudflare Workers AI 免费推理服务:无需 GPU 即可运行顶级 AI 模型
在 AI 浪潮席卷全球的今天,开发者对 GPU 算力的渴求从未如此强烈。训练模型需要 GPU,微调需要 GPU,推理同样需要 GPU——而后者是绝大多数应用场景中的日常开销。对于独立开发者、初创团队或是个人项目来说,每月动辄数百美元的 GPU 租赁费用往往是一道难以逾越的门槛。
Cloudflare Workers AI 正是在这种背景下应运而生的免费 AI 推理服务。它依托 Cloudflare 全球 330 多个城市的边缘网络,将 AI 模型部署在距离用户最近的节点上,实现了超低延迟的推理响应。更重要的是,它的免费额度相当慷慨——每天支持 10,000 次神经元推理请求,足以覆盖绝大多数个人项目和小型应用的需要。
与传统的 GPU 云服务不同,Workers AI 不需要你管理任何基础设施。你既不需要购买 GPU,也不需要配置 CUDA 环境、管理驱动版本或者担心显存溢出。只需要几行代码,就可以调用 Llama、Mistral、DeepSeek 等主流开源模型,以及 Embeddings、图像生成、语音识别等多模态能力。
本文将从一个实际开发者的视角出发,详细讲解 Workers AI 的注册流程、API 使用、最佳实践和进阶技巧,帮助你用零成本快速搭建 AI 驱动的应用。
一、注册与激活 Workers AI
1.1 注册 Cloudflare 账号
首先,访问 Cloudflare 官网 注册一个免费账号。注册过程只需要一个邮箱地址,不需要绑定信用卡。注册完成后,登录 Cloudflare Dashboard。
在左侧导航栏中找到 Workers & Pages 入口,点击进入后可以看到 Workers AI 的菜单选项。进入 Workers AI 页面后,系统会提示你激活 Workers AI 服务。直接点击激活按钮即可,整个过程不需要任何支付信息。
1.2 检查免费额度
激活成功后,你可以在 Workers AI 的仪表盘中看到当前的免费额度使用情况。Cloudflare 目前为免费用户提供的 AI 推理额度如下:
| 资源类型 | 免费额度 | 说明 |
|---|---|---|
| 神经元推理(Neuron) | 10,000 次/天 | 覆盖大多数文本生成模型 |
| AI Gateway 请求 | 500,000 次/月 | API 网关和缓存 |
| Embeddings | 10,000 次/天 | 文本向量化调用 |
| Workers 执行 | 100,000 次/天 | Worker 请求配额 |
值得注意的是,”神经元”是 Cloudflare 独创的计费单位。不同的模型每次调用消耗的神经元数量不同——轻量级模型可能只消耗 1 个神经元,而大型模型可能消耗 20 个甚至更多。Cloudflare 会在模型详情页明确标注每次调用的神经元消耗量。
1.3 获取 API 令牌
要通过 API 调用 Workers AI,需要先生成 API 令牌:
- 在 Cloudflare Dashboard 中,点击右上角的用户头像,进入 My Profile
- 选择 API Tokens 选项卡
- 点击 Create Token
- 选择 Create Custom Token
- 设置权限为 Workers AI:Run
- 指定允许调用 AI 模型的账户资源
- 点击创建并保存生成的 Token
安全提示:API Token 相当于你的账户密码,请妥善保管。建议将 Token 存储在环境变量中,而非硬编码在代码中。
1
2
3 # 设置环境变量(建议写入 ~/.bashrc 或 ~/.zshrc 中永久生效)
export CLOUDFLARE_API_TOKEN="你的_API_Token"
export CLOUDFLARE_ACCOUNT_ID="你的_Account_ID"
Account ID 可以在 Workers & Pages 页面的右侧边栏中找到,它是一个 32 位的十六进制字符串。
二、通过 REST API 调用 AI 模型
Workers AI 提供了标准的 REST API 接口,你可以用任何编程语言来调用。这也是最灵活、最通用的使用方式。
2.1 文本生成:调用 Llama 3.1
以下是一个使用 curl 调用 Llama 3.1 8B 模型的示例:
1
2
3
4
5
6
7
8
9
10
11
12 curl -X POST \
"https://api.cloudflare.com/client/v4/accounts/$CLOUDFLARE_ACCOUNT_ID/ai/run/@cf/meta/llama-3.1-8b-instruct" \
-H "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"messages": [
{"role": "system", "content": "你是一个技术写作助手,擅长用中文回答技术问题。"},
{"role": "user", "content": "请解释什么是边缘计算,以及它和云计算的区别。"}
],
"max_tokens": 1024,
"temperature": 0.7
}'
返回的 JSON 结果如下:
1
2
3
4
5
6
7
8
9
10
11
12
13 {
"result": {
"response": "边缘计算是一种分布式计算范式...",
"usage": {
"prompt_tokens": 42,
"total_tokens": 256,
"completion_tokens": 214
}
},
"success": true,
"errors": [],
"messages": []
}
2.2 Python SDK 调用示例
如果你更喜欢用 Python,Cloudflare 官方提供了 Python SDK。当然,直接用 requests 库也完全可以:
2.3 图像生成
Workers AI 还支持图像生成模型,例如 Stable Diffusion:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35 import requests
import json
ACCOUNT_ID = "your_account_id"
API_TOKEN = "your_api_token"
def generate_image(prompt: str) -> bytes:
"""调用 Stable Diffusion 生成图像"""
url = f"https://api.cloudflare.com/client/v4/accounts/{ACCOUNT_ID}/ai/run/@cf/stabilityai/stable-diffusion-xl-base-1.0"
headers = {
"Authorization": f"Bearer {API_TOKEN}",
"Content-Type": "application/json"
}
payload = {
"prompt": prompt,
"negative_prompt": "blurry, low quality, distorted",
"num_steps": 20,
"guidance": 7.5
}
response = requests.post(url, headers=headers, json=payload)
if response.status_code == 200:
# 返回的是二进制图像数据
return response.content
else:
raise Exception(f"API 调用失败: {response.text}")
# 使用示例
image_data = generate_image("A cute cat wearing a programmer hat, digital art style")
with open("cat_programmer.png", "wb") as f:
f.write(image_data)
print("图像已保存到 cat_programmer.png")
三、在 Cloudflare Workers 中调用 AI
Workers AI 的真正威力体现在与 Cloudflare Workers 的结合使用上。你可以在边缘函数中直接调用 AI 模型,构建高性能的 AI 应用,而无需管理任何服务器。
3.1 项目初始化
首先安装 Wrangler CLI 工具并初始化项目:
1
2
3
4
5
6
7
8
9
10 # 安装 Wrangler
npm install -g wrangler
# 登录 Cloudflare
wrangler login
# 创建新项目
mkdir ai-translator
cd ai-translator
wrangler init
3.2 配置 wrangler.toml
在项目根目录的
1 | wrangler.toml |
中添加 AI binding 配置:
1
2
3
4
5
6
7 name = "ai-translator"
main = "src/index.js"
compatibility_date = "2024-12-01"
# 添加 AI binding
[ai]
binding = "AI" # 在 Worker 代码中通过 env.AI 访问
3.3 编写 Worker 代码
以下是一个多语言翻译助手的完整示例,它接收用户输入并自动翻译为目标语言:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53 export default {
async fetch(request, env) {
// 只处理 POST 请求
if (request.method !== "POST") {
return new Response("请使用 POST 方法", { status: 405 });
}
try {
const { text, targetLang } = await request.json();
if (!text || !targetLang) {
return new Response(
JSON.stringify({ error: "请提供 text 和 targetLang 参数" }),
{ status: 400, headers: { "Content-Type": "application/json" } }
);
}
// 调用 AI 模型进行翻译
const aiResponse = await env.AI.run(
"@cf/meta/llama-3.1-8b-instruct",
{
messages: [
{
role: "system",
content: `你是一个专业的翻译助手。请将以下文本翻译成 ${targetLang}。只返回翻译结果,不要添加任何解释。`,
},
{
role: "user",
content: text,
},
],
max_tokens: 2048,
}
);
return new Response(
JSON.stringify({
original: text,
translation: aiResponse.response,
targetLang: targetLang,
}),
{
headers: { "Content-Type": "application/json" },
}
);
} catch (error) {
return new Response(
JSON.stringify({ error: error.message }),
{ status: 500, headers: { "Content-Type": "application/json" } }
);
}
},
};
3.4 部署与测试
1
2
3
4
5
6
7 # 部署到 Cloudflare 边缘网络
wrangler deploy
# 测试翻译接口
curl -X POST https://ai-translator.your-subdomain.workers.dev \
-H "Content-Type: application/json" \
-d '{"text": "Edge computing brings computation closer to data sources.", "targetLang": "中文"}'
部署后,你会得到一个
1 | .workers.dev |
域名,全球用户访问时都会被路由到最近的 Cloudflare 节点,延迟极低。
四、可用模型清单与选择建议
Workers AI 目前提供了丰富的模型库,覆盖多个类别。以下是截至 2025 年中的部分精选模型:
4.1 文本生成模型
| 模型 ID | 模型名称 | 参数量 | 每次调用消耗 | 适用场景 |
|---|---|---|---|---|
| @cf/meta/llama-3.1-8b-instruct | Llama 3.1 8B | 8B | ~20 神经元 | 通用对话、翻译、摘要 |
| @cf/meta/llama-3.2-3b-instruct | Llama 3.2 3B | 3B | ~5 神经元 | 轻量级对话、分类 |
| @cf/mistral/mistral-7b-instruct-v0.3 | Mistral 7B v0.3 | 7B | ~15 神经元 | 代码生成、结构化输出 |
| @cf/deepseek-ai/deepseek-r1-distill-qwen-32b | DeepSeek R1 Distill | 32B | ~50 神经元 | 复杂推理、数学问题 |
4.2 其他能力模型
| 类别 | 模型 ID | 主要用途 |
|---|---|---|
| 文本嵌入 | @cf/baai/bge-base-en-v1.5 | 语义搜索、RAG |
| 文本嵌入 | @cf/baai/bge-multilingual-gemma2 | 多语言向量化 |
| 图像生成 | @cf/stabilityai/stable-diffusion-xl-base-1.0 | 文生图 |
| 图像分类 | @cf/microsoft/resnet-50 | 图像识别 |
| 语音识别 | @cf/openai/whisper | 音频转文字 |
4.3 模型选择策略
在实际项目中,选择合适的模型对成本和效果都有很大影响:
- 日常对话/翻译:优先选择 Llama 3.2 3B(仅 5 神经元/次),性价比极高
- 代码生成:Mistral 7B 在代码任务上表现出色,神经元消耗适中
- 复杂推理:DeepSeek R1 Distill 32B 虽然有 50 神经元的消耗,但在数学和逻辑推理上有质的飞跃
- 高并发场景:可以考虑结合 AI Gateway 的缓存功能,对相同输入的请求自动缓存结果
五、AI Gateway:缓存与限流
AI Gateway 是 Workers AI 的一个常被忽视但极为实用的配套功能。它位于你的应用和 AI 模型之间,提供缓存、限流、日志和监控等功能。
启用 AI Gateway 后,对相同输入的重复请求会被自动缓存,不仅节省了神经元配额,还大幅降低了响应时间——缓存的响应通常在 10ms 以内返回。
1
2
3
4
5
6
7
8
9
10
11
12
13
14 import requests
# AI Gateway 的 URL 格式
GATEWAY_URL = "https://gateway.ai.cloudflare.com/v1/{account_id}/{gateway_name}/ai/run/@cf/meta/llama-3.1-8b-instruct"
response = requests.post(
GATEWAY_URL,
headers={"Authorization": f"Bearer {API_TOKEN}"},
json={
"messages": [{"role": "user", "content": "什么是微服务架构?"}],
"max_tokens": 500
}
)
print(response.json())
AI Gateway 的核心功能包括:
- 响应缓存:对完全相同请求自动缓存,TTL 可配置(默认 1 小时)
- 速率限制:可以设置每分钟/小时的请求数上限,避免意外超支
- 请求日志:自动记录所有 API 调用的耗时、Token 用量和状态码
- 自动重试:在遇到 5xx 错误时自动重试,最多可配置 3 次
- 回退策略:支持配置多个模型作为备份,主模型失败时自动切换到备用模型
对于生产环境,强烈建议始终通过 AI Gateway 调用模型。这不仅提供了缓存和限流,更重要的是让你对 API 使用情况有完整的可见性。
六、实际项目:构建 RAG 问答系统
为了展示 Workers AI 在实际项目中的应用,下面我们来构建一个基于 RAG(检索增强生成)的智能问答系统。系统会先从文档库中检索相关内容,然后交给 LLM 生成回答。
6.1 系统架构
这个 RAG 系统包含三个核心组件:
- 嵌入模型:将用户查询和文档片段转换为向量
- 向量数据库:存储文档向量并执行相似度搜索(这里用 Cloudflare D1 配合内存排序)
- 生成模型:根据检索到的上下文生成最终回答
6.2 实现代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54 // src/index.js — RAG 问答系统
export default {
async fetch(request, env) {
const { query } = await request.json();
// 1. 将用户查询转换为向量
const embeddingResponse = await env.AI.run(
"@cf/baai/bge-base-en-v1.5",
{ text: [query] }
);
const queryVector = embeddingResponse.data[0];
// 2. 从向量数据库检索相关文档(简化版)
const relevantDocs = await retrieveDocuments(queryVector, env);
// 3. 构建包含上下文的提示
const context = relevantDocs.join("\n---\n");
const prompt = `基于以下上下文回答用户问题。如果上下文中没有相关信息,请如实告知。
上下文:
${context}
用户问题:${query}
请用中文回答。`;
// 4. 调用 LLM 生成回答
const answer = await env.AI.run(
"@cf/meta/llama-3.1-8b-instruct",
{
messages: [{ role: "user", content: prompt }],
max_tokens: 1024,
temperature: 0.3,
}
);
return new Response(JSON.stringify({
answer: answer.response,
sources: relevantDocs.length,
}), {
headers: { "Content-Type": "application/json" },
});
},
};
async function retrieveDocuments(queryVector, env) {
// 实际项目中这里应该使用 Vectorize 或 D1 存储的向量数据
// 简化示例:返回静态文档
return [
"Cloudflare Workers AI provides free AI inference capabilities...",
"The Workers AI platform supports multiple models including Llama...",
// ...
];
}
七、成本控制与最佳实践
7.1 控制神经元消耗
虽然免费额度每天有 10,000 神经元,但如果使用不当,很容易在短时间内耗尽。以下是一些控制消耗的实用建议:
- 合理设置 max_tokens:不要无限制地设置过大的 max_tokens。对于简单的问答任务,256-512 个 Token 通常就足够了。每多生成一个 Token 都会增加神经元消耗。
- 优先选择小模型:能用 3B 模型解决的问题就不要用 8B 模型。Llama 3.2 3B 的消耗仅为 Llama 3.1 8B 的四分之一。
- 充分利用缓存:通过 AI Gateway 启用缓存后,对相同输入的重复请求不会消耗神经元。对于知识库问答等场景,建议将缓存 TTL 设置为 24 小时。
- 监控用量:在 Cloudflare Dashboard 中设置每日用量告警,当神经元的当日消耗达到 80% 时主动通知。
7.2 提高响应速度
- 利用边缘网络:将 AI 调用逻辑封装在 Worker 中而非客户端的 HTTP 直连,可以利用 Cloudflare 的边缘网络加速。
- 流式响应:对于长文本生成任务,使用 SSE (Server-Sent Events) 实现流式输出,用户可以在生成完成前就开始阅读。
- 预加载模型:对于高频调用的模型,可以通过 AI Gateway 的预热功能提前加载到节点缓存中。
7.3 生产环境注意事项
- 错误处理:为所有 AI 调用添加 try-catch 和重试逻辑,因为边缘节点可能出现临时故障
- 超时管理:AI 推理调用可能耗时较长(大型模型可能需要 10-30 秒),请设置合理的超时时间
- 并发限制:免费账户对同一模型的并发调用有限制,生产环境建议预留备用模型
- 数据隐私:注意 Cloudflare 的 AI 模型可能在推理过程中处理你的数据,敏感信息请谨慎处理
八、常见问题与限制
8.1 免费额度的限制
Workers AI 的免费额度虽然慷慨,但仍有一些需要注意的限制:
- 调用大型模型(如 DeepSeek R1 32B)时,单次调用可能消耗 50 神经元,10,000 的日配额仅能支持约 200 次调用
- 免费账户的并发调用数有限制,高并发场景下可能出现请求排队
- 模型列表会定期更新,某些旧版本模型可能被下架
- 免费账户的响应优先级低于付费账户,在高峰期可能出现稍长的响应时间
8.2 常见错误排查
| 错误代码 | 可能原因 | 解决方案 |
|---|---|---|
| 10003 | API Token 无效或过期 | 重新生成 API Token |
| 10016 | 账户未激活 Workers AI | 进入 Workers AI 页面激活服务 |
| 20001 | 模型名称错误 | 检查模型 ID 是否拼写正确 |
| 20006 | 当日神经元配额已耗尽 | 等待次日配额刷新,或考虑升级付费计划 |
| 20009 | 请求参数格式错误 | 检查请求体是否符合模型要求的格式 |
| 30001 | 模型服务器临时故障 | 等待几秒后重试 |
九、总结与下一步
Cloudflare Workers AI 为开发者提供了一个门槛极低的 AI 推理入口。每天 10,000 神经元的免费额度意味着你可以零成本体验大多数主流开源模型,并用它们构建出真正可用的产品原型。它特别适合以下几种场景:
- 个人项目原型验证:在投入真金白银购买 GPU 之前,先用 Workers AI 验证技术可行性
- 低流量生产应用:对于日活用户不多的小型工具类应用,免费额度完全可以支撑
- AI 教学与学习:学生和开发者可以用它来学习和实验各类 AI 模型的特性
- 多模型对比评估:在同一个平台上快速对比 Llama、Mistral、DeepSeek 等模型的输出质量
如果你的项目需求超出了免费额度,Cloudflare 也提供了灵活的付费方案,按实际用量计费,无需签订长期合同。相比自建 GPU 服务器或租用专用 GPU 实例,Workers AI 在成本和运维复杂度上都有显著优势。
下一步,建议你动手尝试以下实践:
- 部署一个基于 Workers AI 的翻译 API 服务
- 结合 AI Gateway 构建带缓存的智能客服机器人
- 尝试在同一个 Worker 中串联多个模型(如先用 Whisper 做语音识别,再用 Llama 做语义理解)
- 探索 Cloudflare Vectorize + Workers AI 构建完整的 RAG 应用
AI 推理的免费时代已经到来。借助 Cloudflare Workers AI,你可以在不花一分钱的情况下,将 AI 能力集成到你的下一个项目中。现在就注册 Cloudflare 账号,开始你的 AI 应用开发之旅吧。
封面图片:
汤不热吧