Deepseek + RAGFlow 搭建本地知识库问答系统

  • 原因
    • 为什么要本地部署
    • RAG模型和微调模型区别
    • 本地部署流程
      • 1. 下载 `ollama` ,通过`ollama`把`Deepseek`模型下载到本地运行。
      • 2. 下载`RAGFlow` 源代码和 `Docker` ,通过`Docker`部署`RAGFlow`。
      • 3. 在`RAGFlow`中构建个人知识库并基于个人知识库的对话问答。

技术 ollama + docker + RAGFlow

原因

1.为什么要本地部署,不直接使用现有的DeepSeek?

2.为什么要使用RAG技术?RAG和模型微调的区别?

3.本地部署全流程

为什么要本地部署

本地部署优点

  1. 保证数据隐私,联网大模型会把数据传输到官方服务器。
  2. 可以解除文件大小限制,使用知识库,网页版上传一般对文件大小是有限制的
  3. 网页上传如果针对很多文件的话,每次都要上传,下载,修改,删除,操作很麻烦

所以采用 本地部署Deepseek + 知识库(个性化知识库,操作处理)

个性化知识库 一般采用 RAGRetrieval-Augmented Generation,检索增强生成),使用开源框架 RAGFlow

RAG模型和微调模型区别

一般情况下当大模型不了解你的知识的时候就开始出现“幻觉”问题。微调是在原有模型的基础上,结合特定任务的数据集进一步对其进行训练,使模型在这领域表现更好。(类似与考前复习,模型通过对应的训练消化好知识,然后对这一领域相关内容进行回复)。
RAG主要分检索(Retrieval)、增强(Augmented)、生成(Generation)三步。

  • 检索:用户提出问题后,从外部知识库中检索出与用户问题相关的
  • 增强:系统将检索到的信息和用户输入相结合,扩展模型的上下文。让生成模型可以利用外部知识,使生成的答案更准确和丰富。
  • 生成:生成模型基于增强后的输入生成最终答案。结合用户输入和检索到的信息,生成符合逻辑、准确和可读的文本内容。

本地部署流程

1. 下载 ollama ,通过ollamaDeepseek模型下载到本地运行。

ollama是一个本地运行和管理大语言模型(LLM)的工具。

官网下载地址

安装后查看是否安装成功
cmd或者终端中执行:

ollama -v

输出版本即为正常安装:
如果虚拟机要访问本地的ollama需要配置环境变量

OLLAMA_HOST=0.0.0.0:11434

查看配置结果

set ollama

正常输入如下

OLLAMA_HOST=0.0.0.0:11434

浏览器访问验证:

http://127.0.0.1:11434/

在这里插入图片描述

下载并运行deepseek-r1:7b(当然可以根据自己的电脑的配置使用不同的模型)

ollama run deepseek-r1:7b

可能要几分钟时间, 出现下面界面即为启动成功
在这里插入图片描述

可以输入问题提问下
在这里插入图片描述

2. 下载RAGFlow 源代码和 Docker ,通过Docker部署RAGFlow

前提需要有Docker进行安装和部署(这里不做介绍了),也需要docker compose,直接安装最新版本即可

github上官网中文地址
下载ragflow源码

git clone https://github.com/infiniflow/ragflow.git

下载完成之后找到这个文件,因为我们使用的是完整的模型,有的配置需要改一下
文件位置ragflow\docker\.env

在这里插入图片描述

说明: v0.20.0 是版本号,可能会随着RAGFlow迭代发生变化,
带slim的是精简的模型需要配置外部向量化,这里直接使用完整的模型,方便简化配置

进入到docker路径下启动

cd ragflow\docker
docker compose up -d

这个过程会下载镜像和模型可能需要一段时间,启动完成之后
浏览器访问

http://localhost

在这里插入图片描述

先注册后登录

3. 在RAGFlow中构建个人知识库并基于个人知识库的对话问答。

进行绑定知识库和模型
在这里插入图片描述

进行本地模型创建
在这里插入图片描述

