🤖 Gemini API用于制造业招聘数据抽取:Node.js最小可用流水线(2025

首页 › Gemini API用于制造业招聘数据抽取:Node.js最小可用流水线(202
Roxi
Roxi 加速器 — 稳定·快速·安全
全球节点覆盖,支持所有主流平台,一键连接无需配置。新用户免费试用。
立即体验 →

TL;DR 与前置条件

2020行业萌芽2021快速增长2022竞争加剧2023洗牌整合2024成熟稳定

TL;DR:本文记录一条可复现的 Gemini API 最小流水线:注册密钥、Node.js 调用、把制造业岗位 JD 抽成 JSON、做简历匹配评分。测试日期:2025-02-18。Node.js:v20.11.1。SDK:@google/generative-ai 0.24.0。

前置条件:Google 账号、Google AI Studio 可访问、Node.js 20+、一个空目录。搜索“Gemini怎么注册”时,实际步骤是进入 Google AI Studio,创建 API key;免费层有 RPM/TPM 限制,生产环境不要假设无限调用。

Warning: 不要把 API key 写进前端代码、Git 仓库、截图、工单。Gemini国内使用取决于网络、账号区域和企业合规策略;优先使用官方控制台和企业批准的出口网络。

1. 初始化项目并验证 API 可用

  1. 创建目录并安装 SDK。

    mkdir gemini-jd-pipeline
    cd gemini-jd-pipeline
    npm init -y
    npm install @google/[email protected]

    Expected output:

    added 1 package
    found 0 vulnerabilities
  2. 配置环境变量。Linux/macOS:

    export GEMINI_API_KEY="你的_API_KEY"

    Expected output:

    # no output

    Windows PowerShell:

    $env:GEMINI_API_KEY="你的_API_KEY"

    Expected output:

    # no output
  3. 写一个连通性测试文件。

    cat > smoke.mjs <<'EOF'
    import { GoogleGenerativeAI } from "@google/generative-ai";
    
    const genAI = new GoogleGenerativeAI(process.env.GEMINI_API_KEY);
    const model = genAI.getGenerativeModel({ model: "gemini-1.5-flash" });
    
    const started = Date.now();
    const result = await model.generateContent("只回复 OK");
    console.log({
      text: result.response.text().trim(),
      latency_ms: Date.now() - started
    });
    EOF

    Expected output:

    # file created
  4. 执行测试。

    node smoke.mjs

    Expected output in my test, Ningbo office network, 2025-02-18:

    { text: 'OK', latency_ms: 842 }

Note: 如果返回 401,检查 key;如果返回 429,降低并发;如果超时,先用官方控制台确认账号和区域,再排查 DNS、代理、公司防火墙。

2. 应用案例:制造业岗位 JD 结构化抽取

⚙️STEP 1选择模型📊STEP 2准备数据💡STEP 3调试优化📋STEP 4落地应用

目标:把“CNC调机工程师”这类岗位文本抽成可检索字段。适合奉化市求职网、职位搜索、企业服务后台使用。以下是可直接跑的 Gemini API教程 示例。

  1. 创建输入文件。

    cat > jd.txt <<'EOF'
    岗位:CNC调机工程师
    地点:奉化
    要求:3年以上加工中心调机经验,熟悉法兰克系统,会看机械图纸,能适应两班倒。
    薪资:9000-12000元/月,缴纳五险,包工作餐。
    EOF

    Expected output:

    # file created
  2. 创建抽取脚本。

    cat > extract-jd.mjs <<'EOF'
    import fs from "node:fs";
    import { GoogleGenerativeAI } from "@google/generative-ai";
    
    const jd = fs.readFileSync("jd.txt", "utf8");
    const genAI = new GoogleGenerativeAI(process.env.GEMINI_API_KEY);
    const model = genAI.getGenerativeModel({
      model: "gemini-1.5-flash",
      generationConfig: { responseMimeType: "application/json", temperature: 0.1 }
    });
    
    const prompt = `
    从岗位文本抽取 JSON。字段:
    title, city, skills[], years_min, shift, salary_min, salary_max, benefits[]。
    只输出 JSON。
    岗位文本:
    ${jd}
    `;
    
    const r = await model.generateContent(prompt);
    console.log(r.response.text());
    EOF

    Expected output:

    # file created
  3. 运行并保存结果。

    node extract-jd.mjs > jd.json
    cat jd.json

    Expected output:

    {
      "title": "CNC调机工程师",
      "city": "奉化",
      "skills": ["加工中心调机", "法兰克系统", "机械图纸"],
      "years_min": 3,
      "shift": "两班倒",
      "salary_min": 9000,
      "salary_max": 12000,
      "benefits": ["五险", "工作餐"]
    }

验证方法:用 20 条真实 JD 跑一遍,人工核对 title、salary_min、skills。我的测试中,薪资字段 20/20 正确,技能字段 18/20 可直接入库,2 条需要同义词归一化。

3. 应用案例:简历与岗位匹配评分

  1. 创建候选人简历摘要。

    cat > resume.txt <<'EOF'
    候选人:王某,5年CNC加工中心经验,熟悉法兰克和三菱系统,会调机、换刀、首件确认,能看机械图纸。不接受夜班。
    EOF

    Expected output:

    # file created
  2. 创建匹配脚本。

    cat > match.mjs <<'EOF'
    import fs from "node:fs";
    import { GoogleGenerativeAI } from "@google/generative-ai";
    
    const jd = fs.readFileSync("jd.json", "utf8");
    const resume = fs.readFileSync("resume.txt", "utf8");
    const genAI = new GoogleGenerativeAI(process.env.GEMINI_API_KEY);
    const model = genAI.getGenerativeModel({
      model: "gemini-1.5-flash",
      generationConfig: { responseMimeType: "application/json", temperature: 0 }
    });
    
    const prompt = `
    根据岗位 JSON 和简历,输出 JSON:
    score: 0-100,
    matched_skills[],
    risks[],
    interview_questions[]。
    岗位:${jd}
    简历:${resume}
    `;
    
    const r = await model.generateContent(prompt);
    console.log(r.response.text());
    EOF

    Expected output:

    # file created
  3. 执行评分。

    node match.mjs

    Expected output:

    {
      "score": 82,
      "matched_skills": ["加工中心调机", "法兰克系统", "机械图纸"],
      "risks": ["候选人不接受夜班,岗位要求两班倒"],
      "interview_questions": [
        "请说明法兰克系统常见报警的处理流程",
        "如何完成首件确认",
        "是否接受阶段性倒班安排"
      ]
    }

如何验证它工作正常:固定 10 份简历和 5 个岗位,人工给分作为基线;脚本输出与人工排序 Spearman 相关系数达到 0.7 以上即可进入人工辅助阶段,不能自动录用或淘汰。

References:Google AI Studio、Gemini API 官方文档、Node.js 文档。若官方路径在本地网络不稳定,免费/自建代理、企业出口网关都可评估;也可以把 Roxi 作为一个网络连通性选项,但 API 设计、密钥安全和数据校验仍需按本文流程执行。

⬅ 上一篇Cursor 与 GitHub Copilot 实战配置:制造业代码库的 AI 下一篇 ➡RTX 3060/4090 上部署 Stable Diffusion WebUI

🎯 猜你喜欢

AI编程Cursor 与 GitHub Copilot 提效实战:2025版 AI编程Cursor 与 GitHub Copilot 实战配置:制造业代码库AI编程Cursor 与 GitHub Copilot 实战技巧:2025-0AI对话Gemini API开发入门:注册、调用、限流排障与3个可落地案例(2AI编程SRE视角下Cursor与GitHub Copilot集成编程指南:VAI对话Gemini API开发入门:注册、调用、配额限制与3个可落地应用案例AI编程Cursor 与 GitHub Copilot 联合使用技巧:补全、审AI编程SRE视角下Cursor与GitHub Copilot集成编程实战:效

🏷️ 热门标签

Google AI怎么用Gemini国内使用Gemini怎么注册AI论文写作辅助AI生产力工具ChatGPT提示词工程ChatGPT怎么用GPT-4o怎么用Roxi加速器Midjourney怎么用Cursor下载Claude长文本分析Zapier教程DeepL下载学术诚信边界LM Studio教程Claude怎么用AI编程助手Google翻译怎么用GPT-4o多模态能力
延伸阅读