朱旭个人招聘知识 Agent

面向 HR 和技术面试官的个人知识问答网站,基于 pgvector + DeepSeek 构建 RAG 服务,支持流式对话和引用溯源。

个人项目 2026.07 — 至今 AI 应用开发 / Python 后端,负责产品定位、网站架构、数据模型、RAG 流程、DeepSeek 接入、pgvector 检索、SSE、Docker Compose 和上线排障。 运行中

系统架构

先看图,再看实现细节
朱旭个人招聘知识 Agent 架构示意图
架构示意图,非产品运行截图

项目简介

面向 HR 和技术面试官的个人招聘知识 Agent 网站。通过自然语言对话展示个人项目经历、技能和教育背景,后端使用 FastAPI + DeepSeek LLM,向量检索基于 pgvector,前端支持 SSE 流式输出。

核心能力

  • RAG 问答:从 knowledge/ 中的 Markdown 文档构建 pgvector 向量库,检索相关片段后调用 DeepSeek 生成引用式回答。
  • SSE 流式输出:Token 逐字返回,附带引用来源列表,用户可点击溯源到原文档。
  • 项目展示:独立 Projects 页面,支持每个项目的详情页、技术栈标签和跳转到 AI 深度问答。
  • 反馈闭环question_feedback 表记录用户对回答的评分与原因,为知识库迭代提供依据。
  • 会话记录conversations / messages 表持久化对话上下文,支持多轮追问。

系统架构

  • Web 服务:FastAPI + Jinja2 模板,路由拆分为 pages / chat / projects / feedback / health。
  • 数据层:SQLAlchemy 2 async + Alembic 迁移,PostgreSQL 16 + pgvector 扩展承载向量与业务数据。
  • RAG 流程ingest_knowledge.py 分块 → BGE-small-zh-v1.5 本地 embedding → pgvector 存储;查询时召回 Top-K 片段 → 拼装 prompt → DeepSeek 生成 → 引用回填。
  • 部署:Docker Compose 编排 Postgres、Web、Nginx;Nginx 反向代理并处理 TLS 证书;HTTP 自动重定向至 HTTPS。

目录结构

personal-agent/
├── app/          # FastAPI 应用(API、services、repositories、core)
├── deploy/       # Nginx 配置、TLS 证书
├── knowledge/    # 知识库 Markdown 源文件
├── migrations/   # Alembic 数据库迁移
├── models/       # 本地 embedding 模型(bge-small-zh-v1.5)
├── scripts/      # 知识库导入等运维脚本
├── static/       # 前端静态资源
├── templates/    # Jinja2 HTML 模板
└── tests/        # pytest 测试及评测题集

技术栈

  • 后端:Python 3.12、FastAPI、SQLAlchemy 2(async)、Alembic。
  • LLM:DeepSeek API。
  • 向量检索:pgvector、BGE-small-zh-v1.5 本地 embedding。
  • 数据库:PostgreSQL 16。
  • 前端:Jinja2 模板、Server-Sent Events(SSE)流式输出、Tailwind CSS。
  • 部署:Docker Compose、Nginx(TLS 反向代理)。

项目价值

该项目将招聘场景中的常见问题(HR 面、技术面、项目细节、简历要点)沉淀到可检索的知识库,通过 Agent 形式让访客随时提问、按需深挖,替代静态简历页的单向展示。同时作为 RAG + FastAPI + pgvector 全链路的端到端实践载体。