类型: chat
模型名称: deepseek-r1:7b 就是 ollama 本地运行的,可以通过 ollama list 查看
基础Url http://127.0.0.1:11434 但是我是docker容器访问本地,配置的是 http://host.docker.internal:11434
最大token数 这个可以自己配置

如果是服务器上的模型配置他们对应的 api key 和地址即可

在这里插入图片描述

上传并解析文件
在这里插入图片描述

创建助理
在这里插入图片描述

尝试使用

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/web/94514.shtml
繁体地址,请注明出处:http://hk.pswp.cn/web/94514.shtml
英文地址,请注明出处:http://en.pswp.cn/web/94514.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

elementui附件上传自定义文件列表,实现传完即可预览、下载、删除,二次封装el-upload

背景当前 elementui 的文件上传组件在上传完文件之后只支持删除,用户希望可以看到附件信息,还可以预览自己刚刚上传但未提交的文件,还希望可以下载,因为公司的下载功能当前是通过 OnlyOffice 实现了文件格式转换,所以我…

linux的conda配置与应用阶段的简单指令备注

1.新建某虚拟环境 conda create -n 虚拟环境名 pythonPython版本号 (-y)2.退出当前虚拟环境 conda deactivate3.查看当前conda环境下所有的虚拟环境 conda info --envs4.查看conda版本和位置 conda --versionwhich conda5.激活某个conda虚拟环境 conda activate 虚拟环境名

虚拟化技术 ——KVM

一、KVM 技术简介 KVM(Kernel-based Virtual Machine,基于内核的虚拟机)是 Linux 内核原生支持的全虚拟化解决方案,依托 CPU 的硬件虚拟化技术(Intel VT-x/AMD-V)实现高效的虚拟机运行。它将 Linux 内核转…

线程间Bug检测工具Canary

Canary1.Introduction2.Approach2.1.数据依赖分析2.2.线程间依赖分析3.Bug检测4.Evaluation参考文献1.Introduction 主要做跨线程value-flow bug检查,下面代码中两个函数中存在指向关系:1. x→o1x \rightarrow o_1x→o1​, b→o2b \rightarrow o_2b→o2…

AEB 强制来临,东软睿驰Next-Cube-Lite有望成为汽车安全普惠“破局器”

AEB 强制时代正在悄然谱写“普惠安全”的行业底色。日前,备受关注的强制性国家标准《轻型汽车自动紧急制动系统技术要求及试验方法》(以下简称“新国标”)意见征求阶段已经结束。该标准将替代现行国标GB/T 39901-2021,计划于2028年…

css的white-space: pre

用户从别的地方复制的配置文件,粘贴到输入框内,需要保留原始格式发送给后端。核心步骤:### 1. 格式保持机制 - white-space: pre :这是最关键的CSS属性,确保所有空格、制表符、换行符都被保留 - wrap"off" &…

【AI解读源码系列】ant design mobile——Space间距

前言 笔者目前业务主要围绕ant design mobile组件库来交付H5前端工作。 故此出此专栏来解读每一个组件是如何实现的。 本文基于AI来解读Space组件。 文档链接: https://mobile.ant.design/zh/components/space 源码: https://github.com/ant-design/ant-…

《用餐》,午餐食堂即景小诗分享(手机/小视频/光盘/养生)

大妈食堂碎碎念,怪罪手机延工期。 笔记模板由python脚本于2025-08-21 19:34:46创建,本篇笔记适合喜欢友善生活和诗的coder翻阅。 学习的细节是欢悦的历程 博客的核心价值:在于输出思考与经验,而不仅仅是知识的简单复述。 Python官…

高通平台WIFI学习-- 基于WCN6750 Tri-Band 2x2 MIMO 802.11ax的讲解

一 前言: 官方资料显示WLAN支持如下的Key features ■ Compliant with IEEE 802.11a/b/g/n/ac/ax ■ Supports 2x2 multi-user multiple-input multiple-output (MU-MIMO) ■ Up to 2.9 Gbps data rate (2x2 160 MHz) ■ Tri-band 2.4 GHz/5 GHz/6 GHz support ■ 20 MHz…

