欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 健康 > 美食 > 【避坑指南】RAGFlow + Ollama + Deepseek 构建本地知识库

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

2025/4/2 18:25:28 来源:https://blog.csdn.net/wangsenling/article/details/146887708  浏览:    关键词:【避坑指南】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,然后将知识库绑定进来,关联一个大模型,就可以开始聊天了

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词