docker-ragflow

  1. 需求
  2. RagFlow
    1. docker compose 方式运行
    2. 修改上传文件的大小限制
  3. 文档类型处理
    1. 1. 纯文本文档
    2. 2. 文档 + 语义图片 + OCR部分
    3. 3. 纯扫描的文档
  4. 总结

需求

部门内部需要一个内部的RAG系统,将AI结合提高工作效率,让我去找解决方案

要求有: 1.方便使用,2.可维护性和扩展性要高,3.效果要好,4.可以展示原文档

我当时想到的解决方案有:

  1. m365 copilot agent proxy【m365 copilot agent 代理】

好处:是微软产品,我们内部就有使用,还能无缝和m365产品绑定使用,坏处是没图片展示,访问具体文档还需要再点击,而且跳转访问的文件还存在问题

image-20250825141159234

  1. dify

dify之前使用过,简单的纯文本文档没问题,但是需要OCR识别的文档或者LLM进行img2text就不行了,dify感觉还是只适合 workflow

  1. ragflow

infiniflow/ragflow: RAGFlow is an open-source RAG (Retrieval-Augmented Generation) engine based on deep document understanding.

开源,还支持本地部署的LLM以及embedding模型,还支持img2text,最最重要的是支持输出img和原文档。

回复的图片效果如下:

image-20250825140348888

RagFlow效果还是很不错的,我还是比较满意的,就你拟选定RagFlow来实现吧

RagFlow

docker compose 方式运行

修改上传文件的大小限制

文档类型处理

1. 纯文本文档

纯文本的.txt,.docx,.pdf,.md…

这类文档在RagFlow中直接使用 Naive Parser 模式就可以了,加速知识库的建立

  • 功能:直接提取文本,不做 OCR 和复杂结构分析
  • 优点:速度极快,非常适合纯文本 PDF / Word / TXT
  • 缺点:不适合扫描件、含表格/复杂排版的文档

2. 文档 + 语义图片 + OCR部分

有些文档中夹杂着图片,这种图片没有文字,需要LLM进行语义理解,夹杂着一些扫描的文档

需要OCR + LLM

这类文档需要使用 DeepDoc Parser(默认) 模式。

  • 功能:OCR(光学字符识别)、表格结构识别(TSR)、版面分析(DLA)
  • 优点:适合扫描 PDF、复杂排版(多栏、表格、公式)
  • 缺点:速度慢、资源占用高

3. 纯扫描的文档

扫描的文档内容,只需要OCR即可

使用的模式为 Image Parser(OCR 专用)

  • 功能:针对图片(jpg/png)文档,直接 OCR 提取文字
  • 优点:图像文档可用
  • 缺点:识别效果依赖 OCR 模型

总结

github