[ PROMPT_NODE_24446 ]
Workers AI 常见陷阱
[ SKILL_DOCUMENTATION ]
# Workers AI 注意事项
## 关键:@cloudflare/ai 已弃用
typescript
// ❌ 错误 - 不要安装 @cloudflare/ai
import Ai from '@cloudflare/ai';
// ✅ 正确 - 使用原生绑定
export default {
async fetch(request: Request, env: Env) {
await env.AI.run('@cf/meta/llama-3.1-8b-instruct', { messages: [...] });
}
}
## 开发
### “AI 推理在本地不工作”
bash
# ❌ 本地 AI 不工作
wrangler dev
# ✅ 使用远程模式
wrangler dev --remote
### “env.AI 未定义”
在 wrangler.jsonc 中添加绑定:
c
{ "ai": { "binding": "AI" } }
## API 响应
### 嵌入响应格式各异
typescript
// @cf/baai/bge-base-en-v1.5 返回: { data: [[0.1, 0.2, ...]] }
const embedding = response.data[0]; // 获取第一个元素
### 流式传输返回 ReadableStream
typescript
const stream = await env.AI.run(model, { messages: [...], stream: true });
for await (const chunk of stream) { console.log(chunk.response); }
## 速率限制与定价
| 模型类型 | 神经元/请求 |
|------------|-----------------|
| 小型文本 (7B) | ~50-200 |
| 大型文本 (70B) | ~500-2000 |
| 嵌入 (Embeddings) | ~5-20 |
| 图像生成 | ~10,000+ |
**免费层级**: 10,000 神经元/天
typescript
// ❌ 昂贵 - 70B 模型
await env.AI.run('@cf/meta/llama-3.1-70b-instruct', ...);
// ✅ 更经济 - 使用能满足需求的最轻量模型
await env.AI.run('@cf/meta/llama-3.1-8b-instruct', ...);
## 模型特定说明
### 函数调用
仅 `@cf/meta/llama-3.1-*` 和 `mistral-7b-instruct-v0.2` 支持工具。
### 空响应
检查上下文限制 (2K-8K 提示词)。验证输入结构。
### 响应不一致
设置 `temperature: 0` 以获得确定性输出。
### 冷启动延迟
首次请求:1-3秒。频繁使用的提示词请使用 AI Gateway 缓存。
## TypeScript
typescript
interface Env {
AI: Ai; // 来自 @cloudflare/workers-types
}
interface TextGenerationResponse { response: string; }
interface EmbeddingResponse { data: number[][]; shape: number[]; }
## 常见错误
### 7502: 找不到模型
在 developers.cloudflare.com/workers-ai/models/ 检查确切的模型名称
### 7504: 输入验证失败
typescript
// 文本生成需要消息数组
await env.AI.run('@cf/meta/llama-3.1-8b-instruct', {
messages: [{ role: 'user', content: 'Hello' }] // ✅
});
// 嵌入需要文本
await env.AI.run('@cf/baai/bge-base-en-v1.5', { text: 'Hello' }); // ✅
## Vercel AI SDK 集成
typescript
import { openai } from '@ai-sdk/openai';
c