Cloudflare AI Gateway 教程
1. Cloudflare AI Gateway 教程
1.1. 简介
Cloudflare AI Gateway 是专为 AI 应用设计的智能流量管理平台,提供一站式解决方案优化 AI 服务性能、成本与安全性。
通过将应用流量路由至 AI Gateway,开发者可获得:
- 全局智能缓存:减少重复请求的模型调用成本
- 多模型冗余:支持主流 AI 提供商(如 OpenAI、HuggingFace)的故障自动切换
- 精细化监控:实时追踪 Token 消耗、延迟、错误率等核心指标
- 企业级安全:内置速率限制、请求过滤等防护机制
1.1.1. 适用场景
- 需要降低 AI API 调用成本的 SaaS 应用
- 要求高可用性的生产级 AI 服务
- 需要统一管理多模型提供商的环境
1.2. 关键特性详解
1.2.1. 智能分析仪表盘
- 核心指标:
- P50/P95/P99 延迟
- 按模型分组的 Token 消耗
- 成本预测(基于提供商定价模型)
- 自定义报表:支持按时间范围、地理区域、终端用户等维度筛选
1.2.2. 实时日志系统
-
结构化日志字段:
{ "model": "gpt-4", "user_id": "client_123", "input_tokens": 256, "output_tokens": 512, "cache_status": "HIT" } -
支持 Logpush 至 Snowflake/BigQuery 等数据仓库
1.2.3. 自适应缓存
- 缓存策略:
- 语义缓存:基于请求内容哈希的缓存键
- TTL 可调(默认 30 分钟)
- 支持强制刷新缓存参数
?cache_refresh=true
1.2.4. 流量整形
- 速率限制:支持基于 API 密钥/IP/用户 ID 的多维度限流
- 优先级队列:为付费用户分配更高 QoS 等级
1.3. 快速入门指南
1.3.1. 步骤 1:创建 AI Gateway
-
进入 AI Gateway → Create Gateway
-
配置参数:
name: my-ai-gateway allowed_providers: [openai, workersai] rate_limit: 1000req/min default_cache_ttl: 3600
1.3.2. 步骤 2:集成 SDK
1.3.3. Node.js 示例
npm install @cloudflare/ai-gateway-sdk
import { AIGateway } from '@cloudflare/ai-gateway-sdk';
const gateway = new AIGateway({
apiKey: process.env.CF_AI_KEY,
endpoint: "https://gateway.ai.cloudflare.com/v1/ACCOUNT_TAG/gateway"
});
// 转发OpenAI请求
const response = await gateway.forward({
provider: 'openai',
path: '/v1/chat/completions',
headers: {'Authorization': `Bearer ${process.env.OPENAI_KEY}`},
body: JSON.stringify({
model: "gpt-4",
messages: [{role: "user", content: "Hello"}]
})
});
1.3.4. 步骤 3:验证连接
使用诊断工具检查配置:
curl -X POST https://gateway.ai.cloudflare.com/v1/ACCOUNT_TAG/my-ai-gateway \
-H "Authorization: Bearer $API_KEY" \
-d '{"prompt":"test"}' \
-v
预期响应包含 CF-Cache-Status 头表示缓存状态:
CF-Cache-Status: HIT
1.4. 高级配置
1.4.1. 故障转移策略
在网关配置中设置备用模型:
{
"retry_policy": {
"max_attempts": 3,
"fallback_order": [
"openai/gpt-4",
"azure/gpt-4",
"workersai/llama2"
]
}
}
1.4.2. 敏感数据过滤
启用 Prompt 审查:
gateway.addMiddleware(async (req) => {
if (req.body.prompt.includes("SSN")) {
return { status: 400, body: "Invalid content" };
}
return req;
});
1.5. 最佳实践
1.5.1. 安全建议
-
密钥管理:
- 使用 Workers Secret 存储 API 密钥
- 定期轮换密钥(通过
gateway.rotateKey()API)
-
访问控制:
# 限制仅允许特定CIDR访问 cf firewall-rules create block ai-gateway 'not ip.src in {192.0.2.0/24}'
1.5.2. 性能优化
-
批量请求:
await gateway.batch([ {prompt: "Q1"}, {prompt: "Q2"} ], {batch_size: 10}); -
预加载缓存:对高频问题执行定时预热请求
1.6. 故障排除
| 错误代码 | 原因 | 解决方案 |
|---|---|---|
| 530 | 上游提供商超时 | 检查模型端点状态https://www.openstatus.dev |
| 529 | 触发速率限制 | 调整限流阈值或升级套餐 |
| 531 | 缓存后端错误 | 执行 gateway.purgeCache() |