[ PROMPT_NODE_24444 ]
Workers AI 配置说明
[ SKILL_DOCUMENTATION ]
# Workers AI 配置
## wrangler.jsonc
c
{
"name": "my-ai-worker",
"main": "src/index.ts",
"compatibility_date": "2024-01-01",
"ai": {
"binding": "AI"
}
}
## TypeScript
bash
npm install --save-dev @cloudflare/workers-types
typescript
interface Env {
AI: Ai;
}
export default {
async fetch(request: Request, env: Env) {
const response = await env.AI.run('@cf/meta/llama-3.1-8b-instruct', {
messages: [{ role: 'user', content: 'Hello' }]
});
return Response.json(response);
}
};
## 本地开发
bash
wrangler dev --remote # AI 必需 - 不支持本地推理
## REST API
typescript
const response = await fetch(
`https://api.cloudflare.com/client/v4/accounts/${ACCOUNT_ID}/ai/run/@cf/meta/llama-3.1-8b-instruct`,
{
method: 'POST',
headers: { 'Authorization': `Bearer ${API_TOKEN}` },
body: JSON.stringify({ messages: [{ role: 'user', content: 'Hello' }] })
}
);
在 dash.cloudflare.com/profile/api-tokens 创建 API 令牌 (Workers AI - 读取权限)
## SDK 兼容性
**OpenAI SDK:**
typescript
import OpenAI from 'openai';
const client = new OpenAI({
apiKey: env.CLOUDFLARE_API_TOKEN,
baseURL: `https://api.cloudflare.com/client/v4/accounts/${env.ACCOUNT_ID}/ai/v1`
});
## 多模型设置
typescript
const MODELS = {
chat: '@cf/meta/llama-3.1-8b-instruct',
embed: '@cf/baai/bge-base-en-v1.5',
image: '@cf/stabilityai/stable-diffusion-xl-base-1.0'
};
## RAG 设置 (配合 Vectorize)
c
{
"ai": { "binding": "AI" },
"vectorize": {
"bindings": [{ "binding": "VECTORIZE", "index_name": "embeddings-index" }]
}
}
## 故障排除
| 错误 | 修复 |
|-------|-----|
| `env.AI is undefined` | 检查 wrangler.jsonc 中的 `ai` 绑定 |
| 本地 AI 不工作 | 使用 `wrangler dev --remote` |
| 找不到类型 'Ai' | 安装 `@cloudflare/workers-types` |
| @cloudflare/ai 包错误 | 不要安装 - 使用原生绑定 |