知识库介绍
BladeX AI 知识库模块介绍
模块概述
BladeX AI知识库模块是一个企业级的文档处理和向量化引擎,支持多种文档格式的智能解析、分段处理和向量化存储。通过先进的文档处理技术和多种分段策略,为RAG检索增强生成提供高质量的知识基础。
核心特性
- 多格式支持:支持PDF、Word、Excel、CSV、TXT等多种文档格式
- 智能分段:提供6种分段策略,包括语义分段、固定长度、符号分段等
- 异步处理:支持大文件的异步处理和进度跟踪
- 向量化集成:与RAG模块深度集成,支持自动向量化
- 进度监控:完善的处理进度跟踪和状态管理
- 扩展架构:开放的文档处理器和分段器架构,支持自定义扩展
一、架构设计概览
1.1 整体架构图
1.2 核心组件说明
核心组件
知识库模块的核心组件包括文档处理引擎、分段处理引擎、进度跟踪系统和异步处理框架。
文档处理引擎:
FileHandlerFactory
:文档处理器工厂,管理所有文档类型的处理器FileHandler
:文档处理器接口,定义统一的文档处理规范- 支持PDF、Word、Excel、CSV、TXT等主流格式
分段处理引擎:
FileSegmentFactory
:分段器工厂,管理所有分段策略FileSegment
:分段器接口,定义统一的分段处理规范- 提供6种分段策略满足不同场景需求
进度跟踪系统:
TaskProgressTrack
:任务进度跟踪实现FileProgressTrack
:文件处理进度接口- 支持实时进度更新和状态监控
二、文档处理体系
2.1 文档处理器架构
处理器设计
文档处理器采用工厂模式设计,支持多种文档格式的统一处理接口。每种文档类型都有专门的处理器实现。
支持的文档格式:
- PDF文档:支持文本提取、图片识别、表格解析
- Word文档:支持.doc/.docx格式,保持格式结构
- Excel文档:支持.xls/.xlsx格式,智能表格处理
- CSV文档:支持多种分隔符,自动编码检测
- 文本文档:支持.txt/.md等纯文本格式
- 默认处理器:兜底处理未知格式文件
2.2 文档处理流程
三、分段处理体系
3.1 分段策略架构
分段策略
知识库模块提供6种分段策略,每种策略适用于不同的文档类型和应用场景。
分段策略类型:
语义分段(SEMANTIC)
- 基于语义边界进行分段
- 识别标题、章节、主题变化
- 适用于结构化文档
固定长度分段(FIXED_LENGTH)
- 按固定字符长度分段
- 在句子边界智能截断
- 适用于长文本处理
符号分段(SYMBOL)
- 基于指定分隔符分段
- 支持自定义分段符号
- 适用于特定格式文档
结构化分段(STRUCTURED)
- 处理JSON格式的结构化数据
- 适用于CSV等表格数据
- 保持数据结构完整性
LLM语义分段(LLM_SEMANTIC)
- 使用大模型进行智能分段
- 基于语义理解优化分段
- 适用于复杂文档结构
自定义分段
- 支持开发者自定义分段逻辑
- 扩展性强,满足特殊需求
3.2 分段处理流程
四、异步处理机制
4.1 异步处理架构
异步设计
知识库模块采用异步处理架构,支持大文件的后台处理,避免阻塞用户操作。
异步处理组件:
AiKnowledgeAssetsSegmentAsyncService
:异步分段处理服务AiKnowledgeAssetsSegmentVectorizationService
:异步向量化服务TaskProgressTrack
:任务进度跟踪CompletableFuture
:异步执行框架
4.2 异步处理流程
五、进度跟踪系统
5.1 进度跟踪设计
进度管理
进度跟踪系统提供实时的处理状态监控,支持文件读取、分段处理、向量化等各个阶段的进度跟踪。
进度跟踪阶段:
- 文件读取阶段:跟踪文件读取进度和行数统计
- 分段处理阶段:跟踪分段数量和处理进度
- 向量化阶段:跟踪向量化进度和成功率
- 任务状态管理:WAITING、PROCESSING、COMPLETED、FAILED
5.2 进度跟踪实现
实现机制
进度跟踪通过回调机制实现,在处理过程中定期更新进度信息,支持前端实时展示。
关键常量配置:
PROGRESS_UPDATE_THRESHOLD = 100
:每读取100行触发一次进度更新PROGRESS_BATCH_SIZE = 500
:批量处理大小为500条记录
六、向量化集成
6.1 向量化处理流程
向量化集成
知识库模块与RAG模块深度集成,支持文档分段后的自动向量化处理。
向量化处理步骤:
- 分段完成:文档分段处理完成后触发向量化
- 批量向量化:按批次进行向量化处理,避免内存溢出
- 向量存储:将向量数据存储到向量数据库
- 状态更新:更新分段的向量化状态
- 错误处理:处理向量化失败的分段
6.2 向量化监控
七、异常处理体系
7.1 异常分类
异常管理
知识库模块定义了完善的异常处理体系,覆盖文档处理、分段处理、向量化等各个环节。
异常类型:
KnowledgeException
:知识库业务异常FileProcessException
:文件处理异常SegmentException
:分段处理异常VectorizeException
:向量化处理异常
7.2 异常处理策略
异常处理原则:
- 快速失败:及时发现和报告异常
- 优雅降级:异常情况下提供备选方案
- 状态恢复:支持异常恢复和重试机制
- 日志记录:详细记录异常信息便于排查
八、扩展能力
8.1 自定义文档处理器
扩展机制
知识库模块提供开放的扩展机制,支持开发者自定义文档处理器和分段器。
扩展点:
- 文档处理器扩展:支持新的文档格式处理
- 分段器扩展:支持自定义分段策略
- 进度跟踪扩展:支持自定义进度监控
- 向量化扩展:支持自定义向量化逻辑
8.2 配置管理
配置项:
- 分段配置:分段长度、分段符号、日志开关
- 处理配置:批量大小、超时时间、重试次数
- 向量化配置:向量模型、向量库、相似度阈值
九、性能特性
9.1 性能优化
性能考虑
知识库模块在设计时充分考虑了性能因素,采用多种优化策略确保高效处理。
优化策略:
- 异步处理:避免阻塞用户操作
- 批量处理:减少数据库交互次数
- 进度缓存:避免频繁的状态更新
- 连接池:优化数据库连接管理
- 内存管理:及时释放大文件占用的内存
9.2 监控指标
关键指标:
- 处理速度:文档处理速度和分段速度
- 成功率:文档处理成功率和向量化成功率
- 资源使用:内存使用率和CPU使用率
- 队列状态:异步任务队列长度和处理延迟
通过以上完整的架构设计,BladeX AI知识库模块为企业级AI应用提供了强大的文档处理和知识管理能力,支持多种文档格式和处理策略,确保知识的完整性和检索精度。