当前位置: 首页 > article >正文

硬核技术组合!用 DeepSeek R1、Ollama、Docker、RAGFlow 打造专属本地知识库

文章目录

  • 一、引言
  • 二、安装Ollama+部署DeepSeekR1
  • 三、安装Docker
  • 四、安装使用RAGFlow
    • 4.1 系统架构
    • 4.2 部署流程
    • 4.3 使用RAGFlow
    • 4.4 在RAGFlow中新增模型
    • 4.5 创建知识库
    • 4.6 创建私人助理使用RGA

一、引言

本地部署DeepSeek R1 + Ollama + RAGFlow构建个人知识库,通过将数据完全存储在本地硬盘,彻底杜绝隐私泄露风险,规避云端服务不稳定导致的延迟或中断问题;借助RAGFlow的自定义知识库能力,可精准解析专业文档(如法律、医疗资料),突破通用大模型的领域局限,实现高效检索与智能问答,打造安全、稳定且持续进化的专属知识中枢。

我们部署DeepSeekR1需要借助Ollama开源大模型平台,部署RAGFlow需要借助Docker来实现,整体流程:安装Ollama->部署DeepSeek R1模型->基于Docker部署RAGFlow->配置RAGFlow->知识库构建->问答测试

二、安装Ollama+部署DeepSeekR1

亲测有效!使用Ollama本地部署DeepSeekR1模型,指定目录安装并实现可视化聊天与接口调用:安装Ollama+部署DeepSeekR1
在完成Ollama与DeepSeek R1的本地部署后(部署流程详见以上文章),若需通过Docker容器化部署的RAGFlow集成该模型服务,需针对性调整Ollama的网络配置以打通容器间通信链路。Docker默认采用独立网络命名空间,容器内服务无法直接访问宿主机本地环回地址 (127.0.0.1)。当RAGFlow容器尝试连接宿主机Ollama服务时,需将Ollama的API端点暴露至容器可达的网络接口。
具体操作方法:
编辑系统环境变量->高级->环境变量->新建用户变量->变量名(OLLAMA_HOST) 变量值(:11434)->重启电脑
h环境变量

三、安装Docker

Docker官网:Docker
进入官网后选择Download for Windows -AMD64进行安装
安装Docker
在Windows系统上部署Docker(支持 Windows 10/11 专业版/企业版/教育版,家庭版需通过WSL2间接支持)
安装完毕Docker后选择Use advanced settings 使用高级设置,选择Update to the latest version of WSL 2 from Microsoft(Recommended - requires administrator passwod)从Microsoft更新到最新版本的WSL 2,点击Finish完成
配置Docker
如果安装成功后显示报错Docker Engine stopped...说明缺少wsl,此时会自动弹框提示我们安装适用于Linux的Windows子系统,安装一下就ok了。如果没有自动弹框,我们需要到Windows PoweShell中执行wsl --update命令来进行安装。

如果安装完wsl依旧报错,这个时候我们需要检查下报错内容看看是否打开了虚拟机,如果没有打开的话我们需要启用虚拟机平台,然后在BLOS中启用虚拟化,这个大家可以自行去网上来查相应的解决方案,这里也不在过多叙述了。

安装完成后我们需要配置一下Docker的镜像源来提高国内的下载速度 https://docker.1ms.run,这个镜像源可能会失效,如果大家有更好更快的镜像源可以自行配置
配置Docker镜像源

四、安装使用RAGFlow

RAGFlow开源代码:RAGFlow Github地址
RAGFlow 是一款基于 检索增强生成(Retrieval-Augmented Generation, RAG) 技术的开源框架,专注于构建企业级智能知识库与问答系统。它通过结合大语言模型(LLM)与结构化文档处理能力,实现从海量非结构化数据(如PDF、Word、扫描件等)中精准提取信息并生成专业回答,是当前私有化知识管理的先进工具。

4.1 系统架构

RAGFlow系统架构

图中组件功能解释
File用户上传的原始文件(如 PDF、Word、扫描件等),是系统的输入源。
Document Parser文档解析引擎,负责文件格式解析、OCR 识别、版式分析与结构化分块。
Documents解析后的结构化文档数据(分块文本、表格、图像等),存储于向量数据库中。
Task Dispatch任务调度器,管理文档处理、检索、生成等任务的队列与资源分配。
Tasks具体任务实例(如解析任务、检索任务、生成任务),由调度器分发执行。
Questions用户输入的自然语言问题,触发检索与生成流程。
LMs大语言模型(如 DeepSeek R1),负责根据检索结果生成最终答案。
Answer系统输出的结构化回答,结合检索内容与模型生成能力。

流程图

拆分解析任务
调用模型任务
用户上传文件 File
Document Parser 文档解析
Task Dispatch 任务调度
Tasks 解析子任务
生成结构化数据 Documents
向量数据库存储
用户提问 Questions
检索增强模块
Task Dispatch 任务调度
Tasks 生成子任务
LMs 大语言模型
生成最终答案 Answer

异步任务处理

并行分发
并行分发
TaskDispatch
解析任务
生成任务
OCR处理
表格提取
检索上下文
模型推理

