章节 01
导读 / 主楼:HireFlow:基于混合检索的智能简历搜索系统
HireFlow 是一个开源的 AI 驱动简历搜索平台,采用 BM25 + 向量搜索的混合检索架构,结合 Reciprocal Rank Fusion 排序算法和 Gemini LLM 重排序,实现高效精准的候选人匹配。
正文
HireFlow 是一个开源的 AI 驱动简历搜索平台,采用 BM25 + 向量搜索的混合检索架构,结合 Reciprocal Rank Fusion 排序算法和 Gemini LLM 重排序,实现高效精准的候选人匹配。
章节 01
HireFlow 是一个开源的 AI 驱动简历搜索平台,采用 BM25 + 向量搜索的混合检索架构,结合 Reciprocal Rank Fusion 排序算法和 Gemini LLM 重排序,实现高效精准的候选人匹配。
章节 02
现代招聘流程中,简历筛选是最耗时却又最关键的环节之一。据统计,大型企业发布的职位平均会收到数百份申请,而 HR 专员往往只有极短的时间来浏览每份简历。这种效率与质量之间的矛盾催生了对智能化搜索工具的需求。
HireFlow 的设计理念是结合传统信息检索技术与现代 AI 能力,打造一套既能理解语义、又能精确匹配的混合搜索系统。项目采用 Python 技术栈,集成了 FastAPI 后端、Streamlit 前端,以及 Pinecone 向量数据库,形成了一套完整的简历搜索解决方案。
章节 03
HireFlow 的技术架构体现了现代 RAG(检索增强生成)系统的典型设计模式。在底层,系统同时维护两种索引:基于 BM25 的关键词索引和基于 Pinecone 的向量索引。这种双轨设计使得搜索既能捕捉精确的关键词匹配,又能理解语义层面的相似性。
向量嵌入采用 HuggingFace 的 all-MiniLM-L6-v2 模型,这是一个轻量级但效果出色的句子嵌入模型,将文本转换为 384 维的向量表示。向量数据库选择 Pinecone 的服务器less 方案,支持余弦相似度计算,能够高效处理大规模向量检索。
在 LLM 层面,项目选用 Google 的 Gemini(gemini-2.5-flash-lite)作为智能解析和重排序引擎。Gemini 负责从 PDF 简历中提取结构化信息(姓名、技能、地点、经验年限),并对搜索结果进行智能评估和重排序。
章节 04
HireFlow 的核心创新在于其混合检索机制。当用户输入搜索查询时,系统会同时在 BM25 索引和向量索引上执行检索,得到两个独立的候选列表。每个列表中的结果都带有各自的相似度分数:BM25 分数反映关键词匹配程度,向量分数反映语义相似度。
接下来的关键步骤是结果融合。HireFlow 采用 Reciprocal Rank Fusion(RRF)算法,这是一种经典的排名融合技术。RRF 的核心思想是:一个文档在多个排序列表中的排名位置比其绝对分数更具信息量。算法公式为:
RRF_score(d) = Σ 1 / (k + rank_i(d))
其中 k 是常数(通常取 60),rank_i(d) 是文档 d 在第 i 个列表中的排名。这种融合方式能够有效结合不同检索策略的优势,同时降低单一策略的偏差影响。
章节 05
简历解析是 HireFlow 的另一大亮点。系统使用 Gemini LLM 从原始 PDF 中提取关键字段,包括候选人的技能列表、地理位置和工作经验年限。这种基于 LLM 的解析方式比传统的正则表达式或规则引擎更加鲁棒,能够处理各种格式的简历布局。
提取出的结构化信息不仅用于展示,更重要的是支持后检索过滤。在混合搜索返回初步结果后,系统可以根据用户指定的额外条件进行精确筛选:必须包含某些技能、位于特定地区、具备最低年限经验等。这种分层过滤策略既保证了搜索的召回率,又确保了最终结果的精确性。
章节 06
对于混合检索返回的前几名候选人,HireFlow 会启动更深度的 LLM 评估流程。ReRanker 模块调用 Gemini 对每个候选人与职位要求的匹配程度进行综合分析,输出四个维度的评估结果:
这种基于 LLM 的重排序显著提升了搜索结果的相关性。当 Gemini 服务不可用时,系统还会自动回退到基于技能重叠的规则评分,保证可用性。
章节 07
为了确保搜索系统的持续优化,HireFlow 内置了基于 RAGAS 框架的质量评估模块。用户可以输入查询和期望的技能列表,系统会自动计算多项 RAG 质量指标:答案相关性、上下文精确度、忠实度和答案正确性。
这种内置的评估能力对于迭代改进搜索策略至关重要。开发者可以通过 A/B 测试不同的嵌入模型、调整 RRF 参数、或优化 LLM 提示词,然后用量化指标验证改进效果。
章节 08
HireFlow 提供了完整的部署文档和便捷的启动流程。用户只需配置 Pinecone 和 Google API 密钥,即可通过简单的命令启动后端服务和前端界面。系统还具备智能启动特性:如果 Pinecone 中已有向量数据,启动时只会重建内存中的 BM25 索引,避免重复计算嵌入。
Streamlit 前端设计简洁直观,分为简历上传和候选人搜索两大模块。搜索界面支持职位标题、职位描述、必需技能、地点和经验年限的多维度输入,结果展示清晰呈现三种分数和 LLM 评估详情。