使用Ollama(自定义安装位置)与RagFlow构建本地知识库

发布于:2025-03-24 ⋅ 阅读:(30) ⋅ 点赞:(0)


安装详细步骤在第6节

1. 为什么不直接使用网页版DeepSeek?

  • 我们的需求:绝对的隐私保护个性化知识库构建
  • 场景:如果你希望大模型能根据你们企业的规章制度来回答问题,那么你一般需要上传企业规章制度的附件;但你仍然可能面临的问题有:
    1. 数据隐私问题:联网使用大模型数据隐私性无法得到绝对保证;
    2. 上传文件的限制问题:网页版AI对于文件上传的数量、大小一般有限制并且通常需要付费方;
    3. 仅通过附件扩展上下文功能有限:每次在新对话中提问相关问题时,仍需要重新上传附件;修改删除对话中已有的附件困难;

2. 如何实现网页版DeepSeek不能实现的需求?

  • 隐私保护:
    • 通过对话大模型(如Deepseek)的本地部署解决隐私问题;
  • 个性化知识库构建
    • 使用RAG技术(Retrieval-Auqmented Generation,检索增强生成)构建个人知识库。为此我们需要
      1. 本地部署RAG技术所需要的开源框架RAGFlow;
      2. 本地部署Embedding大模型(或者直接部署自带Embedding模型的RAGFlow版本);

3. 目标效果预览

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

  • 大模型的幻觉问题;
  • 微调技术RAG技术:
    • 微调:在已有的预训练模型基础上,再结合特定任务的数据集进一步对其进行训练,使得模型在这一领域中表现更好(考前复习);
    • RAG:在生成回答之前,通过信息检索从外部知识库中查找与问题相关的知识,增强生成过程中的信息来源,从而提升生成的质量和准确性(考试带小抄);
    • 共同点:都是为了赋予模型某个领域的特定知识,解决大模型的幻觉问题。
  • RAG(Retrieval-Auqmented Generation)的原理:
    • 检索(Retrieval):当用户提出问题时,系统会从外部的知识库中检索出与用户输入相关的内容。
    • 增强(Augmentation):系统将检索到的信息与用户的输入结合,扩展模型的上下文。然后再传给生成模型(也就是Deepseek);
    • 生成(Generation):生成模型基于增强后的输入生成最终的回答。由于这一回答参考了外部知识库中的内容
      因此更加准确可读。

5. 什么是Embedding?为什么需要“Embedding模型”?

  • 检索(Retrieval)的详细过程:
    • 准备外部知识库:外部知识库可能来自本地的文件、搜索引擎结果、API等等。
    • 通过 Embedding (嵌入)模型,对知识库文件进行解析:Embedding 的主要作用是将自然语言转化为机器可以理解的高维向量,并且通过这一过程捕获到文本背后的语义信息(比如不同文本之间的相似度关系);
    • 通过 Embedding (嵌入)模型,对用户的提问进行处理:用户的输入同样会经过嵌入(Embedding)处理,生成一个高维向量
    • 拿用户的提问去匹配本地知识库:使用这个用户输入生成的这个高纬向量,去查询知识库中相关的文档片段。在这个过程中,系统会利用某些相似度度量(如余弦相似度)去判断相似度
  • 模型的分类:Chat模型、Embedding模型;
  • 简而言之:Embedding模型是用来对你上传的附件进行解析的;

在这里插入图片描述
ollama官网上可以选择不用的chat和Embedding大模型
在这里插入图片描述
在这里插入图片描述

6. 本地部署全流程

一共分为3步:

  1. 下载ollama,通过olama将DeepSeek模型下载到本地运行;
  2. 下载RAGflow源代码和Docker,通过Docker来本地部署RAGflow;
  3. 在RAGflow中构建个人知识库并实现基于个人知识库的对话问答。

前置条件

  • CPU >= 4 核
  • RAM >= 16 GB(16貌似不够用)
  • Disk >= 50 GB
  • Docker >= 24.0.0 & Docker Compose >= v2.26.1

