【避坑指南】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,然后将知识库绑定进来,关联一个大模型,就可以开始聊天了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

森叶

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值