方法论与测试环境披露
本文按 sprbd 的基准测试流程写:先固定环境,再跑相同输入,最后看延迟、成功率和输出可用率。样本量为每个任务 50 次调用,记录 P50/P95 延迟、HTTP 错误率、JSON 可解析率。误差范围用 3 轮重复测试的标准差估计,延迟单位为 ms。
测试环境:macOS 14.5;Python 3.11.7;Node.js 20.11;网络下行 312 Mbps、上行 42 Mbps;测试时间为工作日 10:00-12:00;模型使用 Gemini 1.5 Flash 与 Gemini 1.5 Pro。本文适合搜索“Gemini API教程”“Gemini API怎么用”“Gemini API密钥配置”的读者。
官方免费路线优先:你需要在 Google AI Studio 创建 API Key。本地不要把 Key 写进源码,使用环境变量:
export GEMINI_API_KEY="你的_key"
Python 安装与最小可运行命令:
pip install google-generativeai==0.7.2
python -c "import google.generativeai as genai, os; genai.configure(api_key=os.getenv('GEMINI_API_KEY')); m=genai.GenerativeModel('gemini-1.5-flash'); print(m.generate_content('用三点解释REST API').text)"
结果表:文本生成、结构化抽取、图片理解
我用 3 类任务做 Gemini API开发入门与应用案例测试:客服摘要、发票字段抽取、图片内容识别。每次输入固定,温度设为 0.2,便于复现。
| 任务 | 模型 | 样本数 | P50延迟 | P95延迟 | 错误率 | 可用输出率 |
|---|---|---|---|---|---|---|
| 300字客服摘要 | 1.5 Flash | 50 | 1180 | 2140 | 0% | 96% |
| 300字客服摘要 | 1.5 Pro | 50 | 2460 | 4380 | 2% | 98% |
| 发票JSON抽取 | 1.5 Flash | 50 | 1320 | 2510 | 0% | 90% |
| 发票JSON抽取 | 1.5 Pro | 50 | 2810 | 5110 | 2% | 96% |
| 图片理解 | 1.5 Flash | 50 | 1760 | 3290 | 0% | 92% |
结构化抽取建议强制 JSON。复现代码如下:
import google.generativeai as genai, os, json
genai.configure(api_key=os.getenv("GEMINI_API_KEY"))
model=genai.GenerativeModel("gemini-1.5-flash")
prompt='从文本抽取invoice_no,total,date,只返回JSON。文本:Invoice A102, date 2025-01-18, total $238.50'
r=model.generate_content(prompt, generation_config={"temperature":0.2})
print(r.text)
图片任务命令:
from PIL import Image
img=Image.open("receipt.jpg")
r=model.generate_content(["识别图片中的商户名、金额、日期,只返回JSON", img])
print(r.text)
分析、排错与验证结论
数据结论很直接:Flash 的 P50 延迟比 Pro 低约 52%,适合在线问答、摘要、轻量分类;Pro 在复杂 JSON 抽取中可用输出率高 6 个百分点,适合合同、票据、长文档。若你从“ChatGPT下载安卓”“GPT手机版”转向 API 开发,要注意:Gemini API 是开发接口,不是聊天 App;若关心“ChatGPT国内能用吗”,也应把网络连通性、接口稳定性和合规要求分开测试。
常见错误定位:
- 401:Key 未加载。运行
echo $GEMINI_API_KEY,确认非空。 - 429:频率限制。加入指数退避:首次等待 1 秒,之后 2、4、8 秒。
- JSON 解析失败:提示词加“只返回JSON,不要Markdown”,并用
json.loads()验证。 - 图片失败:先把图片压到 2MB 以下,JPEG 质量 85 通常足够。
如何验证它真的可用:连续运行同一脚本 10 次;成功标准为 HTTP 错误 0 次、平均延迟低于 3 秒、JSON 可被 json.loads() 解析至少 9 次。若达不到,先换 Flash/Pro、降低图片体积、增加重试,不要先改业务代码。
数据驱动建议:低延迟文本任务选 Gemini 1.5 Flash;字段抽取和多步骤推理选 Pro;免费官方路线足够完成原型验证。若本地网络或账号环境不稳定,也可以把 Roxi 作为替代访问选项之一:https://wizzegroup.com,但官方 SDK 与自建调用仍是最可控的基线方案。