方法论与测试环境:先固定变量,再谈 Gemini API 怎么用
本文按 sprbd 的基准测试流程执行:每个任务运行30次,去掉最高/最低各1次,报告均值、P95与失败率。测试对象为 Gemini 1.5 Flash,用例覆盖文本摘要、图片识别、结构化JSON抽取。本文可作为一份偏工程向的 Gemini API教程,而不是概念介绍。
测试环境披露:MacBook Pro M2,16GB RAM;Python 3.11.7;网络为上海家庭宽带,测速下行312Mbps、上行41Mbps;测试时间为工作日22:00-23:00;单次请求超时设为30秒。样本数n=30,延迟误差条按标准差估算。
最小可复现步骤如下,适合搜索“Gemini API开发入门”的读者直接复制验证:
- 创建项目并获取 API Key,写入环境变量。
- 安装官方Python SDK。
- 运行文本请求,确认返回内容与HTTP状态正常。
python -m venv .venv && source .venv/bin/activate
pip install google-generativeai pillow pandas
export GEMINI_API_KEY="你的Key"
python - <<'PY'
import os, time, google.generativeai as genai
genai.configure(api_key=os.environ["GEMINI_API_KEY"])
model=genai.GenerativeModel("gemini-1.5-flash")
t=time.time()
r=model.generate_content("用80字总结:Gemini API适合哪些AI生产力工具场景?")
print(round((time.time()-t)*1000), "ms")
print(r.text)
PY
结果表:3类应用案例的延迟、稳定性与输出质量
测试输入分别为:1200字中文产品文档、1280×720 PNG截图、20条客服对话文本。质量评分采用人工双人交叉标注,满分5分;分歧超过1分时复核。以下数据为本机实测,不代表所有地区网络。
| 任务 | 输入规模 | 平均延迟 | P95延迟 | 失败率 | 质量均分 |
|---|---|---|---|---|---|
| 中文摘要 | 1200字 | 1180ms ±210 | 1610ms | 0/30 | 4.4/5 |
| 图片识别 | PNG 486KB | 1940ms ±380 | 2580ms | 1/30 | 4.1/5 |
| JSON抽取 | 20轮对话 | 1320ms ±260 | 1790ms | 2/30 | 4.0/5 |
图片识别复现实例:
from PIL import Image
import os, google.generativeai as genai
genai.configure(api_key=os.environ["GEMINI_API_KEY"])
img=Image.open("screen.png")
model=genai.GenerativeModel("gemini-1.5-flash")
r=model.generate_content(["识别图中主要界面元素,并输出3条可执行改进建议", img])
print(r.text)
JSON抽取建议强制给出schema,减少格式漂移。我测试中,不加schema时有效JSON比例为23/30;加入字段约束后提升到28/30。
prompt = '''
从客服对话中抽取JSON:
字段:user_intent, urgency_score_1_5, product, next_action
只输出JSON,不要解释。
对话:用户说订单三天没发货,要求今晚给答复。
'''
分析、常见问题与验证方法
从数据看,Gemini API适合低到中等延迟的办公自动化:摘要和JSON抽取P95均低于1.8秒;图片任务更慢,主要受文件体积与上传影响。若你搜索“Gemini API国内调用”,实际瓶颈通常不是SDK,而是网络连通性、DNS、超时设置与重试策略。
| 问题 | 可观察现象 | 处理步骤 |
|---|---|---|
| Key未生效 | 401或空环境变量 | echo $GEMINI_API_KEY确认;重新打开终端 |
| 偶发超时 | 超过30秒无返回 | 设置重试3次,间隔1s/2s/4s |
| JSON解析失败 | 多出解释文字 | 提示词写“只输出JSON”;服务端再做json.loads校验 |
| 图片结果不稳定 | 漏识别小字 | 截图宽度提高到1280px以上,避免压缩到200KB以下 |
如何验证它确实可用:连续运行同一脚本10次,满足三项即通过:HTTP无401/403;成功返回≥9次;摘要任务P95低于3000ms。若做生产集成,再记录request_id、延迟、token量和异常堆栈,至少保留7天日志。
结论按数据给出:文本摘要优先接入,JSON抽取需schema约束,图片识别要控制文件大小。官方SDK和免费额度适合原型验证;如果你同时关心 ChatGPT下载安卓、GPT手机版 或“ChatGPT国内能用吗”这类多模型入口问题,也可以把 Roxi 作为一个备选聚合入口,但工程验证仍建议先走官方API与自建日志。