快速开发RAG应用平台-RAGFlow

如果需要为一个拥有大量PDF格式的规章制度、产品手册(包含图表)的企业快速构建一个内部问答系统,需要考虑的因素: 高效准确的解析这些PDF文档,保证信息完整性; 将文档切分成合适的块并建立索引; 易于使用的问答界面; 后续知识库的更新维护;

RAGFlow提供了一个相对完整的、可视化的平台,可以快速导入文档、位置RAG流程、并生成一个可用的问答应用,适用于需要快速开发RAG应用,同时对底层流程有一定控制的团队或开发者

RAGElow平台

是一个开源的、基于检索增强生成(Retrieval-Augmented Generation, RAG)思想构建的引擎。它旨在为企业和开发者提供一套深度优化的、可视化的RAG应用开发工具,简化从原始数据到高质量RAG应用的构建流程。即构建复杂RAG应用的”工作流引擎“或”流水线“

  • 官方文档中Quality in\out反复出现,表明其核心即细粒度文档解析,同时其中提到没有使用任何RAG中间件,完全重新构建了一套智能文档解析系统,并以此为依托构建RAG任务编排体系,这也说明 文档解析 是其核心亮点
  • RAGFlow在处理文档时,针对不同结构的文档给了不同的解析方法:General、Q&A、Resume、Manual、Table、Paper、Book、Laws、Presentation、One、Tag等

RAGFlow能力

  1. 数据处理复杂

企业内部文档格式多样,手动处理和提取信息慢

  1. 信息检索困难

传统关键词检索难以理解语义,无法找到真正相关的内容

  1. LLM知识局限

通用LLM缺乏企业内部或特定领域的专业知识,容易产生幻觉和回答错误

  1. 系统构建门槛高

从零开始搭建RAG系统设计多个技术环节,集成复杂

RAGFlow对比

RAGFlow通过自动化文档处理、高效的检索和LLM的集成,大大降低了构建企业级知识库问答系统的门槛

特性 RAGFlow FastGPT Dify
定位 RAG引擎(Engine) 应用平台 应用平台
核心 数据处理、RAG流程构建与优化 快速构建知识库问答应用 快速构建和编排LLM应用(含RAG)
易用性 需要了解RAG流程 开箱即用 提供可视化编排
灵活性 可定制流程各环节 提供配置选项 可视化流程编排
数据处理 精细化文档解析、多种分块策略 相对标准 相对标准、支持数据集
部署 本地 云+本地 云+本地
扩展性 可通过代码扩展 依赖平台功能 可通过代码节点扩展
目标用户 开发者、需要深度定制RAG的企业 业务人员、快速应用构建 开发者、快速应用构建者
开源

RAGFlow安装并实现简易问答助手

安装配置

  • CPU>=4
  • 内存>=16GB
  • 磁盘>=50GB
  • docker >= 24.0.0 & docker compose >= 2.26.1
  • 安装地址
RAGFlow image tag Image size (GB) Has embedding models? Stable?
v0.21.1 ≈9 ✔️ Stable release
v0.21.1-slim ≈2 Stable release
  • 默认下载docker 镜像的slim版本,其未内置嵌入模型,不太方便,直接下载完整版

安装环境配置修改

  • 在docker/.env 中更新RAGFLOW_IMAGE的变量

  • 在docker/docker-componse.yml中修改端口映射(主要用于其它项目共存)

  • 执行命令
docker componse -p ragflow_docker -f docker-componse.yml up -d
  • 安装完成,检查
docker logs -f ragflow-server

  • docker dektop 中可以看到

界面访问

  • 浏览器访问 http://localhost:180(先注册账号,再登陆)

  • 调整界面-中文

配置模型

  • 支持在线和本地大模型

  • 配置阿里通义千问大模型

  • 配置本地Ollama中的模型

  • 本地部署的Ollama地址要用 http://host.docker.internal:11434(docker环境部署的RAGFlow)

  • 缺省模型配置:上面的模型配置仅是告知RAGFlow有哪些模型可用,一般来说还需要配置一个系统模型


构建知识库问答助手

  • 构建知识库

比如医疗知识库,可以从[huggingface](https://huggingface.co/datasets/infiniFlow/medical_QA)上获取,
  • 切片方法选择
比如CSV格式且为QA问答形式,切片方法选择Q&A
同时还存在很多切片方法供选择

  • 解析

  • 检索测试

  • 选择知识库,不然模型不会从知识库中回答问题

  • 模型选择,在线、本地都可

  • 结果