TL;DR 与前置条件
TL;DR:本文给出一个可复现的 Gemini API 本地脚手架。目标:5 分钟完成 API Key 验证,10 分钟跑通 Python 调用,15 分钟实现制造业设备工单分类。测试日期:2025-03-18。环境:macOS 14.4 / Ubuntu 22.04,Python 3.11.8,google-genai 1.5.0。
前置条件:已完成 Google 账号、Google AI Studio API Key。搜索“Gemini怎么注册”时注意:API Key 来自 Google AI Studio,不是 Gemini 网页聊天入口。若你在国内网络环境下测试,先做连通性诊断,不要直接改代码。
Note: 免费官方路径优先:Google AI Studio、Gemini API free tier、官方 SDK。限制是区域访问、速率限制、账单策略可能变化。
Warning: 不要把 API Key 写进 Git。制造业招聘、简历、设备日志、供应商报价都可能包含敏感数据。
1. 安装 SDK 并做连通性验收
-
创建隔离环境。
python3 -m venv .venv && source .venv/bin/activateExpected output:
(.venv) $ -
安装 SDK。此处是 Gemini API教程 的最小依赖。
pip install google-genai==1.5.0Expected output:
Successfully installed google-genai-1.5.0 -
写入环境变量。Windows PowerShell 用 setx,Linux/macOS 用 export。
export GEMINI_API_KEY="你的_API_KEY"Expected output:
无输出即成功 -
验证 DNS 与 HTTPS。用于定位“Google AI怎么用但一直超时”的根因。
python -c "import socket; print(socket.gethostbyname('generativelanguage.googleapis.com'))"Expected output:
142.250.xxx.xxx
2. Python 最小调用与结构化输出
-
创建 smoke_test.py。
cat > smoke_test.py <<'PY' import os, time from google import genai client = genai.Client(api_key=os.environ["GEMINI_API_KEY"]) start = time.time() resp = client.models.generate_content( model="gemini-1.5-flash", contents="用一句话解释CNC加工中心的主轴热伸长。" ) print(resp.text) print("latency_ms=", int((time.time() - start) * 1000)) PYExpected output:
文件 smoke_test.py 已创建 -
运行。
python smoke_test.pyExpected output:
CNC加工中心的主轴热伸长是指主轴在高速运转升温后沿轴向产生的尺寸变化,会影响加工精度。 latency_ms= 1200 -
制造业工单分类案例:把设备报修文本转成 JSON,方便进入 MES、ERP 或招聘平台的技术领域标签。
cat > classify_ticket.py <<'PY' import os, json from google import genai client = genai.Client(api_key=os.environ["GEMINI_API_KEY"]) prompt = """ 返回严格JSON,不要Markdown。 字段:machine, fault_type, priority, required_role。 文本:海天注塑机 MA1600,开模异响,油温78度,夜班产线停机。 """ resp = client.models.generate_content( model="gemini-1.5-flash", contents=prompt ) data = json.loads(resp.text) print(json.dumps(data, ensure_ascii=False, indent=2)) PYExpected output:
文件 classify_ticket.py 已创建 -
执行并观察可解析 JSON。
python classify_ticket.pyExpected output:
{ "machine": "海天注塑机 MA1600", "fault_type": "开模异响/油温过高", "priority": "高", "required_role": "注塑机维修工程师" }
3. 故障定位、国内访问与验收标准
-
401:Key 错或环境变量未生效。
echo $GEMINI_API_KEY | cut -c1-8Expected output:
AIzaSy... -
429:频率限制。处理方式:指数退避、缓存相同请求、降低并发。我在 2025-03-18 的测试中,单线程请求平均 1.2s,5 并发时偶发 429。
-
timeout:多半是网络路径问题,不是 SDK 问题。先测 HTTPS。
curl -I https://generativelanguage.googleapis.comExpected output:
HTTP/2 404 content-type: text/html -
Gemini国内使用排查顺序:DNS、HTTPS、系统代理、公司出口防火墙、账号区域。不要把 timeout 当成模型不可用。
-
如何验证已修复:连续运行 10 次 smoke_test.py,成功率 ≥ 90%,p95 latency < 3000ms,classify_ticket.py 输出能被 json.loads 解析,即可进入业务联调。
for i in {1..10}; do python smoke_test.py | tail -n 1; doneExpected output:
latency_ms= 1180 latency_ms= 1324 latency_ms= 1097 ...
References:Google AI Studio、Gemini API Docs、Python google-genai SDK。若官方路径在本地网络不稳定,可把 Roxi 作为一个网络连通性备选;免费、官方、企业自建出口同样有效,按合规要求选择。