企业大模型知识库
文档入库全流程 核心数据流

从文档上传到知识可用的完整处理链路

01

📄 文档上传

管理员在后台上传企业文档,支持 Word、PDF、Excel、Markdown、纯文本等格式。原始文件存储到 MinIO 对象存储。

MinIO S3多格式支持
02

🔄 格式解析

系统自动识别文档格式,调用对应解析器提取纯文本内容。Word/Excel 使用 Apache POI,PDF 使用 PDFBox,保留段落、表格、标题等结构信息。

Apache POIPDFBoxResourceLoaderFactory
03

✂ 智能分块

将解析后的长文本按策略切分为 512~1024 字符的文本块(Chunk),相邻块保留 64 字符重叠区域确保语义连续性。

按字符分块重叠窗口标题元信息
04
双轨并行

🎫 轨道A:向量索引

调用 bge-m3 模型将每个文本块转为 1024 维向量,存入 Weaviate 向量数据库,建立语义索引。

bge-m3Weaviate

🌐 轨道B:图谱抽取

调用 LLM 按图谱配置的实体/关系类型,从文本块中抽取实体和关系,写入 Neo4j 图数据库。

qwen3.5-35bNeo4j
05

✅ 知识就绪

文档处理完成后状态变为 Ready。用户可通过 RAG 问答获取文档中的知识,也可通过图谱浏览查看实体关系网络。

RAG 问答图谱浏览关系查询
各格式文档处理路径 解析策略

不同格式文档的专用解析管线

📄
.docx
Apache POI
段落 + 表格
保留标题层级
分块 → 向量化
📜
.pdf
PDFBox
文字层提取
需有文字层
分块 → 向量化
📊
.xlsx
Apache POI
按行提取
列名为标题
分块 → 向量化
📝
.md
标题分节
按 # 层级拆分
保留结构
分块 → 向量化
📑
.txt
直接读取
纯文本解析
最简处理
分块 → 向量化
知识图谱增量进化 核心设计

图谱随文档上传自动增长,不重建全量

Day 1

上传《组织架构表》
一车间
生产部
张伟
30
节点
38
关系

Day 5

上传《设备台账》
一车间
生产部
张伟
反应釜
萤石
75
节点
120
关系

Day 30

上传更多文档...
一车间
生产部
张伟
反应釜
萤石
安检
HF工艺
200+
节点
500+
关系
🔗 增量更新
只处理新文档,不重建全量
🔍 来源追溯
每个实体记录来源文档
📈 置信度提升
多文档佐证的关系权重更高
实体对齐(去重合并) 关键能力

同一事物在不同文档中的多种称呼 → 统一为一个节点

不同文档中的称呼
📄 "一车间" 组织架构表.xlsx
📄 "氟化氢车间" 工艺流程.docx
📄 "HF车间" 安全规程.pdf
📄 "1车间" 设备台账.xlsx
三层对齐
一车间
Department
全称:氟化氢车间
别名:HF车间, 1车间
职能:HF 生产与储存
来源:4 篇文档
📖 第一层:术语词典
知识库配置的术语别名表,精确匹配已知的同义词映射。
🧠 第二层:LLM 判断
新实体入库前,LLM 对比已有同类型实体,判断是否为同一事物。
👤 第三层:人工审核
管理员在 Neo4j Browser 或管理后台中手动合并、修正实体。
用户问答数据流 运行时

用户提问 → 语义检索 → LLM 生成 → 带来源回答

💬
用户提问

自然语言输入问题

🧠
问题向量化

bge-m3 转为向量

🔎
语义检索

Weaviate Top-K

📝
上下文组装

Prompt + 文档片段

🤖
LLM 生成

qwen3.5-35b 推理

💬
流式回答

带来源标注输出