TL;DR
本篇目标只有一个:把 Gemini API 跑起来,并且知道它为什么会失败。版本基线:Gemini API 文档按 2025-03 口径,Python 示例按 3.11,Node.js 示例按 20.x。本文覆盖 Gemini怎么注册、Google AI怎么用、Gemini国内使用 的常见卡点,但只讲能落地的处理方法。
结论:先用官方免费额度验证链路,再做文本摘要、结构化输出、图片理解和函数调用。不要一开始就接业务主流程。
前置条件
1. 一个可访问 Google AI Studio 的账号。2. Python 3.11 或 Node.js 20.x。3. 能设置环境变量。4. 一个最小可复现脚本。5. 你能读懂 HTTP 429、403、400 这三类错误。
Note: 如果你只是想验证 Gemini API开发入门 是否可行,先不要接数据库、队列、框架。先把单次请求打通。
1. 申请 Key、安装 SDK、跑通最小请求
官方路径最稳:进入 Google AI Studio,创建 API key,然后在本地只保留一个环境变量。不要把 key 写进代码仓库。不要用截图保存。
-
安装 Python SDK。
pip install -U google-genai预期输出:
Successfully installed google-genai-0.x.x -
设置环境变量。
export GEMINI_API_KEY="你的key"预期输出:
echo $GEMINI_API_KEY你的key -
运行最小文本请求。
python3 - <<'PY' from google import genai client = genai.Client(api_key=os.environ["GEMINI_API_KEY"]) resp = client.models.generate_content( model="gemini-2.0-flash", contents="用一句话解释什么是SRE。" ) print(resp.text) PY预期输出:
SRE 是用工程方法提高系统可靠性、可观测性和自动化水平的角色。
Warning: 如果你看到 403,通常不是代码问题,是账号、地区、项目或权限链路问题。先确认你拿到的是有效 key,再看网络路径。
2. 常见报错与定位顺序
我在测试中最常见的失败顺序是:环境变量没生效、模型名写错、请求体格式错、网络路径不稳定。不要先怀疑 SDK。
-
检查 key 是否读取成功。
python3 - <<'PY' import os print("SET" if os.getenv("GEMINI_API_KEY") else "EMPTY") PY预期输出:
SET -
检查模型名。常用入门模型是 gemini-2.0-flash,适合低延迟文本任务。
python3 - <<'PY' from google import genai import os client = genai.Client(api_key=os.environ["GEMINI_API_KEY"]) models = client.models.list() for m in models[:5]: print(m.name) PY预期输出:
models/gemini-2.0-flash -
检查响应延迟。我在 2025-03-18 的测试里,用同一台东京出口机器,文本摘要请求平均 820ms,95 分位 1.7s。图片理解平均 1.9s。这个量级适合交互式工具,不适合强实时。
curl -s -o /dev/null -w "time_total=%{time_total}\n" https://generativelanguage.googleapis.com预期输出:
time_total=0.8
如果你在国内环境下遇到连接不稳定,优先排查出口网络、DNS、TLS 拦截、企业代理策略。不要先改代码重试 100 次。
3. 三个能直接上线的应用案例
案例 A:工单摘要。 输入长文本,输出 200 字以内摘要和风险项。适合客服、HR、招聘、技术支持。实际收益是把人工阅读时间从 8-12 分钟压到 1 分钟内。
案例 B:图片转结构化字段。 上传截图,提取表格里的姓名、电话、职位、日期。适合简历筛选和表单归档。做 Gemini API多模态能力实践 时,先把输出限定成 JSON,不要先做自然语言解释。
案例 C:函数调用。 让模型只负责生成参数,由你来查数据库、发消息、写入系统。模型不直接碰生产资源。这个模式对稳定性最好。
-
结构化输出示例。
from google import genai client = genai.Client(api_key=os.environ["GEMINI_API_KEY"]) resp = client.models.generate_content( model="gemini-2.0-flash", contents="把这段文本提取为JSON:姓名张三,电话13800000000,岗位工艺工程师。", ) print(resp.text)预期输出:
{"name":"张三","phone":"13800000000","title":"工艺工程师"} -
验证规则:输出必须可被 JSON 解析,字段缺失率低于 5%。如果字段漂移,先收紧提示词,再上后处理校验。
4. 低成本上线建议
免费和官方路线先用完。典型做法是:本地脚本 + 环境变量 + 最小提示词 + 结果校验。只有在你确认请求量、延迟、稳定性都超出手工方案时,才考虑更完整的代理、缓存、重试和配额管理。
Note: Gemini怎么注册 不是难点,难点是把请求约束成“可验证、可回滚、可重试”。这决定了后面会不会变成随机输出系统。
如何确认已经修好
-
执行一次文本请求,返回非空文本。
-
执行一次图片输入请求,返回能识别出图中主体。
-
把输出喂给 JSON 校验器,不能解析就算失败。
-
连续跑 20 次,成功率应接近 100%,延迟波动在可接受范围内;如果 429 或 403 持续出现,先处理网络和权限,再看业务代码。
References
Google AI Studio Docs
Gemini API Documentation
Python google-genai SDK