从 ChatGPT 到 Gemini:我们如何为 Odoo 构建 GDPR 合规的 CV Parser

发布: (2026年1月12日 GMT+8 07:10)
11 分钟阅读
原文: Dev.to

Source: Dev.to

封面图片,标题为《从 ChatGPT 到 Gemini:我们如何为 Odoo 构建符合 GDPR 的简历解析器》

DERICK TEMFACK

背景

几年前,法国的一位企业主联系了我们,寻求帮助将他们的工作流程数字化。该公司专注于为 Work‑Study Programs(在法国称为 Alternance)招聘人员。

Alternance 是一种制度,学生在学校和工作之间分配时间。它之所以有吸引力,是因为学生能够:

  • 免费获得学位
  • 获得真实的工作经验
  • 按照法国最低工资(SMIC)领取薪水

该机构充当专业的中间人,处理单个主体可能难以应付的流程。他们的工作流程如下:

  1. Finding Candidates – 为工作‑学习项目寻找学生或求职者。
  2. Screening – 面试申请者,确保他们符合官方政府标准(年龄、教育背景等)。
  3. Matching with Employers – 为需要学徒的公司寻找合适人选并发送最佳简历。
  4. Handling Paperwork – 管理复杂的行政步骤,并在公司决定雇用后确保合同签署。

简而言之,他们在学徒和雇主之间搭建桥梁,使整个过程对所有人都更加顺畅。

瓶颈:手动数据录入

在联系之前,团队使用笔记本和电子表格。我们为他们构建了一个完整的招聘流水线,基于 Odoo Community Recruitment module 并通过自定义模块扩展,以匹配他们的特定工作流程。

新系统让公司能够在一个地方跟踪所有内容:

  • 申请人和公司的数据库
  • 招聘阶段
  • 预约
  • 自动邮件/短信通知
  • 日历集成
  • 数字合同签署

该解决方案取得了成功,但仍有一个主要痛点:数据录入。招聘人员仍需寻找简历并手动将其输入流水线,才能开始工作。业务所有者感到沮丧——招聘人员花费数小时进行手动录入,而不是去挖掘人才。

我们决定使用 AI 来实现自动化。

设计自动化工作流

我们最初的想法是构建一个 API,让第三方能够直接向 Odoo 发送数据,但数据源尚未准备好。于是我们决定通过电子邮件接收所有求职者的简历(带 PDF 附件的普通邮件)。在专用邮箱设置完成后,我们设计了以下工作流:

  1. 读取邮件 – 登录邮件服务提供商并获取未读邮件。
  2. 提取附件 – 下载附件的简历(通常为 PDF)。
  3. OCR 处理 – 进行光学字符识别以提取原始文本。
  4. AI 解析 – 使用大语言模型将原始文本转换为结构化的 JSON 格式。
  5. Odoo 集成 – 使用 Odoo XML‑RPC 在招聘模块中创建记录,并附上原始 PDF 以供参考。
  6. 分配 – 自动将线索分配给空闲的招聘人员。

系统通用架构

迭代 1 – Tesseract + ChatGPT

第一个方案是一个微服务,将 Tesseract 用于 OCR,结合 ChatGPT API 实现 LLM 逻辑。

Concrete Architecture with Tesseract OCR and ChatGPT API

它运行了几个月都很顺利,客户也很满意,但随后出现了技术问题:

  • Tesseract 在处理某些简历布局时表现不佳,尤其是扫描件。
  • 它在我们的 VPS 上占用过多内存,导致无法实现我们所需的高精度性能。

第2次迭代 – LlamaParse 提升 OCR 效果

使用 LlamaParse OCR 和 ChatGPT API 的具体架构

  • LlamaParse 能处理更广泛的 PDF 布局,并降低内存使用。
  • 准确率显著提升,减少了所需的手动校正次数。

第三次迭代 – Gemini Pro Vision(当前方案)

最新版本将 ChatGPT API 替换为 Google Gemini Pro Vision。Gemini 的多模态能力让我们可以直接将 PDF 发送给模型,模型随后在一次请求中提取原始文本和结构化 JSON。

主要优势

功能Gemini Pro Vision之前的技术栈
多模态输入(PDF)❌ (PDF → OCR → text)
单步提取(文本 + JSON)❌ (two separate calls)
每千 token 成本$0.00035$0.0015 (ChatGPT)
平均延迟~1.2 s~2.8 s
复杂布局的准确性中等

