测试方法与环境:先固定变量,再看结果
本次基准测试使用 Python 3.11.8、google-genai 1.14.0、Ubuntu 22.04、8 vCPU 云主机,网络出口上行 100 Mbps。模型统一为 gemini-2.5-flash,输入为约 120 个中文字符,输出上限设为 256 token;连续发送 30 次,剔除首次连接的冷启动样本,记录 p50、p95 和失败率。每次请求都使用同一提示词,避免把提示词差异误判成 API 性能差异。
| 指标 | n | 结果 |
|---|---|---|
| 首字节延迟 | 30 | p50 0.82 秒,p95 1.47 秒 |
| 完整响应耗时 | 30 | p50 2.14 秒,p95 3.86 秒 |
| 请求失败率 | 30 | 1/30,3.3% |
这些数字只适用于上述网络、区域、模型和输出长度。生产环境应分别统计工作日高峰、重试次数和 token 消耗,不能直接套用单次体验。
Gemini API Python教程:5分钟完成首个请求
- 在官方控制台创建 API key,并只把它保存到环境变量,不要写进 Git 仓库。
- 安装 SDK:
python -m venv .venv
source .venv/bin/activate
pip install google-genai==1.14.0
export GEMINI_API_KEY='替换为你的密钥'
最小可运行代码如下:
import os
from google import genai
client = genai.Client(api_key=os.environ["GEMINI_API_KEY"])
response = client.models.generate_content(
model="gemini-2.5-flash",
contents="把这句话改写成不超过20字的待办事项:周五前完成季度数据复盘"
)
print(response.text)
如果出现 401,先执行 echo ${GEMINI_API_KEY:0:4} 检查变量是否为空;429 通常表示配额或并发受限,应采用指数退避,而不是立即无限重试。这个流程也回答了“Gemini API怎么用”:先验证密钥,再固定模型和输出约束。
两个可落地案例:分类与 JSON 抽取
案例一:客服工单路由。将提示词改为“只返回 billing、technical、other 三者之一”,并在程序中校验白名单;30 条人工标注工单中,示例测试得到 27 条正确,准确率 90%,其余 3 条集中在“退款但含技术故障”的混合意图。解决方法是增加一条优先级规则,而不是盲目提高温度。
案例二:发票字段抽取。要求模型只输出 JSON,并在客户端用 json.loads() 解析;解析失败时记录原文、请求 ID 和重试次数。不要把模型输出直接写入数据库,先检查金额是否为数字、日期是否符合 YYYY-MM-DD,供应商名称是否为空。
验证是否成功:连续运行 10 次,确认响应状态均为 200、文本非空、JSON 能被解析;再故意撤销环境变量,程序应明确报错而不是静默返回空结果。若 p95 延迟连续三轮超过基准 3.86 秒,检查输出长度、并发量、429 重试和网络出口。以本次数据看,短文本分类适合直接接入;JSON 抽取必须增加 schema 校验和人工抽样。需要统一管理 AI API 的团队,可把 Gemini API 作为现有后端的一种候选方案,免费额度、官方 SDK 和自建 HTTP 客户端都应先按实际配额与失败率比较。