Docker +RagFlow 搭建本地AI知识库

一、简介

RAGFlow是一个基于对文档深入理解的开源 RAG(检索增强生成)引擎。它的作用是可以让用户创建自有知识库,根据设定的参数对知识库中的文件进行切块处理,用户向大模型提问时,RAGFlow先查找自有知识库中的切块内容,接着把查找到的知识库数据输入到对话大模型中再生成答案输出。

它能凭借引用知识库中各种复杂格式的数据为后盾,为用户提供真实可信,少幻觉的答案。RAGFlow的技术原理涵盖了文档理解、检索增强、生成模型、注意力机制等,特别强调了深度文档理解技术,能够从复杂格式的非结构化数据中提取关键信息。下面我手把手教各位同学如何在Linux系统中搭建RAGFlow。

在这里插入图片描述

二、安装 Ollama 并且,部署 DeepSeek

Ollama 是一个开源项目,专注于帮助用户本地化运行大型语言模型(LLMs)。它提供了一个简单易用的框架,让开发者和个人用户能够在自己的设备上部署和运行 LLMs,而无需依赖云服务或外部 API。这对于需要数据隐私、离线使用或自定义模型调整的场景非常有用。

1、安装 Ollama 并且,部署 DeepSeek

这里我就不将 Ollama 的详细安装步骤和部署本地DeepSeek详细操作写出来了,如果还没有安装的可以通过下面查看我的另一篇文字

【超级详细的 Ollama 搭建本地 DeepSeek大模型】

2、下载向量嵌入模型

后面 Open-Web UI 搭建本地向量知识库,会使用

ollama pull  bge-m3

在这里插入图片描述

3、检查一下使用的环境

ollama list

在这里插入图片描述

三、安装 Docker for Desktop

Docker Desktop 是 Docker 官方提供的桌面应用程序,旨在让开发者能够在 Windows 和 macOS 系统上轻松地构建、运行和共享容器化应用程序。Docker Desktop 提供了一个方便的工具集,使用户能够快速部署容器化应用程序,同时还包括了一些强大的功能和工具,如 Docker Engine、Docker CLI、Docker Compose 等。

这里我就不将 Docker 的详细安装步骤写出来了,如果还没有安装的可以通过下面查看我的另一篇文字

查看详细Docker Desktop安装步骤:
【Docker Desktop 安装使用教程】

查看详细安装 Docker Desktop 相关问题:
【安装 家庭版 Windows 出现 的 Docker 问题】
【安装 Windows Docker Desktop - WSL问题】
【打开 Windows Docker Desktop 出现 Docker Engine Stopped 问题】

四、使用 Docker 部署 RagFlow

RagFlow 是一个基于大语言模型的流程自动化工具,旨在帮助用户通过自然语言处理(NLP)技术来自动化和优化工作流程。它结合了先进的AI技术和直观的用户界面,使得非技术人员也能轻松实现流程自动化。

主要功能

  • 智能对话交互:用户可以通过与RagFlow进行自然语言对话,定义、管理和优化各种工作流程。
  • 任务自动化:支持多种任务类型,如数据处理、信息提取、报告生成等,帮助用户自动完成重复性工作。
  • 跨系统集成:能够与主流的第三方服务(如Slack、Jira、Google Drive等)无缝集成,实现不同系统的数据流动和协同工作。
  • 动态流程调整:根据实时数据和上下文环境,智能调整工作流程,确保流程始终高效运行。
  • 可扩展性:支持大规模业务需求,适用于从个人到企业的各种场景。
    适用场景
  • 企业流程优化:帮助企业在销售、 marketing、客服等环节实现自动化,提升效率。
  • 个人任务管理:用户可以通过RagFlow自动化个人日常任务,如行程安排、邮件处理等。
  • 数据整合与分析:通过自动化数据收集和处理,支持更高效的决策制定。

优势

  • 易用性:无需编程知识,用户即可快速上手。
  • 灵活性:支持定制化需求,满足不同用户的个性化要求。
  • 高效性:利用AI技术提升流程执行效率,减少人工干预。

RagFlow 通过将复杂的流程自动化转化为简单的对话交互,极大地提升了工作效率和用户体验。如果你有具体的使用场景或问题,可以进一步探讨如何利用RagFlow来优化你的工作流程!

1.进入github下载

github网址:https://github.com/infiniflow/ragflow
在这里插入图片描述

2.修改参数

下载完成后,解压,进入docker文件夹,找到.env用记事本打开

在这里插入图片描述
修改镜像为国内镜像并且选择embedding版本

