← 返回全部项目

个人求职知识库问答系统

面向个人求职资料构建的代码型 RAG 知识库问答系统,将教育经历、项目证据、岗位资料与复盘记录统一组织,并通过分层索引、增量更新、来源引用和隐私隔离,让公开问答保持可追溯、可维护且不越过个人资料边界。

项目背景

个人求职过程中会持续产生教育经历、项目材料、技能证据、岗位信息、面试准备和阶段复盘等内容。它们原本分散在不同的 Markdown 文档中,既不便于统一维护,也难以在需要时快速找到可靠依据。

这个项目将这些资料整理为可持续更新的个人知识库,并在此基础上构建检索与问答能力。系统不仅需要回答“我做过什么”,还要能够指出答案来自哪些资料、识别证据不足的情况,并保证个人网站只能访问经过审核的公开内容。

问题与目标

  • 统一资料结构:解析带有 Front Matter 的 Markdown 文档,保留标题层级、来源、核实状态和隐私等级等信息,减少资料长期积累后的混乱。
  • 建立访问边界:按照 private、internal、public 三种范围分别组织索引,使私人资料、内部求职材料和网站公开内容进入不同的检索空间。
  • 支持持续更新:同时提供全量建库和增量更新能力,识别新增、修改、元数据变化与删除,避免每次内容调整都从头处理全部资料。
  • 提升回答可信度:要求回答基于检索证据并返回来源;当资料无法支持结论时明确提示证据不足,不用模型自由补全个人经历。
  • 服务网站展示:为个人网站提供独立的公开问答入口,让访问者能够在不接触私人知识库的前提下了解公开履历与项目信息。

个人职责

我负责从需求梳理到本地验收的完整实现过程,包括设计知识文档结构与元数据规范、划分三类隐私范围、实现 Markdown 扫描与解析、组织索引构建流程,并连接检索、问答和来源引用链路。

在工程验证方面,我持续检查 Manifest 与 Qdrant 中索引状态的一致性,补充全量和增量更新场景,并通过公开范围测试确认网站问答无法检索 private 或 internal 内容。同时整理经过审核的公开候选资料,使知识库内容可以安全地接入个人网站。

方案与技术栈

  • FastAPI:提供服务健康检查、知识库预览、全量与增量入库、检索、问答以及公开问答接口,并为本地演示页面提供统一后端。
  • LangChain:连接文档分块、Embedding、向量检索和对话模型,让通用 RAG 组件与项目自定义的隐私和更新规则协同工作。
  • Qdrant:分别保存 private、internal、public 三类知识分块向量,并根据访问范围选择对应 Collection,避免只在回答生成阶段做隐私过滤。
  • 通义千问 text-embedding-v4:为知识分块生成 1536 维语义向量,用于真实模型模式下的相似度检索。
  • DeepSeek:根据检索得到的证据组织回答,并与引用、证据不足拒答和公开范围提示共同构成回答链路。
  • Manifest V2:按文档和访问范围记录内容哈希、元数据状态及分块索引信息,用于判断新增、修改、隐私变化和删除,并保持增量更新可追踪。
  • 本地演示模式:提供不依赖 API Key 的确定性 Fake Embedding 与 FakeChatModel,用于验证工程链路;真实模型模式则用于检查实际检索和生成效果,两者的验收目标明确区分。

成果与证据

  • 实现知识库目录扫描、Front Matter 校验、Markdown 解析和按标题层级保留上下文的结构化分块。
  • 实现全量建库与增量更新流程,能够处理新增、内容修改、元数据变化和删除,并记录各访问范围的处理结果。
  • 建立 private、internal、public 三套索引及对应路由规则,使公开接口只能使用 public Collection。
  • 完成基于检索证据的回答与来源引用,并在没有有效命中或证据无法支持结论时返回证据不足状态。
  • 提供本地演示页面与自动验证脚本,可检查服务状态、知识库预览、索引统计、搜索、引用问答和无变化增量更新。
  • 完成真实模型本地运行和公开范围隐私验收,验证涉及私人信息的问题不会通过 public 检索返回 private 或 internal 文档引用。
  • 将经过审核的公开资料接入个人网站问答入口,同时保留本地知识库与网站公开内容之间的边界。

复盘

这个项目让我认识到,个人知识库并不是把文档放进向量数据库就结束了。资料是否经过核实、更新后能否同步、引用是否可追溯、不同访问者能看到什么,都会直接影响系统是否可信。相比单独追求一次回答效果,稳定的资料治理和安全边界更接近一个可以长期使用的交付成果。

工程上最需要持续关注的是索引状态与真实数据的一致性,因此项目引入 Manifest V2 管理不同访问范围的更新状态,并把全量、增量、隐私变化和删除纳入验证流程。下一阶段仍需要基于固定测试集补充真实模型的 Recall、拒答质量和回答稳定性评估;在这些数据完成复核之前,不展示未经验证的准确率指标。

公开链接

当前项目以本地可运行系统、自动验证脚本、测试记录和个人网站中的公开问答入口作为阶段性成果。完整知识库包含私人及内部求职资料,因此不会直接对外发布。

独立在线演示和公开代码仓库仍在整理中,后续只有在完成密钥、日志、测试数据和隐私配置检查后才会补充正式链接;在此之前不提供无法复核或可能暴露私人资料的占位地址。