为中国大陆用户提供稳定、快速的 Google Gemini API 访问服务,支持原始 Gemini API 和 Vertex AI 两种后端。
GitHub 仓库: https://github.com/Astral719/gemini-api-proxy
- 🌍 全球加速: 基于 Vercel 全球 CDN,为中国用户优化
- 🔒 安全可靠: API 密钥安全存储,HTTPS 加密传输
- 🎯 完全兼容: 与原始 Gemini API 100% 兼容
- ⚡ 高性能: 智能缓存和请求优化
- 🔄 双后端支持: 支持原始 Gemini API 和 Google Cloud Vertex AI
- 📊 监控日志: 可选的请求日志和错误追踪
- 🔧 易于部署: 一键部署到 Vercel
访问 Google AI Studio 获取您的 API 密钥。
- 在 Google Cloud Console 创建项目
- 启用 Vertex AI API
- 创建服务账号并下载 JSON 密钥文件
- 记录项目 ID 和区域(如 us-central1)
# 克隆项目
git clone https://github.com/Astral719/gemini-api-proxy.git
cd gemini-api-proxy
# 安装依赖
npm install
# 配置环境变量
cp .env.example .env.local
# 编辑 .env.local 文件,填入您的 GEMINI_API_KEY
# 本地开发
npm run dev
# 部署到 Vercel
npx vercel --prod在 Vercel 控制台或 .env.local 文件中设置:
GEMINI_API_KEY=your_gemini_api_key_here将您现有代码中的 Gemini API 基础 URL:
https://generativelanguage.googleapis.com/v1beta/
替换为您的代理服务 URL:
https://your-domain.vercel.app/api/v1beta/
// 请求头方式(与原始 API 完全一致)
const response = await fetch('https://your-domain.vercel.app/api/v1beta/models/gemini-2.5-flash:generateContent', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'x-goog-api-key': 'YOUR_API_KEY' // 客户端提供
},
body: JSON.stringify({
contents: [{ parts: [{ text: "Hello, Gemini!" }] }]
})
});
// 查询参数方式
const response2 = await fetch('https://your-domain.vercel.app/api/v1beta/models/gemini-2.5-flash:generateContent?key=YOUR_API_KEY', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({
contents: [{ parts: [{ text: "Hello, Gemini!" }] }]
})
});
// Authorization Bearer 方式
const response3 = await fetch('https://your-domain.vercel.app/api/v1beta/models/gemini-2.5-flash:generateContent', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'Authorization': 'Bearer YOUR_API_KEY'
},
body: JSON.stringify({
contents: [{ parts: [{ text: "Hello, Gemini!" }] }]
})
});// 在服务端设置 GEMINI_API_KEY 环境变量
// 客户端无需提供密钥
const response = await fetch('https://your-domain.vercel.app/api/v1beta/models/gemini-2.5-flash:generateContent', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({
contents: [{ parts: [{ text: "Hello, Gemini!" }] }]
})
});curl "https://your-domain.vercel.app/api/v1beta/models/gemini-2.5-flash:generateContent" \
-H "Content-Type: application/json" \
-H "x-goog-api-key: YOUR_API_KEY" \
-d '{
"contents": [{
"parts": [{"text": "Hello, Gemini!"}]
}]
}'| 变量名 | 必需 | 默认值 | 说明 |
|---|---|---|---|
BACKEND_TYPE |
❌ | gemini |
后端类型:gemini 或 vertex-ai |
REQUEST_TIMEOUT |
❌ | 60000 |
请求超时时间(毫秒) |
ENABLE_REQUEST_LOGGING |
❌ | false |
是否启用请求日志 |
ALLOWED_ORIGINS |
❌ | * |
允许的来源域名(CORS) |
| 变量名 | 必需 | 默认值 | 说明 |
|---|---|---|---|
GEMINI_API_KEY |
❌ | - | Google Gemini API 密钥(可选,客户端也可提供) |
GEMINI_BASE_URL |
❌ | https://generativelanguage.googleapis.com/v1beta |
Gemini API 基础 URL |
| 变量名 | 必需 | 默认值 | 说明 |
|---|---|---|---|
VERTEX_AI_PROJECT_ID |
✅ | - | Google Cloud 项目 ID |
VERTEX_AI_LOCATION |
❌ | us-central1 |
Vertex AI 区域 |
VERTEX_AI_SERVICE_ACCOUNT_KEY |
✅ | - | 服务账号 JSON 密钥(字符串格式) |
支持所有 Gemini API 端点:
- ✅
models/*:generateContent- 内容生成 - ✅
models/*- 模型信息 - ✅
files/*- 文件管理 - ✅
cachedContents/*- 缓存内容 - ✅
tunedModels/*- 微调模型 - ✅ 所有其他端点
支持 Vertex AI 中的 Gemini 模型端点:
- ✅
models/gemini-*:generateContent- 内容生成 - ✅
models/gemini-*:streamGenerateContent- 流式内容生成 - ✅
models/gemini-*:countTokens- 令牌计数 - ✅
models/gemini-*- 模型信息 - ✅
models/text-embedding-*- 文本嵌入 - ❌ 文件管理和缓存内容(Vertex AI 不支持)
# 安装依赖
npm install
# 复制环境变量文件
cp .env.example .env.local
# 编辑 .env.local,填入您的配置
# 使用 Gemini API(选项 A)
BACKEND_TYPE=gemini
GEMINI_API_KEY=your_api_key_here
# 或使用 Vertex AI(选项 B)
# BACKEND_TYPE=vertex-ai
# VERTEX_AI_PROJECT_ID=your-gcp-project-id
# VERTEX_AI_LOCATION=us-central1
# VERTEX_AI_SERVICE_ACCOUNT_KEY={"type":"service_account","project_id":"...","private_key":"...","client_email":"..."}
# 启动开发服务器
npm run dev
# 测试服务(可选)
node test-vertex-ai.js
# 访问 http://localhost:3000优点:
- 设置简单,只需一个 API 密钥
- 支持所有 Gemini API 功能
- 适合个人项目和快速原型
缺点:
- 可能受到地区限制
- 配额和计费相对简单
优点:
- 企业级稳定性和 SLA
- 更好的安全性和合规性
- 集成 Google Cloud 生态系统
- 更灵活的计费和配额管理
缺点:
- 设置相对复杂
- 需要 Google Cloud 项目
- 不支持某些 Gemini API 功能(如文件管理)
MIT License