默认配置为:RAGFLOW_IMAGE=infiniflow/ragflow:v0.17.0-slim

修改为国内镜像:RAGFLOW_IMAGE=registry.cn-hangzhou.aliyuncs.com/infiniflow/ragflow:v0.17.0

  • 在RAGFLOW_IMAGE=infiniflow/ragflow:v0.17.0-slim前,增加“#”将该段注释掉

  • 在# RAGFLOW_IMAGE=infiniflow/ragflow:v0.17.0,将前面的#删除
    修改文件docker/.env/

在这里插入图片描述

3.拉取

在解压存放的地方,进入到ragflow-main文件夹,地址栏内直接输入cmd

在这里插入图片描述

敲入这个命令进行安装

docker compose -f docker/docker-compose.yml up -d

就开始自动拉取相关镜像

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

整个安装过程超级缓慢,有大约100个文件(50GB左右)需要下载,下载完毕后可能会占据你的 Docker 安装目录,跟你的网络环境有很大关系,而且可能会有各种报错

此步安装报错的主要原因就是 Docker 的网络问题,有可能是你的镜像源有问题如果出现报错了就重复执行该代码两到三次,如果还继续报错就尝试更换你的 Docker 镜像源。

完成后的报错

访问IP,进入 RAGFlow,注意不是 9380 端口,Web是http://127.0.01默认为 80 端口

在这里插入图片描述
下载完成过后,你可能会看到这个报错,指的是你的电脑的80端口被占用,这时打开命令提示符输入这个命令检查一下

netstat -ano | findstr :80

在这里插入图片描述
最后的数字是占用这个端口进程的 PID

进入任务管理器看看是什么

在这里插入图片描述

这个是系统占用,把它关闭即可。

以上问题解决完毕后再次执行部署代码就可以了

在这里插入图片描述

4.启动 RagFlow

在这里插入图片描述
在这里插入图片描述

五、使用 RagFlow

1.登录RagFlow

这样就部署成功了,你要先注册一个账号进行登录,

1、拉取完成后,浏览器输入:http://localhost/login,进入RAGflow

2、选择sign up注册一个账号,然后登录

在这里插入图片描述

在这里插入图片描述

2.设置简体中文

登录后,在右上角可以设置简体中文

在这里插入图片描述

3.配置模型

在 RAGFlow 的配置页中,单击页面右上角的徽标> 然后点击右边栏的Model Providers,然后将 本地运行的Ollama 添加到 RAGFlow。

(1)选择模型提供商,找到ollama

  • 点击右上角->模型提供商->添加模型

在这里插入图片描述
在这里插入图片描述

(2)填写模型信息,模型类型选 chat

接着我们在 RagFlow 中配置模型,注意由于 RagFlow 我是在 docker 中安装的,所以请求本地部署的 Ollama 地址要用 :host.docker.internal:11434

  • 模型名称,填写deepseek-r1:5b,具体根据你拉取的模型名称填写。

  • 基础url,填入http://host.docker.internal:11434

在这里插入图片描述

按以上内容填入,Base url需要填入本机的IP地址,并且需要在本地运行Ollama;Mode Name 我用的是llama3.1:8b;本地运行Ollama,API-key无需填写;
在这里插入图片描述
本地对话模型添加成功,如上图。

4.系统模型设置

在系统模型设置中配置聊天模型和嵌入模型为我们刚刚添加的模型

在这里插入图片描述

5.知识库

1.创建知识库

在RAGFlow系统中,用户可以拥有多个知识库,构建更灵活、更多样化的问答。这里创建第一个知识库,点击创建知识库,填入知识库名称。

接下来我们就可以创建知识库了

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

2. 配置知识库

以下显示了知识库的配置页面。正确配置知识库对于 AI 聊天至关重要。如果选择了错误的嵌入模型或块方法,会导致聊天中出现意外的语义丢失或不匹配的答案。

这里需要注意带星号的配置包括:语言,权限,嵌入模型,解析方法。

在这里插入图片描述

解析方法的说明:

RAGFlow 提供了多个分块模板,以便于不同布局的文件进行分块,并确保语义完整性。在 Chunk method (块方法) 中,您可以选择适合文件布局和格式的默认模板。下表显示了系统所有支持的块模板的内容及文件格式,大家根据需求自行选择。

模板描述文件格式
常规文件根据预设的块标记编号连续分块。DOCX, EXCEL, PPT, PDF, TXT, JPEG, JPG, PNG, TIF, GIF
问答EXCEL, CSV/TXT
手动PDF
表格EXCEL, CSV/TXT
论文PDF
书本DOCX, PDF, TXT
法律DOCX, PDF, TXT
介绍PDF, PPTX
图片JPEG, JPG, PNG, TIF, GIF
唯一整个文档被分成唯一块。DOCX, EXCEL, PDF, TXT

