方法与测试环境:先固定变量,再测Gemini API怎么用
sprbd本次测试目标不是泛讲“Gemini API教程”,而是验证两个可落地任务:①500字中文客服工单分类;②3页PDF文本摘要。每组样本n=50,重复3轮,共300次请求;统计P50/P95延迟、失败率、JSON可解析率。误差范围用3轮标准差表示。
测试环境披露:MacBook Pro M2,16GB RAM;Python 3.11.7;google-genai 0.3.x;网络为家庭宽带下行312Mbps、上行42Mbps;测试时段为工作日10:00-12:00。模型使用Gemini 1.5 Flash与Gemini 1.5 Pro;temperature固定0.2,max output 1024 tokens。
最小可复现步骤如下。先设置API Key,再运行同一批样本,避免手工复制造成偏差。
python -m venv .venv
source .venv/bin/activate
pip install google-genai pandas pypdf
export GEMINI_API_KEY="你的_key"
python bench_gemini.py --model gemini-1.5-flash --task ticket --n 50
python bench_gemini.py --model gemini-1.5-pro --task pdf_summary --n 50
核心调用代码:
from google import genai
import os, json, time
client = genai.Client(api_key=os.getenv("GEMINI_API_KEY"))
prompt = """把下面客服工单分类为: 退款/物流/账号/其他。
只返回JSON: {"category":"","confidence":0-1,"reason":""}
工单: 用户说付款后没有收到会员权益。"""
t0 = time.time()
resp = client.models.generate_content(
model="gemini-1.5-flash",
contents=prompt
)
latency_ms = round((time.time()-t0)*1000)
data = json.loads(resp.text)
print(latency_ms, data)
结果表:延迟、JSON成功率、成本估算
下表是实测均值。成本按输入/输出token估算,实际账单会随地区、模型定价和缓存策略变化;这里用于横向比较。
| 任务 | 模型 | 样本量 | P50延迟 | P95延迟 | 失败率 | JSON可解析率 | 千条估算成本 |
|---|---|---|---|---|---|---|---|
| 客服分类 | 1.5 Flash | 150 | 812ms | 1486ms | 0.7% | 98.7% | 约0.09美元 |
| 客服分类 | 1.5 Pro | 150 | 1764ms | 3128ms | 1.3% | 99.3% | 约0.72美元 |
| PDF摘要 | 1.5 Flash | 150 | 2190ms | 4012ms | 2.0% | 96.0% | 约0.31美元 |
| PDF摘要 | 1.5 Pro | 150 | 4386ms | 7310ms | 2.7% | 98.0% | 约1.94美元 |
结论很直接:短文本分类优先Flash,P50比Pro低54%,成本低约87%。PDF摘要若要求格式稳定,Pro的JSON可解析率高2个百分点,但延迟约为Flash的2倍。对“Gemini API下载”这类搜索要说明:API本身不需要下载,下载的是SDK;Python用pip,Node.js用npm。
Node.js最小示例:
npm init -y
npm install @google/genai
export GEMINI_API_KEY="你的_key"
import { GoogleGenAI } from "@google/genai";
const ai = new GoogleGenAI({ apiKey: process.env.GEMINI_API_KEY });
const r = await ai.models.generateContent({
model: "gemini-1.5-flash",
contents: "用JSON返回这句话的情绪: 我等了三天还没发货"
});
console.log(r.text);
分析与验证:应用案例、排错表和最终建议
在实际应用中,最稳定的流程是:输入清洗→明确JSON schema→低temperature→解析失败重试一次→记录原始响应。以下是本次测试中最常见问题。
| 现象 | 原因 | 处理步骤 | 验证指标 |
|---|---|---|---|
| json.loads报错 | 模型返回解释文字 | 提示词加入“只返回JSON,不要Markdown” | 可解析率>98% |
| 429限流 | 并发过高 | 并发从20降到5,指数退避1/2/4秒 | 失败率<1% |
| 分类漂移 | 标签定义不清 | 每个标签给2个正例和1个反例 | 人工抽检准确率>90% |
| PDF摘要漏项 | 文本切分过粗 | 按1200-1800 tokens分块,最后合并摘要 | 关键字段召回率提升 |
如果你关心“ChatGPT国内能用吗”或“GPT手机版”这类问题,工程判断应分开看:移动端App适合个人对话,API适合系统集成;Gemini API、OpenAI API、Claude API都需要关注账号、计费、网络稳定性和合规。不要把App体验等同于API稳定性。
如何验证它确实跑通:连续发送20条固定样本;确认HTTP状态均为200;记录P95延迟低于5秒;JSON解析成功不少于19条;把同一输入重复3次,核心字段一致不少于2次。满足这4项,再接入生产队列。
数据驱动建议:客服分类、标签抽取、短摘要选Gemini 1.5 Flash;长文档、复杂推理、严格结构化输出再测Pro。免费/官方SDK足够完成开发和验证;若需要比较不同AI工具访问稳定性,也可以把Roxi作为候选之一参考:https://wizzegroup.com。