Skip to content

文档处理

KnowledgeRAG 提供强大的文档处理功能,支持多种格式的上传、解析和向量化。

支持的文档格式

格式处理方式
PDFpdfplumber / PyPDF2 解析,可选 OCR(pytesseract)
Word (.docx)python-docx + docx2txt 提取文本
Excel / CSVpandas + openpyxl 表格解析
TXT / MD直接读取
图片pytesseract OCR 提取文字

文档上传

上传流程

前端选择文件 → 分块(每块默认 2MB)→ POST /api/upload-chunk/
→ POST /api/upload-complete/ → 合并 → 元数据写入

文件大小限制

  • 单个文件最大:50MB
  • 分块大小:默认 2MB
  • 重复检测:MD5 哈希比对
  • 类型验证:扩展名白名单校验

操作步骤

  1. 进入知识库详情页
  2. 点击"上传文档"按钮
  3. 选择本地文件(可多选)
  4. 等待上传完成
  5. 查看文档列表确认上传成功

URL 内容导入

支持将网页链接导入到知识库:

操作方法

  1. 在知识库详情页点击"导入链接"按钮
  2. 输入 URL 地址(每行一个,支持批量)
  3. 点击"导入"开始处理
  4. 实时查看导入状态

注意事项

  • 仅支持静态网页内容
  • 动态加载的内容可能无法完整抓取
  • 导入成功后自动刷新文档列表

文档管理

文档列表展示

文档列表显示以下信息:

  • 名称:文件名
  • 分块数:文档被切分的块数
  • 上传日期:文件上传时间
  • 切片方法:使用的分块策略
  • 启用状态:是否参与 RAG 检索

启用/禁用文档

通过 Toggle 开关控制文档是否参与 RAG 检索:

  • 启用:文档正常参与检索
  • 禁用:文档暂时不参与检索,但保留在系统中

删除文档

支持逐条或批量删除:

  1. 选择要删除的文档(可多选)
  2. 点击"删除"按钮
  3. 二次确认
  4. 同步清理本地文件和元数据

搜索和过滤

  • 关键词搜索:按文件名搜索
  • 状态过滤:全部 / 启用 / 禁用
  • 分页展示:每页 5 条,支持翻页

文档解析

系统使用先进的 OCR 技术和自然语言处理算法:

文本提取

  • 扫描件:使用 OCR 识别文本
  • 电子文档:直接提取文本内容
  • 结构保留:保持原文档的层次结构

实体提取

  • 提取关键实体和概念
  • 识别专业术语
  • 标记重要信息

向量化处理

解析后的文本会被转换为向量形式存储:

嵌入模型

  • 使用 sentence-transformers/all-MiniLM-L6-v2
  • 生成 384 维向量
  • 保持语义相似性

向量存储

  • 存储到 FAISS 向量数据库
  • 支持高效的近似最近邻搜索
  • 实时更新向量索引

性能优化

  • 全局缓存机制(_vsm_cache
  • 同一知识库只加载一次 embedding 模型
  • 首次加载 1-3 秒,后续毫秒级响应

最佳实践

文档准备

  1. 格式选择:优先使用 PDF、DOCX 等结构化格式
  2. 文件命名:使用清晰、描述性的文件名
  3. 内容质量:确保文档内容清晰、无乱码

上传策略

  1. 分批上传:大量文档建议分批上传
  2. 网络稳定:确保上传过程网络稳定
  3. 及时验证:上传完成后检查文档列表

文档维护

  1. 定期清理:删除过期或无用文档
  2. 状态管理:暂时不用的文档禁用而非删除
  3. 版本控制:更新文档时先删除旧版本

相关 API

  • POST /api/upload-chunk/ - 分块文件上传
  • POST /api/upload-complete/ - 合并分块为完整文件
  • GET /api/documents-list/{KLB_id}/ - 获取文档列表
  • PUT /api/update-document-status/ - 更新文档状态
  • DELETE /api/delete-documents/ - 批量删除文档

本文档站基于 VitePress 构建