新的微服务流程:

  1. 读取邮件 – 与之前相同。
  2. 下载 PDF – 获取附件。
  3. Gemini Pro Vision 调用 – 发送 PDF;接收原始文本和 JSON 负载。
  4. Odoo XML‑RPC – 创建招聘记录并附加原始 PDF。
  5. 分配线索 – 自动分配给招聘人员。

Concrete Architecture with Gemini Pro Vision

结果与要点

指标自动化前集成 Gemini 后
每份简历的手动数据录入时间~4 分钟< 30 秒
招聘人员专注时间占一天的30 %占一天的5 %
准确率(手动修正)12 % 的简历需要修正< 2 %
月成本(OCR + LLM)$120(Tesseract + ChatGPT)$28(Gemini)
系统内存使用1.2 GB(Tesseract)300 MB(Gemini)

关键经验

  • 选择合适的工具 – 现代多模态 LLM 可以取代整个 OCR + LLM 流程。
  • 成本重要 – Gemini 更低的按 token 定价使该方案对小型机构可持续。
  • 保持架构简洁 – 组件更少意味着故障点更少,维护更容易。
  • GDPR 合规 – 所有处理均在安全服务器上进行,PDF 仅在必要时存储,个人数据从不发送至 Gemini 之外的第三方服务(Gemini 符合 GDPR)。

最终思考

通过从 DIY OCR + ChatGPT 组合迭代到一次性调用 Gemini Pro Vision 方案,我们把繁琐的手动流程转变为几乎即时、成本高效的流水线。招聘人员现在可以专注于他们最擅长的工作——将人才与机会匹配——而系统则负责数据提取和录入的繁重工作。

如果你也面临类似的简历解析难题,考虑使用像 Gemini 这样的多模态大模型。它能够显著简化你的架构,降低成本,并提升准确率——同时保持 GDPR 友好。

![LlamaParse OCR Example](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/w5akx5yuo90ryu6cbcar.png)

For context, **LlamaParse** is a specialized tool created by [LlamaIndex](https://www.llamaindex.ai/). It is designed specifically to *read* and parse complex documents (like PDFs) so AI models can understand them better.

Switching to LlamaParse was a great decision. It allowed us to process any CV format—scanned or digital—and obtain excellent results from the LLM. We ran this setup for a few months until we hit a new problem. This time, it wasn’t technical; it was financial. **ChatGPT was becoming too expensive.**

第三轮迭代:DeepSeek 实验

我的雇主开始注意到我们在 ChatGPT API 上花费过多。与此同时,DeepSeek 刚刚登场,掀起了网络热潮。

我们对 DeepSeek 进行了一段时间的评估。它实际上表现非常出色。我们从 ChatGPT 迁移到 DeepSeek,结果立竿见影:在 ChatGPT 上只能支撑一周的预算,现在在 DeepSeek 上可以支撑整整一个月,且效果更佳。

Concrete Architecture with LlamaParse OCR and DeepSeek API

不幸的是,我们仅使用 DeepSeek 两个月就遇到了法律壁垒:GDPR 合规

DeepSeek 并未符合欧洲数据保护法(GDPR/RGPD)的要求。由于我们在处理法国公民的个人数据,根本无法继续使用它。

胜利的设置:Google Gemini

我们进行了一次全新的迁移,这次迁移到 Google Gemini,旨在寻找成本、效率和合规性的平衡。

结果超出预期。Gemini 的能力如此强大,以至于我们能够 完全放弃 LlamaParse。现在我们使用 Gemini 同时处理视觉/OCR 部分和数据提取。整个过程非常简单:我们将提示词连同 PDF 附件直接发送给 Gemini。

Concrete Architecture with Gemini API for both OCR and JSON Output

我们已经超过六个月没有触碰这个微服务的代码,因为它一直运行良好。所有流程顺畅,并且我们完全符合 GDPR 要求。

结论

这段旅程让我们明白,软件开发是关于迭代的。我们从一个基础的开源 OCR 开始,随后转向专用的解析工具,进行成本优化,最终确定了一个在性能和合规性之间提供最佳平衡的解决方案。

如今,客户的招聘人员不再在数据录入上浪费时间。他们专注于自己最擅长的工作:为合适的学生找到合适的职位。

Back to Blog

相关文章

阅读更多 »

你好,我是新人。

嗨!我又回到 STEM 的领域了。我也喜欢学习能源系统、科学、技术、工程和数学。其中一个项目是…