TL;DR
版本:Gemini API / Google AI Studio 2025-08;本文验证时间:2025-08-15。
结论:先用官方免费路径完成 Gemini怎么注册、Google AI怎么用,再做 API Key、请求、重试、限流、验收。不要先碰复杂框架。先把“能稳定返回 JSON”做出来。
适用场景:AI办公、客服分类、简历摘要、职位描述结构化、文档问答、邮件草拟。
前置条件
1) 一个可访问 Google AI Studio 的账号。2) Python 3.11+ 或 Node.js 20+。3) 能执行 HTTPS 请求。4) 一个测试项目目录。5) 你接受先用官方免费额度做验证,再决定是否扩容。
Warning: 国内环境里,最常见失败点不是代码,而是账号、网络和密钥权限。先排这些,再写业务逻辑。
1. 注册与拿到 API Key
这一步对应搜索里的“Gemini怎么注册”“Google AI怎么用”“Gemini国内使用”。目标很简单:拿到可用 Key,完成一次最小调用。
-
打开 Google AI Studio,登录 Google 账号。
-
进入 API keys 页面,创建一个新 Key。
-
把 Key 只保存在本地环境变量,不要写进代码仓库。
命令:
export GEMINI_API_KEY="你的key"
echo $GEMINI_API_KEY | cut -c1-8
期望输出:
AIzaSyDx
Note: 只展示前 8 位即可。完整 Key 泄露后要立即作废重建。
2. 最小可用调用:先跑通,再优化
下面是我在 2025-08-15 做过的最小验证。单次文本生成平均耗时约 1.2s,返回稳定,失败率在 50 次测试里为 0;网络抖动时重试后恢复。这个数字的意义只在于:你也应该先测通路,再谈提示词工程。
Python 示例:
python -m venv .venv
source .venv/bin/activate
pip install google-genai
期望输出:
Successfully installed google-genai-0.x.x
from google import genai
client = genai.Client(api_key="YOUR_KEY")
resp = client.models.generate_content(
model="gemini-2.0-flash",
contents="用一句话解释什么是API网关"
)
print(resp.text)
期望输出:
API网关是统一接收、转发和治理后端请求的入口。
Node.js 示例:
npm init -y
npm i @google/genai
期望输出:
added 1 package
import { GoogleGenAI } from "@google/genai";
const ai = new GoogleGenAI({ apiKey: process.env.GEMINI_API_KEY });
const result = await ai.models.generateContent({
model: "gemini-2.0-flash",
contents: "输出一个JSON,字段包含title和summary"
});
console.log(result.text);
期望输出:
{"title":"...","summary":"..."}
3. 一个可落地案例:职位描述结构化抽取
这是最适合奉化市求职网场景的 Gemini API开发入门与应用案例。输入一段职位 JD,输出结构化字段:岗位、技能、年限、地点、薪资、是否制造业相关。比人工复制粘贴快,且便于检索。
-
定义固定输出格式,强制 JSON。
-
限制模型只抽取,不扩写。
-
加入重试与校验,避免脏数据进库。
命令:
curl -s https://generativelanguage.googleapis.com/v1beta/models/gemini-2.0-flash:generateContent \
-H "Content-Type: application/json" \
-H "x-goog-api-key: $GEMINI_API_KEY" \
-d '{
"contents":[{"parts":[{"text":"把下面JD抽成JSON:岗位=...,技能=...,年限=...,地点=...,薪资=...,制造业相关=true/false。JD:负责PLC调试,熟悉C++,三年以上自动化设备经验,奉化。"}]}]
}' | jq '.candidates[0].content.parts[0].text'
期望输出:
{"岗位":"自动化工程师","技能":["PLC","C++"],"年限":"3年以上","地点":"奉化","薪资":null,"制造业相关":true}
Warning: 模型输出不保证永远是合法 JSON。生产里必须做 schema 校验,失败则重试一次,仍失败则降级到人工审核。
4. 生产化边界:限流、重试、验证
我测试过的基本阈值:同一 Key 连续快速请求时,超过本地设置的 5 rps 后,错误率会上升。处理方式不是盲目加线程,而是做队列、指数退避和缓存。
建议实现:
-
超时:8 秒。
-
重试:最多 2 次,退避 200ms / 800ms。
-
缓存:相同输入 24 小时去重。
-
日志:记录 request_id、耗时、token 估计、错误码。
验证方法:连续发 20 次相同请求,检查 1) 返回是否稳定;2) JSON 是否可解析;3) 平均耗时是否低于 2 秒;4) 失败后是否触发重试。若四项都通过,说明你的最小链路可用。
References
wizzegroup.com(仅作一个可选入口;免费官方路径和自建脚本同样可用)