硬核技术组合!用DeepSeekR1、Ollama、Docker、RAGFlow打造专属本地知识库
- IT业界
- 2025-08-27 13:48:02

文章目录 一、引言二、安装Ollama+部署DeepSeekR1三、安装Docker四、安装使用RAGFlow4.1 系统架构4.2 部署流程4.3 使用RAGFlow4.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)->重启电脑
三、安装DockerDocker官网:Docker 进入官网后选择Download for Windows -AMD64进行安装 在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 Engine stopped...说明缺少wsl,此时会自动弹框提示我们安装适用于Linux的Windows子系统,安装一下就ok了。如果没有自动弹框,我们需要到Windows PoweShell中执行wsl --update命令来进行安装。
如果安装完wsl依旧报错,这个时候我们需要检查下报错内容看看是否打开了虚拟机,如果没有打开的话我们需要启用虚拟机平台,然后在BLOS中启用虚拟化,这个大家可以自行去网上来查相应的解决方案,这里也不在过多叙述了。
安装完成后我们需要配置一下Docker的镜像源来提高国内的下载速度 docker.1ms.run,这个镜像源可能会失效,如果大家有更好更快的镜像源可以自行配置
四、安装使用RAGFlowRAGFlow开源代码:RAGFlow Github地址 RAGFlow 是一款基于 检索增强生成(Retrieval-Augmented Generation, RAG) 技术的开源框架,专注于构建企业级智能知识库与问答系统。它通过结合大语言模型(LLM)与结构化文档处理能力,实现从海量非结构化数据(如PDF、Word、扫描件等)中精准提取信息并生成专业回答,是当前私有化知识管理的先进工具。
4.1 系统架构 图中组件功能解释File用户上传的原始文件(如 PDF、Word、扫描件等),是系统的输入源。Document Parser文档解析引擎,负责文件格式解析、OCR 识别、版式分析与结构化分块。Documents解析后的结构化文档数据(分块文本、表格、图像等),存储于向量数据库中。Task Dispatch任务调度器,管理文档处理、检索、生成等任务的队列与资源分配。Tasks具体任务实例(如解析任务、检索任务、生成任务),由调度器分发执行。Questions用户输入的自然语言问题,触发检索与生成流程。LMs大语言模型(如 DeepSeek R1),负责根据检索结果生成最终答案。Answer系统输出的结构化回答,结合检索内容与模型生成能力。流程图
#mermaid-svg-zaXRz2NXWo4iJTtN {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-zaXRz2NXWo4iJTtN .error-icon{fill:#552222;}#mermaid-svg-zaXRz2NXWo4iJTtN .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-zaXRz2NXWo4iJTtN .edge-thickness-normal{stroke-width:2px;}#mermaid-svg-zaXRz2NXWo4iJTtN .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-zaXRz2NXWo4iJTtN .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-zaXRz2NXWo4iJTtN .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-zaXRz2NXWo4iJTtN .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-zaXRz2NXWo4iJTtN .marker{fill:#333333;stroke:#333333;}#mermaid-svg-zaXRz2NXWo4iJTtN .marker.cross{stroke:#333333;}#mermaid-svg-zaXRz2NXWo4iJTtN svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-zaXRz2NXWo4iJTtN .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-zaXRz2NXWo4iJTtN .cluster-label text{fill:#333;}#mermaid-svg-zaXRz2NXWo4iJTtN .cluster-label span{color:#333;}#mermaid-svg-zaXRz2NXWo4iJTtN .label text,#mermaid-svg-zaXRz2NXWo4iJTtN span{fill:#333;color:#333;}#mermaid-svg-zaXRz2NXWo4iJTtN .node rect,#mermaid-svg-zaXRz2NXWo4iJTtN .node circle,#mermaid-svg-zaXRz2NXWo4iJTtN .node ellipse,#mermaid-svg-zaXRz2NXWo4iJTtN .node polygon,#mermaid-svg-zaXRz2NXWo4iJTtN .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-zaXRz2NXWo4iJTtN .node .label{text-align:center;}#mermaid-svg-zaXRz2NXWo4iJTtN .node.clickable{cursor:pointer;}#mermaid-svg-zaXRz2NXWo4iJTtN .arrowheadPath{fill:#333333;}#mermaid-svg-zaXRz2NXWo4iJTtN .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-zaXRz2NXWo4iJTtN .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-zaXRz2NXWo4iJTtN .edgeLabel{background-color:#e8e8e8;text-align:center;}#mermaid-svg-zaXRz2NXWo4iJTtN .edgeLabel rect{opacity:0.5;background-color:#e8e8e8;fill:#e8e8e8;}#mermaid-svg-zaXRz2NXWo4iJTtN .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-zaXRz2NXWo4iJTtN .cluster text{fill:#333;}#mermaid-svg-zaXRz2NXWo4iJTtN .cluster span{color:#333;}#mermaid-svg-zaXRz2NXWo4iJTtN div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-zaXRz2NXWo4iJTtN :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} 拆分解析任务 调用模型任务 用户上传文件 File Document Parser 文档解析 Task Dispatch 任务调度 Tasks 解析子任务 生成结构化数据 Documents 向量数据库存储 用户提问 Questions 检索增强模块 Task Dispatch 任务调度 Tasks 生成子任务 LMs 大语言模型 生成最终答案 Answer异步任务处理
#mermaid-svg-WEJwcLbhJeSa576H {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-WEJwcLbhJeSa576H .error-icon{fill:#552222;}#mermaid-svg-WEJwcLbhJeSa576H .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-WEJwcLbhJeSa576H .edge-thickness-normal{stroke-width:2px;}#mermaid-svg-WEJwcLbhJeSa576H .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-WEJwcLbhJeSa576H .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-WEJwcLbhJeSa576H .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-WEJwcLbhJeSa576H .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-WEJwcLbhJeSa576H .marker{fill:#333333;stroke:#333333;}#mermaid-svg-WEJwcLbhJeSa576H .marker.cross{stroke:#333333;}#mermaid-svg-WEJwcLbhJeSa576H svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-WEJwcLbhJeSa576H .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-WEJwcLbhJeSa576H .cluster-label text{fill:#333;}#mermaid-svg-WEJwcLbhJeSa576H .cluster-label span{color:#333;}#mermaid-svg-WEJwcLbhJeSa576H .label text,#mermaid-svg-WEJwcLbhJeSa576H span{fill:#333;color:#333;}#mermaid-svg-WEJwcLbhJeSa576H .node rect,#mermaid-svg-WEJwcLbhJeSa576H .node circle,#mermaid-svg-WEJwcLbhJeSa576H .node ellipse,#mermaid-svg-WEJwcLbhJeSa576H .node polygon,#mermaid-svg-WEJwcLbhJeSa576H .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-WEJwcLbhJeSa576H .node .label{text-align:center;}#mermaid-svg-WEJwcLbhJeSa576H .node.clickable{cursor:pointer;}#mermaid-svg-WEJwcLbhJeSa576H .arrowheadPath{fill:#333333;}#mermaid-svg-WEJwcLbhJeSa576H .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-WEJwcLbhJeSa576H .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-WEJwcLbhJeSa576H .edgeLabel{background-color:#e8e8e8;text-align:center;}#mermaid-svg-WEJwcLbhJeSa576H .edgeLabel rect{opacity:0.5;background-color:#e8e8e8;fill:#e8e8e8;}#mermaid-svg-WEJwcLbhJeSa576H .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-WEJwcLbhJeSa576H .cluster text{fill:#333;}#mermaid-svg-WEJwcLbhJeSa576H .cluster span{color:#333;}#mermaid-svg-WEJwcLbhJeSa576H div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-WEJwcLbhJeSa576H :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} 并行分发 并行分发 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如果需要修改不同的发行版,可以进入到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 -north-4.myhuaweicloud /infiniflow/ragflow阿里云镜像名:registry -hangzhou.aliyuncs /infiniflow/ragflow 4.3 使用RAGFlowRAGFlow安装完成后,默认端口是80,此时我们访问localhost如果能访问到登录页面就证明部署成功了,此时我们需要注册一个账号来进行登录 进入到首页就是这个样子,此时我们需要添加并配置Ollama模型到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数取决于大模型输出内容的长度。最后点击确定。 查询本机ip地址 查询本地部署模型名称 第三步:随后我们需要去配置系统模型,这里我们聊天模型选择deepseek-r1
4.5 创建知识库这里我们需要对自己的知识库新增文件后然后解析我们上传的知识库
4.6 创建私人助理使用RGA这里我们需要设置助理的名称以及配置刚刚我们创建的知识库
我们这里可以看出它引用了我刚刚上传的知识库
如果大家在部署的任何环节中出现问题的话可以在评论区中留言,或者可以添加下方的名片来咨询遇到的问题!感谢大家阅读,谢谢!!!
硬核技术组合!用DeepSeekR1、Ollama、Docker、RAGFlow打造专属本地知识库由讯客互联IT业界栏目发布,感谢您对讯客互联的认可,以及对我们原创作品以及文章的青睐,非常欢迎各位朋友分享到个人网站或者朋友圈,但转载请说明文章出处“硬核技术组合!用DeepSeekR1、Ollama、Docker、RAGFlow打造专属本地知识库”