4.2 部署流程

前提条件
CPU >= 4 核
RAM >= 16 GB
Disk >= 50 GB
Docker >= 24.0.0 & Docker Compose >= v2.26.1

运行以下命令会自动下载 RAGFlow slim Docker 镜像 v0.16.0-slim。请参考下表查看不同 Docker 发行版的描述。如需下载不同于 v0.16.0-slim 的 Docker 镜像,请在运行 docker compose 启动服务之前先更新 docker/.env 文件内的 RAGFLOW_IMAGE 变量。比如,你可以通过设置 RAGFLOW_IMAGE=infiniflow/ragflow:v0.16.0 来下载 RAGFlow 镜像的 v0.16.0完整发行版。

$ cd ragflow-main
$ docker compose -f docker/docker-compose.yml up -d

Docker发行版描述
如果需要修改不同的发行版,可以进入到ragflow-main的docker文件夹中,然后修改.env文件
目录
默认的发行版是RAGFLOW_IMAGE=infiniflow/ragflow:v0.16.0,这个是精简版,仅包含核心运行依赖,如果我们想使用标准版的话可以把它注释掉,然后打开RAGFLOW_IMAGE=infiniflow/ragflow:v0.16.0 标准版的注释,标准版包含核心依赖以及开发调试工具
修改发行版
此时我们需要切换到ragflow-main目录,然后运行docker compose -f docker/docker-compose.yml up -d来安装Docker镜像,我们可能会在安装的过程中安装失败或者安装速度缓慢,此时我们需要配置Docker的镜像源,下面是RAGFlow提供的一些镜像源可供参考:(可能需要借助魔法,魔法需要大家自行解决)

  • 华为云镜像名:swr.cn-north-4.myhuaweicloud.com/infiniflow/ragflow
  • 阿里云镜像名:registry.cn-hangzhou.aliyuncs.com/infiniflow/ragflow

使用Docker安装

4.3 使用RAGFlow

RAGFlow安装完成后,默认端口是80,此时我们访问localhost如果能访问到登录页面就证明部署成功了,此时我们需要注册一个账号来进行登录
RAGFlow登录页面
进入到首页就是这个样子,此时我们需要添加并配置Ollama模型到RAGFlow中
RAGFlow首页

4.4 在RAGFlow中新增模型

第一步点击头像
第一步
第二步新增Ollama模型
选择模型提供商,然后选择添加Ollama模型,随后模型类型选择chat,模型名称就是你本地部署的DeepSeek的模型名称,我这里本地部署的是deepseek-r1:1.5b,如果不知道模型名称是什么的可以去DOS窗口去执行ollama list命令来进行查询,基础URL的话我们这个需要写http://host:port,host获取方式需要通过DOS窗口执行ipconfig命令去查询,端口号默认是11434,最大token数这里大家随意设置,token数取决于大模型输出内容的长度。最后点击确定。
新增LLM模型
查询本机ip地址
在查询ip地址
查询本地部署模型名称
查询模型名称
第三步:随后我们需要去配置系统模型,这里我们聊天模型选择deepseek-r1
系统模型设置

4.5 创建知识库

新增知识库
这里我们需要对自己的知识库新增文件后然后解析我们上传的知识库
创建知识库文件
知识库解析成功

4.6 创建私人助理使用RGA

这里我们需要设置助理的名称以及配置刚刚我们创建的知识库
新建助理

提示引擎
模型设置
我们这里可以看出它引用了我刚刚上传的知识库
进行对话

如果大家在部署的任何环节中出现问题的话可以在评论区中留言,或者可以添加下方的名片来咨询遇到的问题!感谢大家阅读,谢谢!!!


http://www.kler.cn/a/559618.html

相关文章:

  • `AdminAdminDTO` 和 `userSession` 对象中的字段对应起来的表格
  • Linux 磁盘管理命令:LVM命令列表
  • 一、初始爬虫
  • 蓝桥杯试题:区间次方和(前缀和)
  • Linux运维_Dockerfile_打包Moby-26.1.4编译dockerd环境
  • 蛋白质研究常用数据库系列1
  • Vue2+OpenLayers实现热力图(提供Gitee源码)
  • centOS 7.9 安装JDK MYSQL
  • 蓝桥杯备赛-基础训练(三)哈希表 day16
  • SMT贴片加工关键技术解析
  • ET框架实现匹配功能(服务器端)
  • 第4章 4.1 Entity Framework Core概述
  • 【高可用】keepalived的试用与学习笔记
  • 【科研绘图系列】R语言绘制连线图和散点图(linechart scatter plot)
  • 5. Go 方法(结构体的方法成员)
  • WordPress ltl-freight-quotes-estes-edition sql注入漏洞(CVE-2024-13488)(附脚本)
  • Linux 命令大全完整版(05)
  • LLM2CLIP论文学习笔记:强大的语言模型解锁更丰富的视觉表征
  • 编程小白冲Kaggle每日打卡(11)--kaggle学堂:<Python>使用外部库
  • 已解决丨本地访问远程服务器Jupyter Notebook出现Opening Jupyter Application Refresh: