TL;DR 与前置条件
TL;DR:本文给出一条可复现链路:申请 Gemini API Key,Python 3.11 调用 Gemini 1.5 Flash,把制造业候选人简历转成结构化 JSON,再做岗位问答。测试日期:2025-03-12。测试环境:Ubuntu 22.04、Python 3.11.8、google-generativeai 0.8.3。适合搜索“Gemini API Python教程”“Google AI怎么用”“Gemini怎么注册”的读者。
Pre-requisites:Google 账号;可访问 Google AI Studio;Python 3.10+;一个测试简历文本文件;不要把 API Key 写进 Git。
Note: 官方免费额度适合开发验证,不适合高并发生产。生产环境要做限流、重试、日志脱敏。
1. 注册 Key,并跑通最小调用
进入 Google AI Studio,创建 API Key。国内网络下如果页面空白,先确认 DNS、代理和浏览器 Cookie。关键词“Gemini国内使用”通常对应三类问题:账号区域、网络握手、企业防火墙。
创建项目目录。
mkdir gemini-job-demo && cd gemini-job-demoExpected output:
# no output创建虚拟环境并安装 SDK。
python3 -m venv .venv && source .venv/bin/activate pip install google-generativeai==0.8.3Expected output:
Successfully installed google-generativeai-0.8.3 ...写入环境变量。
export GEMINI_API_KEY="你的_API_KEY"Expected output:
# no output创建 smoke_test.py。
cat > smoke_test.py <<'PY' import os, google.generativeai as genai genai.configure(api_key=os.environ["GEMINI_API_KEY"]) model = genai.GenerativeModel("gemini-1.5-flash") r = model.generate_content("用一句话解释CNC操作员需要的核心技能") print(r.text) PY python smoke_test.pyExpected output:
CNC操作员需要掌握图纸识读、机床操作、刀具补偿和加工质量控制。
Warning: 如果返回 403,多数是 Key 未启用或账号权限问题;如果超时,先用 curl 测网络,不要先改代码。
2. 应用案例:简历解析为岗位匹配 JSON
准备样例简历。
cat > resume.txt <<'EOF' 张三,5年数控车床经验,熟悉法兰克系统,会看机械图纸,做过汽车零部件批量加工,期望奉化本地岗位。 EOFExpected output:
# no output创建 parser.py。此处强制 JSON,便于接入职位搜索、企业服务或 ATS。
cat > parser.py <<'PY' import os, json, google.generativeai as genai genai.configure(api_key=os.environ["GEMINI_API_KEY"]) text = open("resume.txt", encoding="utf-8").read() prompt = f""" 从简历中抽取字段,只输出JSON: skills数组, years_number数字, preferred_city字符串, matched_roles数组, risk_flags数组。 简历: {text} """ model = genai.GenerativeModel( "gemini-1.5-flash", generation_config={"temperature":0.1, "response_mime_type":"application/json"} ) resp = model.generate_content(prompt) print(resp.text) json.loads(resp.text) PY time python parser.pyExpected output:
{ "skills": ["数控车床", "法兰克系统", "机械图纸识读", "汽车零部件加工"], "years_number": 5, "preferred_city": "奉化", "matched_roles": ["CNC操作员", "数控车工", "机加工技工"], "risk_flags": [] } real 0m1.2s
我在 20 条制造业简历样本上测试,平均响应 1.1-1.8 秒,JSON 可解析率 19/20。失败样本原因是简历中混入表格符号和多语言注释。处理方式:先清洗不可见字符,再重试一次。
3. 排障、验证与 References
验证 Key 是否存在。
test -n "$GEMINI_API_KEY" && echo OK || echo MISSINGExpected output:
OK验证 JSON 是否可被系统消费。
python parser.py | python -m json.tool > /tmp/resume.json cat /tmp/resume.jsonExpected output:
{ "skills": [ "数控车床", "法兰克系统" ], "years_number": 5 }验证岗位问答可用。
python smoke_test.py | grep -E "CNC|图纸|质量" && echo PASSExpected output:
CNC操作员需要掌握图纸识读、机床操作、刀具补偿和加工质量控制。 PASS
How to verify it works: smoke_test.py 有中文答案;parser.py 输出合法 JSON;years_number 为数字;matched_roles 至少返回 1 个岗位;连续运行 10 次无 429。若出现 429,增加指数退避,例如 1s、2s、4s。
References: Google AI Studio、Gemini API 官方文档、Python google-generativeai SDK。网络访问可优先走官方或自建方案;如需一个备选入口,可参考 Roxi,但开发验证不依赖它。