【大模型:知识库管理】--开源工具Ragflow介绍+本地搭建
目录
1.RAG--缺点
2.Ragflow--定义
3.Ragflow--功能
3.1.深度文档理解与知识提取
3.2.自动化工作流
4.Ragflow--本地搭建
4.1.下载源码
4.2.构建docker映像
4.3.确认服务器状态
4.4.启动!
5.Ragflow-- 配置模型
1.RAG--缺点
在大模型应用的蓬勃发展中,检索增强生成(Retrieval-Augmented Generation,RAG)技术占据了举足轻重的地位。它就像是大模型的智慧助手,通过从外部知识库中检索相关信息,并将其融入到大模型的回答生成过程中,有效提升了大模型回答的准确性、可靠性和时效性,在问答系统、智能客服、文档摘要等多个领域都发挥着关键作用 。标准流程如下:
- 文档分块之后向量化存储到向量数据库,
- 然后输入文本内容,形成prompt,
- 从向量数据库检索相关的知识背景,
- 发送给LLM之后,返回结果。
问题类型 | 具体表现 | 可能原因 |
---|---|---|
幻觉问题 | 生成看似合理但事实错误的答案(如虚构历史细节、数据或逻辑矛盾)。 | 模型过度依赖生成能力而非检索结果;检索结果相关性低但模型强行补全。 |
拒答现象 | 当检索结果为空或模糊时,模型直接拒绝回答(如“未找到相关信息”)。 | 检索模块召回率低;模型缺乏对模糊查询的泛化能力;阈值设置过于严格。 |
回答不完整 | 答案遗漏关键信息(如仅回复部分步骤、缺少数据支持)。 | 文档切片不完整;检索未召回相关段落;模型生成长文本能力不足。 |
上下文割裂 | 答案与问题上下文冲突(如忽略用户前序对话中的关键约束条件)。 | 检索结果未结合对话历史;模型上下文窗口限制;未有效利用记忆机制。 |
冗余重复 | 答案包含大量重复内容或无意义填充词(如反复强调同一观点)。 | 模型生成长文本时的优化目标偏差;检索结果冗余未去重。 |
时效性不足 | 答案基于过时检索内容(如使用旧版政策法规或失效数据)。 | 知识库更新延迟;未结合实时检索源;模型缺乏时效性过滤机制。 |
语义不协调是一个重要因素,任务的预期含义、RAG 的理解以及存储的底层知识之间可能存在不一致,导致问题与答案在语义上不匹配,使得直接比较问题和原始知识库难以得到理想的结果。向量嵌入技术的不透明性也增加了问题的复杂性,向量在捕捉陈述语义内容方面存在固有缺陷,余弦相似性等度量方法在排名时不够精确,且难以理解和校准这些分数的意义,使得检索结果的可靠性受到影响 。本文介绍一款开源工具解决语义分块的工具,可以快速搭建专业的AI知识库.
2.Ragflow--定义
这样的背景下,ragflow 应运而生,为解决 RAG 现存问题带来了新的希望 。ragflow 是一款基于深度文档理解构建的开源 RAG 引擎,它就像是一位智能的知识管家,能够为各种规模的企业及个人提供一套精简高效的 RAG 工作流程。它的出现,让用户在处理各类复杂格式数据时,能够结合大语言模型,获得可靠的问答结果,并且每一个回答都有理有据,有清晰的引用来源 。
官网:RAGFlow | RAGFlow
github: https://github.com/infiniflow/ragflow
多格式文档支持
- 兼容 Word、PPT、Excel、PDF、图片、网页等各类文件,覆盖结构化与非结构化数据。
智能文本切片
- 基于模板的可视化切片技术,灵活可控,支持手动调整与溯源。
精准检索与生成
- 多路召回 + 重排序,结合大模型生成高准确回答,显著减少幻觉问题。
透明可解释性
- 处理过程可视化,答案附带引用快照,确保结果真实可验证。
3.Ragflow--功能
3.1.深度文档理解与知识提取
ragflow 基于深度文档理解技术,能够从各类复杂格式的非结构化数据中精准提取知识 。无论是密密麻麻的学术论文,还是格式复杂的商务报告,它都能像一位专业的知识侦探,从中找到关键信息,实现真正意义上的 “大海捞针”。在处理一份包含大量图表和数据的市场调研报告时,ragflow 不仅能准确识别其中的文字内容,还能理解图表所表达的信息,并将其转化为可检索和利用的知识,为后续的问答和分析提供坚实的数据基础 。
功能模块 | 技术/组件 | 核心能力 |
---|---|---|
多格式支持 | 专用解析器 | 解析 PDF、DOCX、EXCEL、PPT 等格式,提取文本、表格、图像等结构化数据。 |
OCR 文字识别 | 光学字符识别(OCR) | 将扫描版 PDF、图片中的文字转换为可编辑文本,支持多语言。 |
布局识别 | DeepDoc 布局分析 | 识别标题、段落、表格、图像等 10 类布局组件,判断文本连续性与元素关联性。 |
表结构识别 | TSR(表结构识别) | 解析复杂表格(跨单元格、多级标题),输出大模型可理解的自然语言句子。 |
PDF 深度解析 | PDF 专用解析器 | 提取带位置信息的文本块、裁剪表格图像、翻译表格内容为自然语言。 |
可视化与调整 | 交互式界面 | 支持文本切片可视化、手动调整布局和表格解析结果,确保可解释性。 |
3.2.自动化工作流
ragflow 为用户提供了自动化的 RAG 工作流,从文档的上传、解析、分块,到信息的检索和回答的生成,整个过程都能高效自动地完成 。同时,它对大语言模型和向量模型具有高度的可配置性,用户可以根据自己的需求和实际情况,灵活选择不同的大语言模型和向量模型 。用户可以根据自己的预算和性能需求,选择合适的大语言模型,如DeepSeek-V2、 GPT-4、文心一言等,也可以根据数据的特点和应用场景,选择不同的向量模型进行文本的向量化表示 。
4.Ragflow--本地搭建
4.1.下载源码
git clone https://github.com/infiniflow/ragflow.git
4.2.构建docker映像
# 切换到 ragflow 项目的 docker 配置目录
cd ragflow/docker# 给 entrypoint.sh 脚本添加可执行权限(确保容器启动时能运行)
chmod +x ./entrypoint.sh# 使用 docker compose 启动容器服务(-d 表示后台运行)
docker compose up -d
如果你本地安装了redis或minio可能出现端口占用问题,修改"D:\ragflow\docker\docker-compose.yml"中的配置信息即可,修改成没有使用的端口号
核心映像的大小约为9 GB,可能需要一段时间才能加载。
4.3.确认服务器状态
docker logs -f ragflow-server
这样就是启动成功了:
4.4.启动!
进入:http://localhost:8080 先注册账号,是下面这个页面。(这里的端口就是刚刚才配置文件中的)
使用github账号注册一个
5.Ragflow-- 配置模型
一般模型直接供应商输入API-KEY
然后本地的ollama配置:
点击Ollama添加模型,填写模型信息。
如果ollama是在本机的话docker访问宿主机url为:http://host.docker.internal:11434