• 欢迎访问少将全栈,学会感恩,乐于付出,珍惜缘份,成就彼此、推荐使用最新版火狐浏览器和Chrome浏览器访问本网站。
  • 吐槽,投稿,删稿,交个朋友
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏少将全栈吧

5分钟搭建AI API代理:Cloudflare Workers + AI Gateway 完整模板

可复用技术资产 admin 2小时前 8次浏览 已收录 扫描二维码

写这篇东西是因为最近在几个开发者群里看到同一个问题反复出现:调用OpenAI API经常超时,特别是用国内服务器部署的时候。有人买了各种代理服务,有人自建了Nginx反向代理,但其实Cloudflare Workers就能解决,而且几乎零成本。

## 为什么需要AI API代理

先说说痛点。假设你用某个云厂商的国内服务器跑AI应用,直接请求 `api.openai.com`,延迟高不说,还经常连接不稳定。这个问题不是简单的”换个服务器”能解决的——就算你用海外服务器,很多小厂的网络路由也不够优化。

Cloudflare Workers 在这件事上有天然优势:
– 全球 330+ 城市节点,自带 CDN 加速
– Free 计划每天 10 万次请求,对个人项目绰绰有余
– Workers 本身是个边缘计算平台,不只是做反向代理

根据 Cloudflare 官方定价文档(2026年7月更新),Paid 计划最低 $5/月,包含远超个人项目所需的配额。但 Free 计划每天 10 万次请求对多数独立开发者来说已经够用了。

## 完整代码模板

这个模板做了三件事:
1. 转发 API 请求到 OpenAI/Anthropic/任意 AI 服务
2. 支持自定义域名和路径
3. 集成 AI Gateway 做缓存和监控

“`javascript
// wrangler.toml
name = “ai-api-proxy”
main = “src/index.js”
compatibility_date = “2026-07-01”

[env.production]
vars = { AI_GATEWAY_ENABLED = “true” }
“`

“`javascript
// src/index.js
const API_TARGETS = {
openai: {
base: ‘https://api.openai.com’,
routes: [‘/v1/chat/completions’, ‘/v1/embeddings’, ‘/v1/models’]
},
anthropic: {
base: ‘https://api.anthropic.com’,
routes: [‘/v1/messages’]
}
}

export default {
async fetch(request, env) {
const url = new URL(request.url)
const path = url.pathname

// 自动路由到对应的 API 提供商
for (const [name, config] of Object.entries(API_TARGETS)) {
if (config.routes.some(route => path.startsWith(route))) {
const targetUrl = config.base + path + url.search

const headers = new Headers(request.headers)
// 移除 Cloudflare 特有的 header
headers.delete(‘cf-connecting-ip’)
headers.delete(‘x-forwarded-for’)

let response = await fetch(targetUrl, {
method: request.method,
headers: headers,
body: request.body
})

// 可选:集成 AI Gateway
if (env.AI_GATEWAY_ENABLED === ‘true’) {
response = new Response(response.body, response)
response.headers.set(‘x-ai-proxy’, name)
response.headers.set(‘x-cache-status’, response.headers.get(‘cf-cache-status’) || ‘MISS’)
}

return response
}
}

return new Response(‘Not Found – 支持的路径: /v1/chat/completions, /v1/embeddings, /v1/messages’, { status: 404 })
}
}
“`

部署命令只有一行:
“`bash
npm create cloudflare@latest ai-api-proxy
cd ai-api-proxy
# 把上面的 index.js 替换进去
npx wrangler deploy
“`

## 接入 AI Gateway

Cloudflare AI Gateway 可以给你的代理加上缓存、限流和监控。配置方式:

在 Cloudflare Dashboard 创建一个 AI Gateway,拿到 gateway_id,然后在 Workers 环境变量里配一下:

“`bash
npx wrangler secret put AI_GATEWAY_ID
npx wrangler secret put AI_GATEWAY_TOKEN
“`

然后在代码里加一行转发逻辑:

“`javascript
const gatewayUrl = `https://gateway.ai.cloudflare.com/v1/${AI_GATEWAY_ID}/${AI_GATEWAY_TOKEN}/openai`
// 把 API 请求转发到 gateway 地址即可
“`

根据 Cloudflare 官方文档,AI Gateway 支持 OpenAI、Anthropic、Google 等多个模型提供商,一行代码即可接入。缓存功能可以复用相似的请求结果,对重复查询场景能显著降低成本。

## 使用方式

部署完成后,把客户端的 base_url 改成你的 Worker 地址:

“`python
# OpenAI Python SDK 接入示例
from openai import OpenAI

client = OpenAI(
api_key=”你的 OpenAI Key”,
base_url=”https://你的worker域名.workers.dev”
)

# 直接用,跟官方 SDK 完全兼容
response = client.chat.completions.create(
model=”gpt-4o”,
messages=[{“role”: “user”, “content”: “Hello”}]
)
“`

支持所有 OpenAI SDK 兼容的客户端,包括 Node.js、Python、curl 等。

## 几个实际用的建议

**关于自定义域名**。默认的 `*.workers.dev` 域名在某些网络环境可能被限速,建议绑个自己的域名。在 Workers 后台的 Triggers 标签页配一下就行,前提是你的域名 DNS 在 Cloudflare 托管。

**关于成本**。Free 计划每天 10 万请求、1000 次 KV 操作。个人项目一个月几万请求很正常,完全在免费额度内。超过的话升级到 Paid 计划 $5/月,包含 1000 万次请求。

**关于安全**。不建议在 Worker 里硬编码 API Key。用 `wrangler secret` 把密钥存成环境变量,或者配合 Cloudflare Access 做身份认证。

## 踩坑记录

几个我遇到过的问题:

1. **CORS 错误**:如果是从前端调用,记得加 CORS header。上面代码里没加,需要的话自己补上 `Access-Control-Allow-Origin: *`。
2. **请求体大小限制**:Free 计划请求体最大 100MB,传大文件(比如图片分析)要注意。
3. **CPU 时间限制**:Free 计划每次调用 10ms CPU 时间,纯转发足够,但如果要做复杂处理可能超时。

## 可以怎么扩展

这个模板是最小可用的版本,你可以按需加功能:
– 多 API Key 轮转(多个 key 自动切换,避免限速)
– 请求日志(写到 Workers KV 或 R2)
– 用量统计(配合 AI Gateway 的 analytics 功能)
– 模型路由(根据请求内容自动选择 GPT-4o 还是 Claude)

整套代码都在上面了,复制粘贴就能用。不需要自己搭服务器,不需要买代理,一个 Worker 搞定。

*参考:Cloudflare Workers Pricing(2026年7月更新)、Cloudflare AI Gateway 官方文档*

喜欢 (0)
[🍬谢谢你请我吃糖果🍬🍬~]
分享 (0)
关于作者:
少将,关注Web全栈开发、项目管理,持续不断的学习、努力成为一个更棒的开发,做最好的自己,让世界因你不同。