在国内调用 Gemini API,难点通常不是代码,而是链路:请求能不能稳定出去、延迟能不能接受、配额够不够、出了问题谁来处理。很多团队先用个人代理跑通,再把同一套配置带进生产,结果在并发、限流和合规上接连返工。
本文把常见方案拆成三类:直连、自建代理、国内 AI 网关,分别说明适用边界、配额处理和上线方法。结论先给:原型阶段怎么方便怎么来,生产环境要按“可监控、可降级、可合规解释”来选。
说明:Google、Gemini 是其权利人的商标。本文以 2026 年 10 月的常见网络与接口情况为例,服务地区、配额和条款以官方页面为准;请遵守当地法律法规与平台使用条款。
一、三种方案先横向对比
| 维度 | 直连官方 | 自建代理 | 国内 AI 网关 |
|---|---|---|---|
| 典型可用性 | 受网络与地区影响大 | 取决于出口质量 | 由服务方保障,可看状态页 |
| 延迟 | 波动明显 | 可优化,但有额外一跳 | 通常较稳定 |
| 运维成本 | 低,但排障困难 | 高,要维护服务器与出口 | 低,按接口使用 |
| 配额 | 受官方速率与地区限制 | 不改变官方配额 | 由网关侧分配与限流 |
| 计费 | 美元、按量出账 | 官方费用加服务器成本 | 人民币、预付费 |
| 合规解释 | 需自行说明跨境链路 | 需自行承担出口与日志责任 | 有国内合同与服务边界 |
| 适合场景 | 个人验证、低敏感任务 | 有网络团队的内部系统 | 面向客户的生产业务 |
这张表不是替你做决定,而是提醒:代理只解决“通不通”,不解决配额、账单和合规。把代理当成长期生产方案,等于把不确定性留在链路里。
二、直连:先确认是网络问题还是权限问题
直连失败常见于三种情况,排查顺序不要乱:
- 地区不可用:官方服务未覆盖的地区,请求可能超时或直接被拒绝,换 Key 不会解决。
- 网络不通:DNS 解析、TLS 握手、出口路由都可能出问题,用
curl -v看卡在哪一步。 - 鉴权或项目错误:401 是 Key 问题,403 多半是项目、API 未启用或模型权限问题。
export GEMINI_API_KEY="你的密钥"
curl -v "https://generativelanguage.googleapis.com/v1beta/models" \
-H "x-goog-api-key: $GEMINI_API_KEY" \
--max-time 15
如果连接阶段就超时,后面调参数没有意义;如果能连上但返回 4xx,再按状态码排查。把每次失败的阶段、耗时和状态码记录下来,才能判断是偶发波动还是结构性不可用。
三、自建代理:解决连通,不解决配额
自建代理的典型结构是:业务服务器 → 境外出口 → Gemini API。它适合有网络运维能力、数据敏感度可控的团队,但要把四件事写进运维手册:
- 出口 IP 是否稳定,是否会被目标服务判定为异常流量。
- 代理层是否记录请求内容,日志保留多久,谁能访问。
- 证书、域名和端口如何管理,失效时怎么告警。
- 代理服务器本身的带宽、并发和故障切换。
代理不会提升官方配额。免费档或低档位的 RPM、TPM 限制仍然存在,高峰期一样会排队。更常见的问题是所有业务共用一个出口,某个脚本跑飞后拖垮整条链路,所以按业务拆分出口和限流是必要的。
四、网关接入:通常只改三处
国内 AI 网关一般提供 OpenAI 兼容入口,已有代码只需要改 Base URL、Key 和模型名:
import os
from openai import OpenAI
client = OpenAI(
api_key=os.environ["ZSQH_API_KEY"],
base_url="https://ai.zhongshangqihang.com/v1",
)
resp = client.chat.completions.create(
model="<价格页上的 Gemini 模型名>",
messages=[{"role": "user", "content": "只回复 OK"}],
max_tokens=64,
)
print(resp.choices[0].message.content)
print(resp.usage)
模型名以站内模型价格页为准,不要照抄示例。接入后先跑一条最小请求,再跑一批真实任务,重点看三件事:首字延迟、失败率、返回内容是否被降级。网关是服务边界,选之前确认状态页、支持渠道、退款规则和数据条款。
五、配额与 429:把重试写对
Gemini 的配额通常按模型、项目和时间窗口计算,常见维度包括每分钟请求数、每分钟 Token 数和每天请求数。触发限制时通常返回 429,处理方式决定了故障会不会放大:
- 指数退避加随机抖动,避免所有客户端同一时刻重试。
- 设置最大重试次数和总超时,超过就降级,不要无限重发。
- 按业务优先级排队,交互请求优先于离线批处理。
- 对写操作做幂等,避免重试产生重复副作用。
- 监控 429 的时间分布,判断是分钟级限流还是日额度耗尽。
- 预留备用模型或备用通道,主通道限流时自动切换。
如果是日额度耗尽,重试没有意义,应该降档、减少非关键调用或调整配额。如果是并发突增,先限流再扩容,顺序反了只会让整条链路更慢。
六、合规与数据:三个必须回答的问题
- 请求里是否包含个人信息、客户合同、代码或财务数据?
- 数据经过哪些节点、在哪些区域落地、日志保留多久?
- 出现安全事件时,谁能提供记录、多快能通知?
跨境链路越长,解释成本越高。面向客户的生产系统,建议把数据分类分级,敏感字段先脱敏;需要留存日志时,明确访问权限和删除流程。不要因为“只是调用一个 API”就跳过合规评审。
七、上线步骤
- 用真实任务做一周压测,覆盖高峰和低峰。
- 记录成功率、p50 与 p95 延迟、429 分布和单任务成本。
- 确认配额上限与业务峰值的差距,预留余量。
- 接入监控和告警,覆盖错误率、延迟、余额和限流。
- 演练主备切换,确认降级时业务可接受。
- 归档合同、发票、数据条款和安全说明。
- 小流量切流,观察一周后再全量。
常见问题
Gemini API 在国内可以直接调用吗?
能否直连取决于官方服务地区、网络出口和账号状态,实际表现可能是超时、连接重置或 4xx。不要用一次成功或失败下结论,按一周的失败率和延迟分布判断。
用代理访问稳定吗?
代理能改善连通性,但稳定性取决于出口质量、并发和运维水平。它不改变官方配额,也不自动解决合规与日志问题,生产使用需要完整的监控和降级方案。
为什么总是返回 429?
可能是分钟级速率限制、日额度耗尽或并发突增。先看响应头和用量页,区分限流类型;日额度耗尽时重试无效,应调整配额或降低非关键调用。
网关会改变模型能力吗?
网关主要做鉴权、路由、限流和计费,正常情况下不改变模型本身。但不同通道开放的模型范围、参数支持和版本可能不同,上线前用同一批任务做对比测试。
国内访问要注意哪些合规问题?
至少确认数据是否跨境、是否包含个人信息、日志保留多久、服务方能否提供合同与安全说明。涉及敏感数据时先脱敏,并按公司制度完成评审。
下一步
如果你不想维护代理和出口,可以先用中商起航 AI 网关跑通一条 Gemini 请求,再按项目拆 Key、设预算。可用模型与价格以模型价格为准。
相关阅读:
