1、基于 RAG 架构搭建个人知识库系统,参考 NotebookLM 交互模式,实现文档管理与对话式问答
2、支持 PDF、Word、Markdown 等多格式文档解析,实现文本切片、向量化存储与语义检索
3、实现对话引用溯源功能,回答中标注信息来源段落,提升结果可验证性
1. 产品定位
类 NotebookLM 私有知识库:多格式文档上传 → RAG 问答(带引用)→ Studio 输出。支持离线(Ollama 本地)/在线(API)双模式,一套代码用 APP_MODE 切换。
2. 分层结构
前端 React 负责交互;后端 FastAPI 分四层:中间件(TraceID/JWT/限流)→ 意图路由 → 五类 pipeline(闲聊/联网/记忆/聚合统计/RAG 检索)→ 生成;底层是 ChromaDB、SQLite/PG、Redis、Ollama。
3. 核心思路
①双模式靠 LLM/Embedding/TTS/OCR 统一抽象接口;②先意图分类再选流程;③检索多路融合:向量+BM25→RRF→过滤→重排;④关键环节用确定性算法而非 LLM;⑤功能开关化+失败降级;⑥按文档类型套检索模板平衡成本与效果。
4. 模块技术栈
Web:FastAPI+Uvicorn;数据:SQLAlchemy2.0(SQLite/PG);向量:ChromaDB;模型:Ollama qwen3:4b+bge-m3,在线走 OpenAI 兼容 API;重排:BGE-reranker-v2-m3;检索:jieba+BM25;解析:pdfplumber/MinerU/RapidOCR/docx/openpyxl;安全:JWT+bcrypt+slowapi;观测:Prometheus+Grafana+AlertManager+Langfuse;前端 React19+TS+Vite+AntD;部署 Docker Compose+GitHub Actions。