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

硬核技术组合!用 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

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

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

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

相关文章:

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

文章目录 一、引言二、安装Ollama部署DeepSeekR1三、安装Docker四、安装使用RAGFlow4.1 系统架构4.2 部署流程4.3 使用RAGFlow4.4 在RAGFlow中新增模型4.5 创建知识库4.6 创建私人助理使用RGA 一、引言 本地部署DeepSeek R1 Ollama RAGFlow构建个人知识库,通过将…...

MySQL官网驱动下载(jar包驱动和ODBC驱动)【详细教程】

1.打开MySQL的官网,选择下载(Download) MySQL[这里是图片001]https://www.mysql.com/cn/ 2.往下划点击MySQL Community(GPL)Downloads 3.要下载MySQL的jar包的选择Connector/J 4.进入后,根据自己的需求选择相应的版本 5.下载完成后,进行解压…...

idea 2019.3常用插件

idea 2019.3常用插件 文档 idea 2019.3常用插件idea 2023.3.7常用插件 idea 2019.3常用插件 插件名称插件版本说明1AceJump3.5.9AceJump允许您快速将插入符号导航到编辑器中可见的任何位置。只需按“ctrl;”,键入一个字符,然后在Ace Jump…...

对CSS了解哪些?

CSS(Cascading Style Sheets,层叠样式表)是用来描述HTML文档外观和布局的语言。以下是对CSS的常见了解范围: 1. CSS 基础 选择器:如通用选择器 (*)、类型选择器、类选择器 (.class)、ID选择器 (#id)、后代选择器、伪类…...

TikTok账户安全指南:如何取消两步验证?

TikTok账户安全指南:如何取消两步验证? 在这个数字化的时代,保护我们的在线账户安全变得尤为重要。TikTok,作为全球流行的社交媒体平台,其账户安全更是不容忽视。两步验证作为一种增强账户安全性的措施,虽…...

从零到一:构建现代 React 应用的完整指南

1. create-react-app (CRA) 简介: create-react-app 是官方推荐的 React 项目脚手架工具,提供了一个开箱即用的开发环境,帮助开发者快速启动 React 应用。它会自动配置 Webpack、Babel、ESLint 等工具,让你专注于开发而不需要手动配置工具链。 特点: 零配置:CRA 自动配…...

【Python爬虫(26)】Python爬虫进阶:数据清洗与预处理的魔法秘籍

【Python爬虫】专栏简介:本专栏是 Python 爬虫领域的集大成之作,共 100 章节。从 Python 基础语法、爬虫入门知识讲起,深入探讨反爬虫、多线程、分布式等进阶技术。以大量实例为支撑,覆盖网页、图片、音频等各类数据爬取&#xff…...

机器学习数学基础:28.卡方检验

卡方检验教程 一、引言 在统计学的广阔领域中,卡方检验(Chi - Square Test)宛如一把锐利的手术刀,能够精准剖析数据背后隐藏的关系与模式。它主要用于两大核心任务:一是深入分析两个及两个以上分类变量之间错综复杂的…...

【工具插件类教学】实现运行时2D物体交互的利器Runtime2DTransformInteractor

目录 ​编辑 1. 插件核心功能 1.1 基础变换操作 1.2 高级特性 2. 安装与配置 2.1 导入插件 2.2 配置控制器参数 2.3 为物体添加交互功能 3. 使用示例 3.1 基础操作演示 3.2 多选与批量操作 3.3 自定义光标与外观 4. 高级配置技巧 4.1 动态调整包围框控件尺寸 4.…...

回调处理器

文章目录 什么是回调处理器回调处理器的工作流程回调处理器的使用自定义链组件中的回调 内置回调处理器自定义回调处理器 在编程领域中,回调是一个非常重要的概念。简而言之,回调是一种特殊的函数或方法,它可以被传递给另一个函数作为参数&am…...

Redis-03高级篇中-多级缓存:

说明: 分布式缓存和多级缓存的视频,与springcloud高级篇redis的一模一样。这里就不在重复学习了,如果后面用到关于redis的配置,直接到springcloud模块安装的redis中学习即可。 多级缓存 0.学习目标 1.什么是多级缓存 传统的缓…...

Spring Boot ShardingJDBC分库分表(草稿)

ShardingJDBC分库分表 1.Maven 引用 <dependency><groupId>org.apache.shardingsphere</groupId><artifactId>sharding-jdbc-spring-boot-starter</artifactId><version>4.1.1</version></dependency><dependency><…...

Jenkins 环境搭建---基于 Docker

前期准备 提前安装jdk、maven、nodeJs&#xff08;如果需要的话&#xff09; 创建 jenkins 环境目录&#xff0c;用来当做挂载卷 /data/jenkins/ 一&#xff1a;拉取 Jenkins 镜像 docker pull jenkins/jenkins:lts 二&#xff1a;设置 Jenkins挂载目录 mkdir -p ~/jen…...

如何在自定义组件中使用v-model实现双向绑定

在 Vue 2 中&#xff0c;v-model 是双向数据绑定的语法糖&#xff0c;它默认将 value 作为 prop 传入组件&#xff0c;并通过监听 input 事件来更新父组件的数据。若要在自定义组件中实现 v-model 的双向绑定&#xff0c;需遵循以下步骤&#xff1a; 1. 基本实现&#xff1a;va…...

Ubuntu 下 nginx-1.24.0 源码分析 - ngx_pool_t 类型

ngx_pool_t 定义在 src/core/ngx_core.h typedef struct ngx_pool_s ngx_pool_t; ngx_pool_s 定义在 src/core/ngx_palloc.h struct ngx_pool_s {ngx_pool_data_t d;size_t max;ngx_pool_t *current;ngx_chain_t *chain;ng…...

如何在 ubuntu 上使用 Clash 与 docker 开启代理拉起

如何在 ubuntu 上使用 Clash https://github.com/doreamon-design/clash/releases上面是clash 的地址 clash_2.0.24_linux_386.tar.gz 下载 386 的 如果你的电脑是inter tar -xzvf clash_2.0.24_linux_386.tar.gz 启动 ./clash 然后会在电脑上生成一个config的文件 /home/xxx/…...

linux tcpdump抓包

参数说明: -i 指定网卡 -w 指定保存文件 -s0 完整抓包 -G 指定间隔时长(秒) -C 指定每个文件大小(M) 用法1: 指定端口输出到指定文件 tcpdump -i em3 -w 182910.pcap 用法2: 指定端口每10分钟输出到不同文件 tcpdump -i em3 -s0 -G 600 -w %Y_%m%d_%H%M_%S.pcap 用法3: 指…...

PLSQL连接Oracle 19c报错ORA-28040

PLSQL连接Oracle 19c报错ORA-28040 原因解析解决办法原因解析 使用PLSQL Developer连接19c数据库报错: ORA-28040: No matching authentication protocol报错信息解析: [oracle@ora19c ~]$ oerr ora 2804028040, 0000, "No matching authentication protocol" /…...

汽车免拆诊断案例 | 2010 款路虎揽胜车空调偶尔出风异常

故障现象  一辆2010款路虎揽胜车&#xff0c;搭载5.0 L发动机&#xff0c;累计行驶里程约为16万km。车主反映&#xff0c;接通空调开关后&#xff0c;有时出风忽大忽小&#xff0c;有时不出风&#xff0c;有时要等2 min左右才出风&#xff1b;有时两三天出现一次&#xff0c;…...

音视频入门基础:RTP专题(9)——FFmpeg接收RTP流的原理和内部实现

一、引言 由《音视频入门基础&#xff1a;RTP专题&#xff08;2&#xff09;——使用FFmpeg命令生成RTP流》可以知道&#xff0c;推流端通过下面FFmpeg命令可以将一个媒体文件转推RTP&#xff0c;生成RTP流&#xff1a; ffmpeg -re -stream_loop -1 -i input.mp4 -vcodec cop…...

国防科技大学计算机基础课程笔记02信息编码

1.机内码和国标码 国标码就是我们非常熟悉的这个GB2312,但是因为都是16进制&#xff0c;因此这个了16进制的数据既可以翻译成为这个机器码&#xff0c;也可以翻译成为这个国标码&#xff0c;所以这个时候很容易会出现这个歧义的情况&#xff1b; 因此&#xff0c;我们的这个国…...

设计模式和设计原则回顾

设计模式和设计原则回顾 23种设计模式是设计原则的完美体现,设计原则设计原则是设计模式的理论基石, 设计模式 在经典的设计模式分类中(如《设计模式:可复用面向对象软件的基础》一书中),总共有23种设计模式,分为三大类: 一、创建型模式(5种) 1. 单例模式(Sing…...

多场景 OkHttpClient 管理器 - Android 网络通信解决方案

下面是一个完整的 Android 实现&#xff0c;展示如何创建和管理多个 OkHttpClient 实例&#xff0c;分别用于长连接、普通 HTTP 请求和文件下载场景。 <?xml version"1.0" encoding"utf-8"?> <LinearLayout xmlns:android"http://schemas…...

在 Nginx Stream 层“改写”MQTT ngx_stream_mqtt_filter_module

1、为什么要修改 CONNECT 报文&#xff1f; 多租户隔离&#xff1a;自动为接入设备追加租户前缀&#xff0c;后端按 ClientID 拆分队列。零代码鉴权&#xff1a;将入站用户名替换为 OAuth Access-Token&#xff0c;后端 Broker 统一校验。灰度发布&#xff1a;根据 IP/地理位写…...

C++中string流知识详解和示例

一、概览与类体系 C 提供三种基于内存字符串的流&#xff0c;定义在 <sstream> 中&#xff1a; std::istringstream&#xff1a;输入流&#xff0c;从已有字符串中读取并解析。std::ostringstream&#xff1a;输出流&#xff0c;向内部缓冲区写入内容&#xff0c;最终取…...

BCS 2025|百度副总裁陈洋:智能体在安全领域的应用实践

6月5日&#xff0c;2025全球数字经济大会数字安全主论坛暨北京网络安全大会在国家会议中心隆重开幕。百度副总裁陈洋受邀出席&#xff0c;并作《智能体在安全领域的应用实践》主题演讲&#xff0c;分享了在智能体在安全领域的突破性实践。他指出&#xff0c;百度通过将安全能力…...

EtherNet/IP转DeviceNet协议网关详解

一&#xff0c;设备主要功能 疆鸿智能JH-DVN-EIP本产品是自主研发的一款EtherNet/IP从站功能的通讯网关。该产品主要功能是连接DeviceNet总线和EtherNet/IP网络&#xff0c;本网关连接到EtherNet/IP总线中做为从站使用&#xff0c;连接到DeviceNet总线中做为从站使用。 在自动…...

OpenLayers 分屏对比(地图联动)

注&#xff1a;当前使用的是 ol 5.3.0 版本&#xff0c;天地图使用的key请到天地图官网申请&#xff0c;并替换为自己的key 地图分屏对比在WebGIS开发中是很常见的功能&#xff0c;和卷帘图层不一样的是&#xff0c;分屏对比是在各个地图中添加相同或者不同的图层进行对比查看。…...

重启Eureka集群中的节点,对已经注册的服务有什么影响

先看答案&#xff0c;如果正确地操作&#xff0c;重启Eureka集群中的节点&#xff0c;对已经注册的服务影响非常小&#xff0c;甚至可以做到无感知。 但如果操作不当&#xff0c;可能会引发短暂的服务发现问题。 下面我们从Eureka的核心工作原理来详细分析这个问题。 Eureka的…...

R 语言科研绘图第 55 期 --- 网络图-聚类

在发表科研论文的过程中&#xff0c;科研绘图是必不可少的&#xff0c;一张好看的图形会是文章很大的加分项。 为了便于使用&#xff0c;本系列文章介绍的所有绘图都已收录到了 sciRplot 项目中&#xff0c;获取方式&#xff1a; R 语言科研绘图模板 --- sciRplothttps://mp.…...