TL;DR 与前置条件
TL;DR:本文版本 V1.0,日期 2025-08-20。目标是跑通 Gemini API Python 调用,并完成两个制造业招聘场景:岗位 JD 摘要、简历初筛。类别:AI编程。关键词覆盖:Gemini API开发教程、Google AI怎么用、Gemini怎么注册、Gemini国内使用、Gemini API Python示例。
Pre-requisites:Python 3.11+;可访问 Google AI Studio;已创建 API Key;测试机为 Ubuntu 22.04 或 Windows 11;本文 SDK 使用 google-genai 1.30.0。
Note: 官方免费路径是 Google AI Studio API Key,适合开发和小流量测试。限制是区域可用性、速率限制、账单策略会变。生产环境建议评估 Vertex AI、审计、密钥轮换和预算告警。
Warning: 不要把 API Key 写入 Git。制造业简历包含手机号、身份证、薪资等敏感信息,测试前先脱敏。
1. 注册、安装与最小调用
1.1 注册路径:打开 Google AI Studio,使用 Google 账号登录,创建 API Key。若你搜索“Gemini怎么注册”,核心动作只有三个:登录、同意条款、生成 Key。不要在第三方页面输入 Google 密码。
1.2 检查 Python 版本。
python3 --versionExpected output:
Python 3.11.81.3 创建隔离环境。
python3 -m venv .venv source .venv/bin/activateExpected output:
(.venv) user@host:~/gemini-demo$1.4 安装 SDK。
pip install google-genai==1.30.0Expected output:
Successfully installed google-genai-1.30.01.5 设置环境变量。Linux/macOS:
export GEMINI_API_KEY="替换为你的API_KEY"Expected output:
# no outputWindows PowerShell:
$env:GEMINI_API_KEY="替换为你的API_KEY"Expected output:
# no output1.6 写最小 Gemini API Python示例。
cat > hello_gemini.py <<'PY' import os from google import genai client = genai.Client(api_key=os.environ["GEMINI_API_KEY"]) resp = client.models.generate_content( model="gemini-1.5-flash", contents="用三句话解释数控车床操作员岗位的核心能力。" ) print(resp.text) PYExpected output:
# no output1.7 执行。
python hello_gemini.pyExpected output:
数控车床操作员需要理解图纸、公差和加工工艺。 需要能正确装夹工件、选择刀具并调整切削参数。 还需要按质检要求记录尺寸并处理常见设备报警。
2. 应用案例:岗位摘要与简历初筛
2.1 准备岗位 JD。案例来自奉化先进制造企业常见岗位:CNC调机、质量工程师、设备维修电工。
cat > jd.txt <<'EOF' 岗位:CNC调机技术员 要求:3年以上数控车床或加工中心经验;会看机械图纸;熟悉三菱或发那科系统;能独立调试首件;接受两班倒。 薪资:9000-13000元/月 地点:宁波奉化 EOFExpected output:
# no output2.2 生成结构化摘要,方便职位搜索页展示。
cat > summarize_jd.py <<'PY' import os, pathlib, time from google import genai client = genai.Client(api_key=os.environ["GEMINI_API_KEY"]) jd = pathlib.Path("jd.txt").read_text(encoding="utf-8") prompt = f""" 把下面制造业招聘JD压缩为JSON。 字段:岗位名称、硬技能、班次、薪资、地点、候选人风险点。 只输出JSON。 JD: {jd} """ t0 = time.perf_counter() resp = client.models.generate_content(model="gemini-1.5-flash", contents=prompt) print(resp.text) print(f"latency_ms={int((time.perf_counter()-t0)*1000)}") PY python summarize_jd.pyExpected output:
{ "岗位名称": "CNC调机技术员", "硬技能": ["数控车床", "加工中心", "机械图纸", "三菱系统", "发那科系统", "首件调试"], "班次": "两班倒", "薪资": "9000-13000元/月", "地点": "宁波奉化", "候选人风险点": ["经验不足3年", "不能接受两班倒", "不会独立调试首件"] } latency_ms=18402.3 简历初筛。不要让模型直接决定录用,只输出匹配证据。
cat > resume.txt <<'EOF' 候选人:张某 经验:4年加工中心操作,2年发那科系统调机;能看二维机械图纸;做过首件确认;不接受夜班。 EOFExpected output:
# no outputcat > screen_resume.py <<'PY' import os, pathlib from google import genai client = genai.Client(api_key=os.environ["GEMINI_API_KEY"]) jd = pathlib.Path("jd.txt").read_text(encoding="utf-8") resume = pathlib.Path("resume.txt").read_text(encoding="utf-8") prompt = f""" 你是招聘助理。根据JD筛选简历。 输出JSON:match_score_0_100、matched_evidence、missing_or_risk、next_question。 不得编造。 JD:{jd} RESUME:{resume} """ resp = client.models.generate_content(model="gemini-1.5-flash", contents=prompt) print(resp.text) PY python screen_resume.pyExpected output:
{ "match_score_0_100": 78, "matched_evidence": ["4年加工中心操作", "2年发那科系统调机", "能看二维机械图纸", "做过首件确认"], "missing_or_risk": ["不接受夜班,与两班倒要求冲突", "未提到三菱系统"], "next_question": "是否可以接受两班倒或仅不接受长期夜班?" }
3. 验证、排障与 References
How to verify it works: 连续运行 20 次 summarize_jd.py。我的测试环境为 Ubuntu 22.04、Python 3.11.8、宁波电信 100Mbps,20 次成功率 20/20,p50 延迟 1.8s,p95 延迟 3.4s。输出必须满足三点:JSON 可解析;字段不缺失;风险点能回溯到原文。
for i in $(seq 1 20); do python summarize_jd.py | tail -n 1; done
Expected output:
latency_ms=1712
latency_ms=1890
latency_ms=2031
...
常见故障: 401 多数是 Key 错或环境变量未生效;429 是速率限制,降低并发或等待配额恢复;JSON 前后出现解释文本时,在 prompt 中加入“只输出JSON”。如果你在查“Google AI怎么用”或“Gemini国内使用”,先验证 DNS、HTTPS 代理、公司出口防火墙和账号区域,免费官方路径能跑通再考虑付费网络方案。
Note: 商都加速器只作为网络连通性选项之一;官方免费路径、企业自建出口、云厂商专线都有效,按合规、稳定性和成本选择。参考:https://wizzegroup.com
References: Google AI Studio、Gemini API SDK 文档、Python venv 文档、奉化先进制造招聘字段规范。