下面详细讲解
需要先安装CUDA Toolkit
https://www.bilibili.com/opus/1031430460507422720

6.1 下载ollama,通过olama将DeepSeek模型下载到本地运行

6.1.1 Ollama介绍

Ollama是一个支持在Windows、Linux和MacOS上本地运行大语言模型的工具。它允许用户非常方便地运行和使用各种大语言模型,比如Qwen模型等。用户只需一行命令就可以启动模型。

主要特点包括:

  • 跨平台支持Windows、Linux、MacOS系统。
  • 提供了丰富的模型库,包括Qwen、Llama等1700+大语言模型,可以在官网model library中直接下载使用。
  • 支持用户上传自己的模型。用户可以将huggingface等地方的ggml格式模型导入到ollama中使用。也可以将基于pytorch等格式的模型转换为ggml格式后导入。
  • 允许用户通过编写modelfile配置文件来自定义模型的推理参数,如temperature、top_p等,从而调节模型生成效果。
  • 支持多GPU并行推理加速。在多卡环境下,可以设置环境变量来指定特定GPU。
  • 强大的技术团队支持,很多模型开源不到24小时就能获得支持。

总的来说,Ollama降低了普通开发者使用大语言模型的门槛,使得本地部署体验大模型变得简单易行。对于想要搭建自己的AI应用,或者针对特定任务调优模型的开发者来说,是一个非常有用的工具。它的一些特性,如允许用户自定义模型参数,对模型进行个性化适配提供了支持。

6.1.2 下载ollama平台

Ollama 官方主页:https://ollama.com/
Ollama 下载:https://ollama.com/download
Ollama 官方 GitHub 源代码仓库:https://github.com/ollama/ollama/

在这里插入图片描述

6.1.3 window 默认安装

直接从下载页面下载相对应系统的安装程序,Windows安装程序选择Windows的安装包,点击“Download for Windows”

如果要下载到c盘,默认安装即可
在这里插入图片描述

双击 下载好的exe文件,然后点击install即可
在这里插入图片描述
默认安装位置如下:
在这里插入图片描述

6.1.4 自定义的安装路径

  1. 下载完成后,不要直接双击运行安装程序,否则不给你选择的机会,直接装C盘。而是需要在安装包所在的目录下打开命令提示符(在文件夹地址栏输入cmd并按回车即可快速打开)。

在这里插入图片描述

  1. 在命令提示符中,输入以下命令来指定安装路径(将D:\Your\Path替换为你希望的安装路径):

    OllamaSetup.exe /DIR="D:\Your\Path"
    

回车后,安装程序将按照你指定的路径进行安装。

6.1.5 环境配置

  1. 此电脑,属性,系统,高级系统设置
  2. 在“系统属性”窗口中,点击“环境变量”按钮。
  3. 在“环境变量”窗口中,点击“新建”按钮。
  4. 修改Ollama模型的存储路径
    在“新建系统变量”窗口中,输入变量名OLLAMA_MODELS,变量值为你希望的模型存储路径(例如D:\Ollama\Models),然后点击“确定”。
  5. 让虚拟机里的RAGFlow能够访问到本机上的 Ollama
    在“新建系统变量”窗口中,输入变量名OLLAMA_HOST,变量值0.0.0.0:11434
  6. 点击“确定”保存环境变量设置。
  7. 再用ollama run deepseek-r1:1.5b 时,模型就会下载到你指定的目录。
    在这里插入图片描述

6.1.6 通过ollama下载模型

建议电脑配置低的从最小的开始
在这里插入图片描述
从ollama网页中打开deepseek模型,选择合适大小的模型,将ollama run deepseek-r1复制 到命令行中回车,可以看到下面的内容

在这里插入图片描述
现在已经实现了deepseek的本地化

6.2 下载RAGflow源代码和Docker,通过Docker来本地部署RAGflow;

