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

【避坑指南】RAGFlow + Ollama + Deepseek 构建本地知识库

实现原理讲解

大模型在处理数据前会有一个前置数据分析,这个前置分析就像 JS 中的生命周期函数一样,可以以配置的方式,让大模型在前置分析时调用,前置分析本身算是一个 tokens 拆解匹配模型,叫 embedding(嵌入)顾名思义就是前置嵌入的意思。

在这个前置模型中,如果能事先训练一些 token 出来,那么嵌入模型递交给大模型时就带着这些 token 过去了,这个过程就叫本地知识库微调。

为何叫微调呢?因为前置嵌入模型可以容纳的上下文长度有限,所以就意味着 token 有限,所以能塞在前置分析的知识库也就有限,所以叫微调。

参考视频

【知识科普】【纯本地化搭建】【不本地也行】DeepSeek + RAGFlow 构建个人知识库_哔哩哔哩_bilibili

构建过程

ollama 的原理讲解

  1. ollama 提供了一种容器,对外提供了统一的调用接口,通过 11434 端口对外提供 Api 请求,来与容纳的大模型对话,这样无论是 llama3,还是 qwen 等模型,都可以被拉进来,进行统一的调用,只需要在调用时指定具体的模型即可,详细的 api 接口可以从 grok 了解

  2. https://github.com/ollama/ollama/releases

open web ui 的概念

  1. 因为 ollama 是纯控制台方式调用,这种方式对普通大众不友好,为了让大众操作简单,一些大佬就开发了本地部署的 webui 界面,通过这个 webui 界面,就可以像与 chatgpt 和 grok 聊天一样,更方便。

  2. https://github.com/open-webui/open-webui

  3. open web ui 中点击头像——设置——管理员设置,就到如图界面,这里有个模型,点击右上角的下载图标(管理)就弹出一个小窗

    1. 你可以通过输入一个具体 模型的名称:XB 的方式下载,如果你不知道名字是什么,可以点击 点击这里 去复制过来,然后点击下载图标,就会自动下载

    2. 你也可以上传本地的 gguf 文件,gguf 文件可以进行微调,需要用到一个 token json 文件,微调后的大模型上传上去后,就具备了知识库的能力,但这个在线训练需要成本,企业可以定期训练下自己的微调大模型来处理具体事务,下面创建一个模型,有个上传小图标,就是上传 gguf 文件的。

ollama 安装注意事项

  1. ollama 默认将大模型下载到 C 盘,如果通过环境变量将大模型位置进行调整,就会造成大模型不可用,具体原因我没深究,总之配了个 1T 的 nvme 硬盘解决 C 盘容量问题。

  2. ollama 默认只能本地调用,沉浸式翻译通过调用本地端口,可以直接使用本地的大模型进行翻译,本地 ollama 调用是不需要 APIKEY 的,当然你也可以设置,我也没具体了解。

    1. 使用 docker 容器来访问宿主机器的 ollama,默认 ollama 是不给访问的,所以必须将 ollama 对所有 IP 段开放,通过在设置环境变量 OLLAMA_HOST=0.0.0.0:11434的方式让 ollama 监听所有网段的请求,注意更改了环境变量,一定要重启 ollama

    2. 从 docker 中访问宿主机有两种方式,一种是 windows docker 提供的内置主机名,在 mac 和 windows 都适用host.docker.internal:11434,另外一种方法是通过内部网络 WSL 提供的 IP 来进行访问 172.26.32.1 每个人的电脑可能有不同,请在 cmd 下输入 ipconfig 查看,记得要开启 docker 的 WSL 网络,另外就是直接访问本机的 192.168.0.160:11434 也行,反正你只要配置了 OLLAMA_HOST,那种方式都能访问到

    3. 详细细节参考 https://zhuanlan.zhihu.com/p/21917097605

RAGFlow 的安装注意点

  1. docker 部署时,记得改写 docker/.env 第 84 行,改为完整版,不用轻量版,轻量版不带 embedding 模型,而 B 站等老视频都基本使用 shaw/dmeta-embedding-zh中文嵌入模型,但是这个版本在 ollama 升级到 0.6 版本时就不能加载了,ollama 官网链接中说的 shaw/dmeta-embedding-zh 好像也没人在意这个问题,也没人追问,也没人回答,也没人处理,所以大家就不要硬往墙上撞了

  1. 针对上面这个嵌入模型不能用的问题,B 站参考视频给了一种解决方案,就是修改 docker/.env 84 行文件,改为完整版 docker 下载

注释 84 行,开启 87 行

  1. 我使用的 GPU 加速版本的 docker 配置,有些人不是 N 卡,或者显卡不足 8G,估计搞这个会报错什么的,我这里没有报错

  1. 上来总有几个服务没启动起来,例如上面的 ragflow-es-01 和 ragflow-mysql,当你在 docker 容器那边直接点击开始时会报端口占用,其实不是端口占用,而是刚刚的实例未启动起来,但端口配置已入库,docker 的那边没有及时释放,所以你再点击开始时,就报端口占用,你只需要 restart,也即先关闭,再启动就 OK 了

RAGFlow 访问和模型添加

  1. RAGFlow 默认在 80 端口上,所以直接访问 localhost 即可访问登录页,注册账号后,进入管理页面

  2. 点击头像,左侧栏有个模型提供商,点击后,可以看到有个 qwen 默认模型,你可以删掉,也可以放着,在下面找到 ollama 模型,点击后弹窗下面的弹窗,你按照下面的截图输入,点击确定,就添加进去了

  1. 系统模型配置设置

  1. 然后就可以创建知识库

    1. 创建知识库,要记得解析,但是有时机器解析时间特别久,可能是卡死了,重启一下 RAGFlow 能解决这个问题,不过数据量大了还是很慢

  1. 解析完成后,你就可以创建一个 Agent,然后将知识库绑定进来,关联一个大模型,就可以开始聊天了

相关文章:

  • 逻辑损失以及梯度下降的实现
  • Docker学习--容器操作相关命令--docker logs 命令
  • 利用 SSRF 和 Redis 未授权访问进行内网渗透
  • Java 中数组转集合的方法
  • 分布式环境下的主从数据同步
  • SpringBoot事务管理(四)
  • Faster-Whisper —— 为语音识别加速的利器
  • 283. 移动零
  • 【QT】Qt4 QtWebKit使用教程
  • 数据结构与算法-双指针法
  • Java 大视界 -- 基于 Java 的大数据可视化在城市规划决策支持中的交互设计与应用案例(164)
  • 30-超市进销存管理系统
  • RAG 高效检索利器 打造企业 “规章制度智能体”(ollama + deepseek + langchain + MinerU)
  • 力扣经典算法篇-5-多数元素(哈希统计,排序,摩尔投票法)
  • CES Asia 2025:行业话语权的逐鹿高地
  • 如何利用系统的数据分析能力提高利润额?
  • websocket获取客服端真实ip
  • Linux | I.MX6ULL 终结者底板原理图讲解(5)
  • 最新万能场馆预约系统源码 基于ThinkPHP+UniApp 含图文搭建部署教程
  • Python+新版DeepSeek V3轻松开发Agent
  • 备案个人网站做淘宝客/企业文化设计
  • asp网站如何安装/欧洲站fba
  • 从化企业网站建设/seo怎么读
  • 短视频营销的概念/外贸网站优化
  • 网站建设协议书 印花税/优化是什么梗
  • 网站内容运营/今天重大新闻国内最新消息