一个基于 Cloudflare Workers 的简单代理服务,用于将请求转发到 Google AI Studio API (generativelanguage.googleapis.com)。
- ✅ 完整的路径和查询参数映射
- ✅ OpenAI 兼容路径转换:自动将
/v1/chat/completions转换为/v1beta/openai/chat/completions - ✅ 支持所有 HTTP 方法(GET, POST, PUT, DELETE 等)
- ✅ 自动处理 CORS 跨域请求
- ✅ 错误处理和日志记录
- ✅ 移除 Cloudflare 特定的请求头
- ✅ 可扩展的路径映射规则
npm installnpm startnpm run deploy部署后,你可以通过代理域名访问 Google AI Studio API:
代理服务支持 OpenAI 兼容的路径自动转换:
OpenAI 兼容路径:
https://your-worker-domain.workers.dev/v1/chat/completions
自动转换为:
https://generativelanguage.googleapis.com/v1beta/openai/chat/completions
https://generativelanguage.googleapis.com/v1/models/gemini-pro:generateContent?key=YOUR_API_KEY
https://your-worker-domain.workers.dev/v1/models/gemini-pro:generateContent?key=YOUR_API_KEY
// 使用 OpenAI 兼容的路径,会自动转换
const response = await fetch(
"https://your-worker-domain.workers.dev/v1/chat/completions",
{
method: "POST",
headers: {
"Content-Type": "application/json",
Authorization: "Bearer YOUR_API_KEY",
},
body: JSON.stringify({
model: "gpt-3.5-turbo",
messages: [{ role: "user", content: "Hello, how are you?" }],
}),
}
);
const data = await response.json();
console.log(data);// 使用代理访问 Gemini API
const response = await fetch(
"https://your-worker-domain.workers.dev/v1/models/gemini-pro:generateContent?key=YOUR_API_KEY",
{
method: "POST",
headers: {
"Content-Type": "application/json",
},
body: JSON.stringify({
contents: [
{
parts: [{ text: "Hello, how are you?" }],
},
],
}),
}
);
const data = await response.json();
console.log(data);在 wrangler.toml 中配置你的自定义域名:
name = "aistudio"
main = "src/index.ts"
compatibility_date = "2025-07-01"
routes = ["your-domain.com/*"]你可以在 wrangler.toml 中添加环境变量:
[env.production.vars]
API_KEY = "your-api-key"然后在代码中使用:
export interface Env {
API_KEY: string;
}运行测试:
npm test- API 密钥安全:请确保妥善保管你的 Google AI Studio API 密钥
- 速率限制:代理会保持 Google API 的原始速率限制
- CORS:代理已配置为允许所有来源的跨域请求
- 日志:错误信息会记录在 Cloudflare Workers 日志中
MIT License