2.数据集

(1)上传知识库文件,并做相应的配置,我这里选了2个关于单片机Lwip库的说明文件。
在这里插入图片描述
在这里插入图片描述

(2)选择解析方法

在这里插入图片描述

在这里插入图片描述
如无特殊要求,按默认值即可。

(4)选择 embedding model

嵌入模型(embedding model) ,这里选择默认的BAAI/bge-large-zh-v1.5,这个模型专门针对中文语义理解进行了优化,能够将文本映射为低维稠密向量,这些向量可以用于检索、分类、聚类或语义匹配等任务。

(5)解析文件

必须先对上传的文件进行解析,才能让RAGFlow执行检索知识库功能。文件解析是知识库配置中的一个关键步骤。RAGFlow 文件解析的含义有两个:基于文件布局对文件进行分块,并在这些块上构建嵌入和全文(关键字)索引。选择 chunk 方法和 embedding 模型后,您可以开始解析文件:

在这里插入图片描述
在这里插入图片描述
单击 UNSTART 旁边的播放按钮以开始文件解析。

如果文件解析长时间停止,单击红叉图标停止后,再单击刷新。

如上所示,RAGFlow 允许您对特定文件使用不同的块方法,从而提供更大的灵活性。

如上所示,RAGFlow 允许您启用或禁用单个文件,从而对基于知识库的 AI 聊天提供更精细的控制。

3. 运行检索测试

RAGFlow 在其聊天中使用全文搜索和矢量搜索的多次调用。在设置 AI 聊天之前,请考虑调整以下参数以确保预期信息始终出现在答案中:

  • 相似度阈值:相似度低于阈值的数据块将被过滤。默认设置为 0.2。

  • 向量相似度权重:向量相似度占总分的百分比。默认设置为 0.3。

在这里插入图片描述

6、开始 AI 聊天

RAGFlow 中的聊天基于特定知识库或多个知识库。创建知识库,完成文件解析,并且配置完对话模型后,各位同学可以开始 AI 对话了。

(1)通过创建助手来开始 AI 对话。

单击页面顶部中间的 Chat 选项卡> Create an assistant 以显示下一个对话的 Chat Configuration 对话框。

在这里插入图片描述
(2)更新 Assistant Setting(助理配置):

配置页中需要关注以下选项:

Assistant name 是您的聊天助理的名称。每个助手都对应于一个对话框,其中包含知识库、提示、混合搜索配置和大模型设置的唯一组合。

Empty response(空响应):当RAGFlow 没有在知识库中检索到答案时,它会统一响应您在此处设置的内容。

如果希望 RAGFlow 未能在你的知识库中检索到答案时,根据对话大模型的内容即兴创作,请将其留空,但这可能会出现幻觉答案。

Show Quote(显示引述的文档): 这是 RAGFlow 的一个关键功能,默认情况下是启用的。RAGFlow 不像黑匣子那样工作,让人无法得知引述的内容。相反,它清楚地显示了其答案的信息来源。

在这里插入图片描述

(3)更新 Prompt Engine(提示引擎):这里的内容一般根据系统默认即可,有需要的同学,可以查看官方文档。

在这里插入图片描述

(4)更新 Model Setting (模型配置)

Model :选择 Chat (对话) 模型。尽管您在系统模型设置中选择了默认聊天模型,但 RAGFlow 允许您为对话选择替代聊天模型,选择正确的对话模型十分重要,这个影响到系统能否正常运行,如果对话模型配置错误,将导致不能输出正确的对话内容。

Freedom:指 LLM 即兴创作的级别。从 Improvise、Precise 到 Balance,每个自由度级别都对应于 Temperature、Top P、Presence Penalty 和 Frequency Penalty 的独特组合。

Temperature: LLM 的预测随机性水平。值越高,LLM 的创意就越大。

Top P:也称为“细胞核采样”,选用默认值即可。

Max Tokens:LLM 响应的最大长度。请注意,如果此值设置得太低,则响应可能会减少。

在这里插入图片描述

(5)通过新建聊天,来开始 AI 对话。

单击页面+,创建一个聊天 对话框。
在这里插入图片描述
在这里插入图片描述

(6)完成以上配置后,我们就可以来到对话页,让大模型根据你的知识库内容,开始一段淋漓畅快的对话了。

在这里插入图片描述

在这里插入图片描述

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值