javaweb开发笔记——XML_Tomcat10_HTTP

第四章 XML_Tomcat10_HTTP 一 XML XML是EXtensible Markup Language的缩写,翻译过来就是可扩展标记语言。所以很明显,XML和HTML一样都是标记语言,也就是说它们的基本语法都是标签。 可扩展 三个字表面上的意思是XML允许自定义格式。但这不代…

Python从入门到自动化运维

文章目录IPO编程方式、print、input函数print() -- 输出信息到屏幕input() -- 读取用户的输入基本数据类型int、float、bool、str常用 str 操作方法格式化字符串的三种方式数据验证方法字符串拼接字符串去重数据类型转换函数容器类型列表(list):可变、可重复、有序元…

【数据可视化-98】2025年上半年地方财政收入Top 20城市可视化分析:Python + Pyecharts打造炫酷暗黑主题大屏

🧑 博主简介:曾任某智慧城市类企业算法总监,目前在美国市场的物流公司从事高级算法工程师一职,深耕人工智能领域,精通python数据挖掘、可视化、机器学习等,发表过AI相关的专利并多次在AI类比赛中获奖。CSDN…

【基础-单选】向服务器提交表单数据,以下哪种请求方式比较合适

向服务器提交表单数据,以下哪种请求方式比较合适A.RequestMethod.GET B.RequestMethod.PUT C.RequestMethod.POST D.RequestMethod.DELETE 解释如下: 在HarmonyOS应用开发中,向服务器提交表单数据,C. RequestMethod.POST 是比较合…

论文阅读:Code as Policies: Language Model Programs for Embodied Control

地址:Code as Policies: Language Model Programs for Embodied Control 摘要 针对代码补全任务训练的大型语言模型(LLMs)已被证实能够从文档字符串(docstrings)中合成简单的 Python 程序。研究发现,这些…

Vue 3 customRef 完全指南:自定义响应式引用的终极教程

📖 概述 customRef() 是 Vue 3 中用于创建自定义响应式引用的组合式 API。它允许开发者完全控制响应式数据的读取和写入行为,为复杂的响应式逻辑提供了强大的灵活性。 🎯 基本概念 什么是 customRef? customRef() 是一个工厂函数…

Java项目-苍穹外卖_Day1

项目来源: 【黑马程序员 Java项目实战《苍穹外卖》】 [https://www.bilibili.com/video/BV1TP411v7v6] ZZHow(ZZHow1024) 软件开发整体介绍 软件开发流程 需求分析:需求规格说明书、产品原型。设计:UI 设计、数据库设计、接口设计。编码…

面试可能问到的问题思考-MySQL

MySQL 1. 数据库与缓存的一致性 引入缓存,因为缓存只是数据库数据的副本,那么就可能存在副本和原数据不一致的情况 一致性 ACID里面的C,和CAP中的C不是一个概念,虽然都叫一致性。CAP中的C,指的是多个副本之间逻辑上…

【Java】 Spring Security 赋能 OAuth 2.0:构建安全高效的现代认证体系

还在为高昂的AI开发成本发愁?这本书教你如何在个人电脑上引爆DeepSeek的澎湃算力! 在当今数字化时代,认证与授权已成为应用系统安全的核心。OAuth 2.0 作为一种开放标准协议,广泛应用于第三方授权场景中,而 Spring Security 则提供了强大的框架支持来实现这一协议。本文深…

实际工作几月后常用相关命令笔记记录

目前,我这只工程师幼崽经历几个月的工作,不能说是收获很多,也算是成长经验1吧。主要工作后才知道好多东西都是自己不会的不了解的,但是工作需要不一定自己完全吃透,在合适的地方正确的使用一般情况就ok了,所…

突破传统文本切片的瓶颈:AntSK-FileChunk语义切片技术详解前言:为什么我们需要重新思考文本切片?

在当今大语言模型(LLM)应用蓬勃发展的时代,我们面临着一个看似简单却至关重要的问题:如何有效地处理长文本?无论是构建知识库、实现RAG(检索增强生成)系统,还是进行文档智能分析&…