技术架构文档知识库模块设计
知识库模块设计
企业级 AI 知识库 (Knowledge Base) 建设方案
1. 产品功能清单 (Feature List)
本模块旨在为数字员工提供“长期记忆”和“专业知识”,使其在内容创作、营销问答中具备企业私有领域的上下文。
1.1 知识库管理 (Knowledge Repo Management)
- 知识库列表: 展示所有已创建的知识库(如“产品手册”、“营销话术”、“竞品资料”)。
- 新建/编辑/删除: 支持自定义知识库名称、描述和图标。
- 状态概览: 首页直接显示每个库包含的文档数量、文档总大小。
1.2 文档资产管理 (Document Asset)
- 多格式上传: 支持
.pdf,.docx,.txt,.md文件拖拽上传(单文件最大限制 50MB)。 - 网页数据摄入 (Web Crawler): [进阶] 输入 URL(如官网产品页),系统自动抓取并解析内容入库。
- 解析状态监控:
排队中、解析中、索引完成、失败(需展示失败原因)。
- 文档切片管理: [后台隐式] 查看文档被切分成了多少个片段 (Chunks)。
1.3 智能索引与检索 (Indexing & Retrieval)
- 自动清洗 (ETL): 去除文档中的乱码、多余空行。
- 语义向量化: 使用 Embedding 模型将文本转为向量存储。
- 混合检索: 结合关键词匹配与语义相似度(Cosine Similarity)。
1.4 知识库调试工作台 (Playground)
- 库内对话测试: 在详情页右侧提供聊天窗口,仅基于当前知识库回答问题。
- 引用溯源: AI 回答问题时,必须高亮显示参考了哪个文档的哪一段(Source verification)。
- 置信度阈值: 显示召回片段的相似度分数(如:相似度 0.85)。
2. 技术架构与解决方案 (Technical Architecture)
2.1 核心架构图
2.2 数据库设计 (PostgreSQL + pgvector)
利用 pgvector 扩展,直接在 PG 中存储向量。
实体关系模型 (ERD):
-
knowledge_bases(知识库表)id: PKname: 名称description: 描述created_by: 关联用户 ID
-
knowledge_docs(原始文档表)id: PKkb_id: FK -> knowledge_bases.idfilename: 文件名file_path: 物理存储路径status: (pending/parsing/indexed/failed)meta_info: JSON (页数, 作者等)
-
knowledge_chunks(向量切片表) -> 核心 RAG 表id: PKdoc_id: FK -> knowledge_docs.idcontent: 切分后的文本内容 (Text)embedding: 向量字段 (vector(1536)- 对应 OpenAI Ada-002)chunk_index: 序号
2.3 关键技术栈
- 前端: Next.js 14 (App Router)
- 后端: FastAPI (现有)
- ORM: SQLAlchemy + AsyncPG
- RAG 框架: LangChain Community (用于 Loaders) + LangChain Core
- 向量扩展: PostgreSQL
pgvector(无需额外部署 ChromaDB/Milvus,大大降低运维成本)