6.2.1 下载 RAGflow源码

直接下载 zip解压即可
在这里插入图片描述
在这里插入图片描述

6.2.2 下载Docker

Docker 镜像是一个封装好的环境,包含了所有运行 RAGFlow 所需的依赖、库和配置。这里可以直接下载安装,也可以手动安装,自定义位置。这里可以参考

  1. Windows10docker安装D盘,更改docker镜像默认保存路径

  2. Windows安装Docker Desktop的两种方式,命令行安装Docker Desktop,DockerDesktop汉化,Docker Desktop更换磁盘镜像存放目录及报错解决
    这两个链接说明了更改路径的办法和解决错误的办法

在这里插入图片描述

注意:但是我这里直接把路径设置为E盘才修改成功,如果是E盘下的子文件的话就会报错。
在这里插入图片描述

6.2.3 配置修改

路径:E:\RAG\ragflow-main\ragflow-main\docker
文件:.env
在这里插入图片描述

找到84行RAGFLOW_IMAGE=infiniflow/ragflow:v0.17.2-slim并注释掉
找到87行 RAGFLOW_IMAGE=infiniflow/ragflow:v0.17.2取消注释
在这里插入图片描述
如下图,因为 轻量版的不支包含 embedding model,完整版才包含,否则需要后续自己另外在进行embedding 操作
官网git说明
在这里插入图片描述

6.2.4 RAGflow镜像下载

进入 docker 文件夹,利用提前编译好的 Docker 镜像启动服务器:
这个路径
在这里插入图片描述
直接在这里输入cmd打开 命令行,输入下面的内容

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

然后就会开始拉镜像,这里不翻会报错,就是网络原因
在这里插入图片描述
安装成功后
在这里插入图片描述

6.3 在RAGflow中构建个人知识库并实现基于个人知识库的对话问答

6.3.1 docker成功启动后,浏览器输入localhost:80来访问RAGFlow;

在浏览器中输入

localhost:80

显示下面的页面,注册登录
在这里插入图片描述

6.3.2 在“模型提供商”中添加我们本地部署的 deepseek-r1:1.5b 模型;

点击右上角头像,再点击左侧的模型提供商
在这里插入图片描述
然后再点击下面的ollama选择配置

6.3.3 在“系统模型设置”中配置Chat模型(deepseek-r1:1.5b)和Embedding模型(用RAGFlow自带的即可)

选择chat和下载的deepseek模型,这里可以在cmd中查看一下模型的全称
url地址输入的是:http://host.docker.internal:11434
api这里要随便输入一串字符
当上述过程全部设置好直接点击OK连接时,右上角出现了102报错,重启电脑后再连就没问题了
在这里插入图片描述
在这里插入图片描述
然后点击右侧的系统模型设置,选择chat和embedding模型
在这里插入图片描述

6.3.4 创建知识库,上传文件,解析文件

在这里插入图片描述
在这里插入图片描述
天选5p的初始配置使用7b的模型在解析文件时 cpu直接占满,内容爆了,解析失败

6.3.5开始对话

点击聊天,新建助理
在这里插入图片描述
设置配置
在这里插入图片描述

16g内存不够用,报错如下,等新内存条回来了再试试。
在这里插入图片描述

7. 只想迅速搭建个人知识库,可以不本地部署吗?

具体步骤:

  1. 下载RAGFlow源代码和docker,通过docker本地部署RAGFow(RAGFlow目前没有官方的网页版):
  2. 在RAGflow中配置任意的Chat模型和Embedding模型(你需要到这些模型对应的官网去付费申请apikey);

优点:

  • 不用本地部署大模型,简单易操作;
  • 企业大模型性能一般更优越;

缺点:

  • 隐私安全问题;
  • 调用企业大模型API的成本;

参考:
https://www.bilibili.com/video/BV1WiP2ezE5a/?spm_id_from=333.337.search-card.all.click&vd_source=d4e1261efd87c5ce017b4129586b6763