在国内调用 Gemini API,难点通常不是代码,而是链路:请求能不能稳定出去、延迟能不能接受、配额够不够、出了问题谁来处理。很多团队先用个人代理跑通,再把同一套配置带进生产,结果在并发、限流和合规上接连返工。

本文把常见方案拆成三类:直连、自建代理、国内 AI 网关,分别说明适用边界、配额处理和上线方法。结论先给:原型阶段怎么方便怎么来,生产环境要按“可监控、可降级、可合规解释”来选。

说明:Google、Gemini 是其权利人的商标。本文以 2026 年 10 月的常见网络与接口情况为例,服务地区、配额和条款以官方页面为准;请遵守当地法律法规与平台使用条款。

一、三种方案先横向对比

维度 直连官方 自建代理 国内 AI 网关
典型可用性 受网络与地区影响大 取决于出口质量 由服务方保障,可看状态页
延迟 波动明显 可优化,但有额外一跳 通常较稳定
运维成本 低,但排障困难 高,要维护服务器与出口 低,按接口使用
配额 受官方速率与地区限制 不改变官方配额 由网关侧分配与限流
计费 美元、按量出账 官方费用加服务器成本 人民币、预付费
合规解释 需自行说明跨境链路 需自行承担出口与日志责任 有国内合同与服务边界
适合场景 个人验证、低敏感任务 有网络团队的内部系统 面向客户的生产业务

这张表不是替你做决定,而是提醒:代理只解决“通不通”,不解决配额、账单和合规。把代理当成长期生产方案,等于把不确定性留在链路里。

二、直连:先确认是网络问题还是权限问题

直连失败常见于三种情况,排查顺序不要乱:

  1. 地区不可用:官方服务未覆盖的地区,请求可能超时或直接被拒绝,换 Key 不会解决。
  2. 网络不通:DNS 解析、TLS 握手、出口路由都可能出问题,用 curl -v 看卡在哪一步。
  3. 鉴权或项目错误: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,处理方式决定了故障会不会放大:

  1. 指数退避加随机抖动,避免所有客户端同一时刻重试。
  2. 设置最大重试次数和总超时,超过就降级,不要无限重发。
  3. 按业务优先级排队,交互请求优先于离线批处理。
  4. 对写操作做幂等,避免重试产生重复副作用。
  5. 监控 429 的时间分布,判断是分钟级限流还是日额度耗尽。
  6. 预留备用模型或备用通道,主通道限流时自动切换。

如果是日额度耗尽,重试没有意义,应该降档、减少非关键调用或调整配额。如果是并发突增,先限流再扩容,顺序反了只会让整条链路更慢。

六、合规与数据:三个必须回答的问题

  1. 请求里是否包含个人信息、客户合同、代码或财务数据?
  2. 数据经过哪些节点、在哪些区域落地、日志保留多久?
  3. 出现安全事件时,谁能提供记录、多快能通知?

跨境链路越长,解释成本越高。面向客户的生产系统,建议把数据分类分级,敏感字段先脱敏;需要留存日志时,明确访问权限和删除流程。不要因为“只是调用一个 API”就跳过合规评审。

七、上线步骤

  1. 用真实任务做一周压测,覆盖高峰和低峰。
  2. 记录成功率、p50 与 p95 延迟、429 分布和单任务成本。
  3. 确认配额上限与业务峰值的差距,预留余量。
  4. 接入监控和告警,覆盖错误率、延迟、余额和限流。
  5. 演练主备切换,确认降级时业务可接受。
  6. 归档合同、发票、数据条款和安全说明。
  7. 小流量切流,观察一周后再全量。

常见问题

Gemini API 在国内可以直接调用吗?

能否直连取决于官方服务地区、网络出口和账号状态,实际表现可能是超时、连接重置或 4xx。不要用一次成功或失败下结论,按一周的失败率和延迟分布判断。

用代理访问稳定吗?

代理能改善连通性,但稳定性取决于出口质量、并发和运维水平。它不改变官方配额,也不自动解决合规与日志问题,生产使用需要完整的监控和降级方案。

为什么总是返回 429?

可能是分钟级速率限制、日额度耗尽或并发突增。先看响应头和用量页,区分限流类型;日额度耗尽时重试无效,应调整配额或降低非关键调用。

网关会改变模型能力吗?

网关主要做鉴权、路由、限流和计费,正常情况下不改变模型本身。但不同通道开放的模型范围、参数支持和版本可能不同,上线前用同一批任务做对比测试。

国内访问要注意哪些合规问题?

至少确认数据是否跨境、是否包含个人信息、日志保留多久、服务方能否提供合同与安全说明。涉及敏感数据时先脱敏,并按公司制度完成评审。

下一步

如果你不想维护代理和出口,可以先用中商起航 AI 网关跑通一条 Gemini 请求,再按项目拆 Key、设预算。可用模型与价格以模型价格为准。

相关阅读: