name: cloudflare-workers-ai description: Cloudflare Workers AI 用于服务器端GPU推理。用于LLMs、文本/图像生成、嵌入,或遇到AI_ERROR、速率限制、令牌超过错误时。
关键词:workers ai, cloudflare ai, ai绑定, llm workers, @cf/meta/llama, workers ai模型, ai推理, cloudflare llm, ai流式传输, 文本生成ai, ai嵌入, 图像生成ai, workers ai rag, ai网关, llama workers, flux图像生成, stable diffusion workers, 视觉模型ai, ai聊天完成, AI_ERROR, 速率限制ai, 模型未找到, 令牌限制超过, 神经元超过, ai配额超过, 流式失败, 模型不可用, workers ai hono, ai网关workers, vercel ai sdk workers, openai兼容workers, workers ai vectorize license: MIT
Cloudflare Workers AI - 完整参考
生产就绪的知识领域,用于使用Cloudflare Workers AI构建AI驱动的应用。
状态: 生产就绪 ✅ 最后更新: 2025-11-21 依赖: cloudflare-worker-base(用于Worker设置) 最新版本: wrangler@4.43.0, @cloudflare/workers-types@4.20251014.0
目录
快速开始(5分钟)
1. 添加AI绑定
wrangler.jsonc:
{
"ai": {
"binding": "AI"
}
}
2. 运行你的第一个模型
export interface Env {
AI: Ai;
}
export default {
async fetch(request: Request, env: Env): Promise<Response> {
const response = await env.AI.run('@cf/meta/llama-3.1-8b-instruct', {
prompt: '什么是Cloudflare?',
});
return Response.json(response);
},
};
3. 添加流式传输(推荐)
const stream = await env.AI.run('@cf/meta/llama-3.1-8b-instruct', {
messages: [{ role: 'user', content: '告诉我一个故事' }],
stream: true, // 总是使用流式传输进行文本生成!
});
return new Response(stream, {
headers: { 'content-type': 'text/event-stream' },
});
为什么流式传输?
- 防止在内存中缓冲大响应
- 更快的首次令牌时间
- 长内容更好的用户体验
- 避免Worker超时问题
Workers AI API参考
核心API:env.AI.run()
const response = await env.AI.run(model, inputs, options?);
| 参数 | 类型 | 描述 |
|---|---|---|
model |
string | 模型ID(例如,@cf/meta/llama-3.1-8b-instruct) |
inputs |
object | 模型特定输入(见下面模型类型) |
options.gateway.id |
string | AI网关ID用于缓存/日志 |
options.gateway.skipCache |
boolean | 跳过AI网关缓存 |
返回: Promise<ModelOutput>(非流式)或 ReadableStream(流式)
按模型类别的输入类型
| 类别 | 关键输入 | 输出 |
|---|---|---|
| 文本生成 | messages[], stream, max_tokens, temperature |
{ response: string } |
| 嵌入 | text: string | string[] |
{ data: number[][], shape: number[] } |
| 图像生成 | prompt, num_steps, guidance |
二进制PNG |
| 视觉 | messages[].content[].image_url |
{ response: string } |
📄 完整模型细节: 加载 references/models-catalog.md 获取完整模型列表、参数和速率限制。
模型选择指南
文本生成(LLMs)
| 模型 | 最适合 | 速率限制 | 大小 |
|---|---|---|---|
@cf/meta/llama-3.1-8b-instruct |
通用目的,快速 | 300/分钟 | 8B |
@cf/meta/llama-3.2-1b-instruct |
超快速,简单任务 | 300/分钟 | 1B |
@cf/qwen/qwen1.5-14b-chat-awq |
高质量,复杂推理 | 150/分钟 | 14B |
@cf/deepseek-ai/deepseek-r1-distill-qwen-32b |
编码,技术内容 | 300/分钟 | 32B |
@hf/thebloke/mistral-7b-instruct-v0.1-awq |
快速,高效 | 400/分钟 | 7B |
文本嵌入
| 模型 | 维度 | 最适合 | 速率限制 |
|---|---|---|---|
@cf/baai/bge-base-en-v1.5 |
768 | 通用RAG | 3000/分钟 |
@cf/baai/bge-large-en-v1.5 |
1024 | 高精度搜索 | 1500/分钟 |
@cf/baai/bge-small-en-v1.5 |
384 | 快速,低存储 | 3000/分钟 |
图像生成
| 模型 | 最适合 | 速率限制 | 速度 |
|---|---|---|---|
@cf/black-forest-labs/flux-1-schnell |
高质量,照片写实 | 720/分钟 | 快速 |
@cf/stabilityai/stable-diffusion-xl-base-1.0 |
通用目的 | 720/分钟 | 中等 |
@cf/lykon/dreamshaper-8-lcm |
艺术,风格化 | 720/分钟 | 快速 |
视觉模型
| 模型 | 最适合 | 速率限制 |
|---|---|---|
@cf/meta/llama-3.2-11b-vision-instruct |
图像理解 | 720/分钟 |
@cf/unum/uform-gen2-qwen-500m |
快速图像字幕 | 720/分钟 |
常见模式
模式1:聊天与流式传输
app.post('/chat', async (c) => {
const { messages } = await c.req.json<{ messages: Array<{ role: string; content: string }> }>();
const stream = await c.env.AI.run('@cf/meta/llama-3.1-8b-instruct', { messages, stream: true });
return new Response(stream, { headers: { 'content-type': 'text/event-stream' } });
});
模式2:RAG(检索增强生成)
// 1. 生成查询的嵌入
const embeddings = await env.AI.run('@cf/baai/bge-base-en-v1.5', { text: [userQuery] });
// 2. 搜索Vectorize
const matches = await env.VECTORIZE.query(embeddings.data[0], { topK: 3 });
// 3. 构建上下文
const context = matches.matches.map((m) => m.metadata.text).join('
');
// 4. 用上下文生成
const stream = await env.AI.run('@cf/meta/llama-3.1-8b-instruct', {
messages: [
{ role: 'system', content: `用这个上下文回答:
${context}` },
{ role: 'user', content: userQuery },
],
stream: true,
});
return new Response(stream, { headers: { 'content-type': 'text/event-stream' } });
📄 更多模式: 加载 references/best-practices.md 获取结构化输出、图像生成、多模型共识和生产模式。
AI网关集成
启用缓存、日志和成本跟踪与AI网关:
const response = await env.AI.run('@cf/meta/llama-3.1-8b-instruct', { prompt: 'Hello' }, {
gateway: { id: 'my-gateway', skipCache: false },
});
好处: 成本跟踪、响应缓存(重复查询节省50-90%)、请求日志、速率限制、分析。
速率限制和定价
信息最后验证: 2025-01-14
速率限制和定价因模型而异。总是检查官方文档获取最新信息:
- 速率限制: https://developers.cloudflare.com/workers-ai/platform/limits/
- 定价: https://developers.cloudflare.com/workers-ai/platform/pricing/
免费层: 10,000神经元/天 付费层: $0.011 每1,000神经元
📄 每模型细节: 见 references/models-catalog.md 获取每个模型的具体速率限制和定价。
生产检查清单
部署前必需:
- [ ] 启用AI网关进行成本跟踪
- [ ] 为文本生成实现流式传输
- [ ] 添加速率限制重试与指数退避
- [ ] 验证输入长度(防止令牌限制错误)
- [ ] 添加输入清理(防止提示注入)
📄 完整检查清单: 加载 references/best-practices.md 获取完整生产检查清单、错误处理模式、监控和成本优化。
外部SDK集成
Workers AI支持OpenAI SDK兼容性和Vercel AI SDK:
// OpenAI SDK - 使用相同模式与Workers AI模型
const openai = new OpenAI({
apiKey: env.CLOUDFLARE_API_KEY,
baseURL: `https://api.cloudflare.com/client/v4/accounts/${env.CLOUDFLARE_ACCOUNT_ID}/ai/v1`,
});
// Vercel AI SDK - 原生集成
import { createWorkersAI } from 'workers-ai-provider';
const workersai = createWorkersAI({ binding: env.AI });
📄 完整集成指南: 加载 references/integrations.md 获取OpenAI SDK、Vercel AI SDK和REST API示例。
限制摘要
| 功能 | 限制 |
|---|---|
| 并发请求 | 无硬限制(应用速率限制) |
| 最大输入令牌 | 因模型而异(通常2K-128K) |
| 最大输出令牌 | 因模型而异(通常512-2048) |
| 流式块大小 | ~1 KB |
| 图像大小(输出) | ~5 MB |
| 请求超时 | Workers超时适用(默认30秒,最大5分钟CPU) |
| 每日免费神经元 | 10,000 |
| 速率限制 | 见“速率限制和定价”部分 |
何时加载参考
| 参考文件 | 加载当… |
|---|---|
references/models-catalog.md |
选择模型时,检查速率限制,比较模型能力 |
references/best-practices.md |
生产部署时,错误处理,成本优化,安全 |
references/integrations.md |
使用OpenAI SDK、Vercel AI SDK或REST API代替原生绑定 |