Gemini (Google AI Studio)
Google Gemini 是可通过 Google AI Studio 和 Google Cloud Vertex AI 使用的多模态模型系列。本指南将 Google AI Studio 端点接入 AISIX,使应用能够通过网关管理的凭证、访问控制、速率限制和用量核算来调用 Gemini。
本指南使用 Google AI Studio 端点。如需改为通过 Google Cloud 路由 Gemini,请使用 Google Vertex AI。
准备工作
开始前,请准备以下内容:
- 一套 AISIX 环境:
- 对于 AISIX Cloud,需要一个已关联网关的环境和具有写入作用域的 Admin Token。对于 On-Premises,请按照 AISIX Cloud 快速入门操作。如需申请 Hybrid Cloud 访问权限,请联系 API7。
- 对于开源 AISIX 网关,请准备本地 AISIX 安装 ,或使用开源 AISIX 网关快速入门中的 Docker 环境。配置网关以加载声明式资源文件。
- 从 Google AI Studio 获取的 Google AI Studio API Key。
curl和jq。
使用 AISIX Cloud 配置
导出 AISIX Cloud 连接信息:
# AISIX_CP 是 Admin API 基础 URL;应包含 /api,且不含尾部斜杠
# 本地私有化部署快速入门使用 http://localhost:8080/api
export AISIX_CP="YOUR_AISIX_CLOUD_ADMIN_API_URL"
export AISIX_TOKEN="YOUR_ADMIN_TOKEN"
export ENV_ID="YOUR_ENVIRONMENT_ID"
为以 Gemini 为后端的 Chat Completions 路由创建服务提供方密钥、模型别名和调用方 API Key。
由于 Google AI Studio 提供兼容 OpenAI 的端点,AISIX 通过 openai 适配器连接,并将 Google AI Studio API 根地址用作 api_base。
创建服务提供方密钥
创建用于存储 Google AI Studio 凭证和 API 根地址的服务提供方密钥,并允许该环境使用此密钥:
# 请替换为实际值
export GEMINI_API_KEY="YOUR_PROVIDER_API_KEY"
PROVIDER_KEY_ID=$(curl -sS -X POST "${AISIX_CP}/provider_keys" \
-H "Authorization: Bearer ${AISIX_TOKEN}" \
-H "Content-Type: application/json" \
-d '{
"display_name": "gemini-prod",
"provider": "google",
"api_key": "'"${GEMINI_API_KEY}"'",
"api_base": "https://generativelanguage.googleapis.com/v1beta/openai",
"allowed_environments": ["'"${ENV_ID}"'"]
}' | jq -r '.provider_key.id')
echo "${PROVIDER_KEY_ID}"
❶ provider 为 google,即 Google AI Studio 的目录服务提供方 ID。AISIX Cloud Admin API 会从目录服务提供方推导适配器;只有 BYO 服务提供方密钥才接受 adapter 字段。
❷ api_key 存储 Google AI Studio API Key。该值遵循服务提供方密钥中的凭证处理行为。
❸ 对于此目录服务提供方,api_base 是可选字段,因为省略时 AISIX Cloud Admin API 会填入相同的值。显式设置该字段可使上游根地址在资源中保持可见。请使用末尾不带斜杠的根地址;AISIX 会向其追加 /chat/completions。
该命令会把返回的服务提供方密钥 ID 保存到 PROVIDER_KEY_ID。
创建模型
创建调用方将在请求中发送的模型别名:
MODEL_ID=$(curl -sS -X POST "${AISIX_CP}/environments/${ENV_ID}/models" \
-H "Authorization: Bearer ${AISIX_TOKEN}" \
-H "Content-Type: application/json" \
-d '{
"display_name": "gemini-flash-prod",
"model_name": "gemini-3.6-flash",
"provider_key_id": "'"${PROVIDER_KEY_ID}"'"
}' | jq -r '.model.id')
echo "${MODEL_ID}"
❶ display_name 是调用方在 model 中发送的别名。
❷ model_name 是 Gemini 模型 ID,例如 gemini-3.6-flash。请从 Gemini 模型页面选择稳定 ID,并在部署前检查其生命周期;Google 会按照公布的计划停用旧的稳定版和预览版 ID。
❸ provider_key_id 将别名关联到 Gemini 服务提供方密钥。
创建调用方 API Key
创建可访问该模型别名的调用方 API Key 资源。服务器会生成密钥值,并仅在响应中返回一次明文:
AISIX_API_KEY=$(curl -sS -X POST "${AISIX_CP}/environments/${ENV_ID}/api_keys" \
-H "Authorization: Bearer ${AISIX_TOKEN}" \
-H "Content-Type: application/json" \
-d '{
"display_name": "gemini-app",
"allowed_models": ["'"${MODEL_ID}"'"]
}' | jq -r '.plaintext')
echo "${AISIX_API_KEY}"
allowed_models 的值通过 ID 引用模型。请安全存储明文密钥;之后无法再次获取。
新资源会自动投射到已关联的网关。
使用开源 AISIX 网关配置
导出上游凭证,并选择应用将发送给网关的调用方 API Key:
export GEMINI_API_KEY="YOUR_PROVIDER_API_KEY"
export CALLER_API_KEY="YOUR_CALLER_API_KEY"
对于新网关,请使用以下完整的声明式资源文件。对于现有网关,请把这些条目合并到当前文件,并保留其他资源:
_format_version: "1"
provider_keys:
- display_name: "gemini-prod"
provider: "google"
adapter: "openai"
api_key: ${GEMINI_API_KEY}
api_base: "https://generativelanguage.googleapis.com/v1beta/openai"
models:
- display_name: "gemini-flash-prod"
provider: "google"
model_name: "gemini-3.6-flash"
provider_key: "gemini-prod"
api_keys:
- display_name: "gemini-app"
key_env: CALLER_API_KEY
allowed_models:
- "gemini-flash-prod"
如果 AISIX 安装在本地,请在加载前验证文件:
aisix validate --resources resources.yaml