[开源]MaxKb+Ollama 构建RAG私有化知识库

MaxKb+Ollama,基于RAG方案构专属私有知识库

  • 关于RAG
    • 工作原理
    • 实现方案
  • 一、什么是MaxKb?
  • 二、MaxKb的核心功能
  • 三、MaxKb的安装与使用
  • 四、MaxKb的适用场景
  • 五、安装
    • 方案、 docker版
      • Docker Desktop安装配置
      • MaxKb安装和配置
    • 总结和问题

在这里插入图片描述

MaxKB 是一款基于 LLM 大语言模型的知识库问答系统。MaxKB = Max Knowledge Base,旨在成为企业的最强大脑。

  • 开箱即用:支持直接上传文档、自动爬取在线文档,支持文本自动拆分、向量化,智能问答交互体验好;

  • 无缝嵌入:支持零编码快速嵌入到第三方业务系统;

  • 多模型支持:支持对接主流的大模型,包括 Ollama 本地私有大模型(如 Llama 2、Llama 3、qwen)、通义千问、OpenAI、Azure OpenAI、Kimi、智谱 AI、讯飞星火和百度千帆大模型等。

关于RAG

简介
检索增强生成(Retrieval-Augmented Generation,RAG)是一种结合了信息检索和语言模型的技术,它通过从大规模的知识库中检索相关信息,并利用这些信息来指导语言模型生成更准确和深入的答案。这种方法在2020年由Meta AI研究人员提出,旨在解决大型语言模型(LLM)在信息滞后、模型幻觉、私有数据匮乏和内容不可追溯等问题。

在日常工作和学习中,我们时常会面对大量的PDF、Word、Excel等文档,需要从中查找特定的信息或内容。然而,传统的Ctrl+F搜索方式在面对海量文档或复杂格式时,往往效率低下,令人头疼。如果使用MaxKb 工具,它将彻底改变你处理文档的方式。

工作原理

在这里插入图片描述
在这里插入图片描述

RAG 的主要流程主要包含以下 2 个阶段:

  1. 数据准备阶段: 管理员将内部私有数据向量化后入库的过程,向量化是一个将文本数据转化为向量矩阵的过程,该过程会直接影响到后续检索的效果;入库即将向量数据构建索引,并存储到向量数据库的过程。
  2. 用户应用阶段: 根据用户的 Prompt 提示词,通过检索召回与 Prompt 提示词相关联的知识,并融入到原 Prompt 提示词中,作为大模型的输入 Prompt 提示词,通用大模型因此生成相应的输出。

从上面 RAG 方案我们可以看出,通过与通用大模型相结合,我们可搭建团队私有的内部本地知识库,并能有效的解决通用大模型存在的知识局限性、幻觉问题和隐私数据安全等问题。

实现方案

目前市面上已经有多个开源 RAG 框架,这里将选择MaxKb框架(16.8K ☆ ,https://github.com/1Panel-dev/MaxKB)与大家一起来部署我们自己或者团队内部的本地知识库。整个部署过程将涉及以下几个方面:

  1. 环境准备: MaxKb框架推荐使用 Docker 部署,因此我们需要提前把 Docker 安装和配置好
  2. 大模型准备: 老牛同学继续使用Qwen2-7B大模型,大家可以根据自己实际情况选择,无特殊要求
  3. RAG 部署和使用: 即 MaxKb安装和配置,并最终使用我们大家的 RAG 系统

一、什么是MaxKb?

官网https://github.com/1Panel-dev/MaxKB
MaxKb是一个AI聊天系统,它允许用户构建自己的私人ChatGPT。与依赖云服务的AI工具不同,MaxKb支持本地开源和商用闭源的大语言模型(LLM),用户可以根据自己的需求和预算选择合适的模型。
在这里插入图片描述

二、MaxKb的核心功能

  • 文档智能聊天:只需导入文档,MaxKb就能自动进行上下文分析和内容整理,用户可以通过对话的方式快速提取关键信息。
  • 自定义AI代理:用户可以为每个工作区创建不同的AI代理,实现高度的定制化。例如,可以创建一个专门处理Python代码的AI代理,另一个则专门用于处理PDF文档。
  • 多模式支持:无论是免费的开源模型还是付费的商用模型,MaxKb都能兼容,为用户提供极大的灵活性。
  • 广泛的文档支持:从PDF、TXT到Word、Excel,几乎所有常见的文档格式都支持。
  • 嵌入式聊天小部件:用户可以将MaxKb嵌入到自己的网站中,为网站用户提供自动化的智能客服服务。
  • 团队协作支持:通过Docker容器,多个用户可以同时使用MaxKb,非常适合团队开发或公司内部使用。
  • 丰富的API接口:开发者可以轻松集成MaxKb到现有的应用中,实现更多定制化功能。

三、MaxKb的安装与使用

安装AnythingLLM非常简单,官方文档详细明了,按照步骤操作即可。对于开发者来说,一条命令就能完成Docker部署,几分钟就能跑起来一个完整的私人ChatGPT系统。对于不太懂技术的小伙伴来说,也有详细的教程帮助上手。

使用上,用户只需通过拖拽的方式将文档放入工作区,然后就可以开始与文档“聊天”了。这个过程非常自然,就像与人对话一样,用户可以直接让AI分析提取重要内容,无需再翻阅大量文档或使用关键词搜索。

四、MaxKb的适用场景

  • 个人学习助手:对于学生或知识工作者来说,MaxKb是强大的学习助手,可以帮助他们快速获取书籍、论文等学习资料中的信息。

  • 企业文档管理:企业内部的文档种类繁多,通过MaxKb的工作区机制,企业可以分类管理文档,提升整体工作效率。

  • 开发者定制应用:开发者可以利用MaxKb的API集成到现有系统中,打造符合自己需求的AI应用。

  • 网站智能客服:对于需要客服支持的网站来说,可以将MaxKb嵌入网站中,为用户提供快速解答。

五、安装

采用 MaxKb与Ollama 结合使用的方式,快速搭建本地AI

接下来仅讲解一下如何安装 AnythiMaxKbgLLM 以及配置

安装并配置MaxKb
在这里插入图片描述

方案、 docker版

环境准备
Windows 打开虚拟化功能(Hyper-V 和 WSL)

友情提示: 这里用的是 Windows 操作系统,因此下面是 Windows 的配置方式。

安装 Docker 需要用到虚拟化,因此需要 Windows 系统打开Hyper-V和WSL 子系统功能。如果是 Windows 11 家庭版,默认并没有安装Hyper-V功能,可以通过以下方式进行安装:
在这里插入图片描述
【第一步(家庭版):安装 Hyper-V 依赖包】

  1. 新建一个 txt 临时文本,并复制以下代码并保存,之后把该临时文件重命名为Hyper-V.bat​
  2. 右键以管理员方式运行Hyper-V.bat​,本代码自动安装相关包,完成之后输入Y​重启电脑后即可
pushd "%~dp0"
dir /b %SystemRoot%\servicing\Packages\*Hyper-V*.mum >hyper-v.txt
for /f %%i in ('findstr /i . hyper-v.txt 2^>nul') do dism /online /norestart /add-package:"%SystemRoot%\servicing\Packages\%%i"
del hyper-v.txt
Dism /online /enable-feature /featurename:Microsoft-Hyper-V-All /LimitAccess /ALL

【第二步:开启虚拟化功能】

首先,打开 Windows 功能(即:控制面板):
在这里插入图片描述
然后,勾选以下 3 个选项(Hyper-V、适用于 Linux 的 Windows 子系统和虚拟机平台),打开虚拟化功能:
在这里插入图片描述
打开虚拟化功能
点击确定之后重启电脑即可!‍‍

Docker Desktop安装配置

这里之前文章有介绍,可参考,这里不再赘述‍‍
在这里插入图片描述

MaxKb安装和配置

方式一: 本地docker部署
接下来,开始安装和部署MaxKb框架,包含以下 3 步:

docker run -d --name=maxkb --restart=always -p 3002:8080 -v ~/.maxkb:/var/lib/postgresql/data -v ~/.python-packages:/opt/maxkb/app/sandbox/python-packages cr2.fit2cloud.com/1panel/maxkb# username: admin
# pass: MaxKB@123..
  1. 启动MaxKb镜像
    Windows 系统: AnythingLLM 镜像挂载和启动命令(因为命令有多行,需要通过PowerShell执行):

在这里插入图片描述

  1. 拉取镜像完成后,在docker中检查如下
    在这里插入图片描述

  2. 为避免电脑重启后创建的知识库没保存, 删除自动创建部署的maxkb,如下操作
    在这里插入图片描述
    关闭后操作页面如下
    在这里插入图片描述
    找到PGDATA 路径
    在这里插入图片描述
    然后返回,点击删除
    在这里插入图片描述

  3. 从images中再次创建容器

在这里插入图片描述

第一个端口5432 应该是postgesql的端口 可以不配置

在这里插入图片描述

/var/lib/postgresql/data

在这里插入图片描述

  1. 启动完成,通过浏览器打开AnythingLLM界面:http://localhost:3002
    登录后, 创建知识库, 账号密码见上文
    在这里插入图片描述
    方案二:1Panel 应用商店
    你也可以通过 1Panel 应用商店 快速部署 MaxKB + Ollama + Llama 2,30 分钟内即可上线基于本地大模型的知识库问答系统,并嵌入到第三方业务系统中。
    在这里插入图片描述

配置 MaxKb
配置大语言模型
在这里插入图片描述
若保存时提示api域名无效, 改为 http://host.docker.internal:11434
在这里插入图片描述

​最后一步 , 创建应用
在这里插入图片描述

五、MaxKb 导入数据和使用
上一步配置完成之后,无需任何其他配置,就可以和大模型对话聊天了,和通过其他客户端与大模型对话没有区别。接下来,我们需要导入我们内部私有数据,并进行验证。

5.1 导入内部数据
我们在电脑本地新建一个 txt 文件,文件名为:为什么个人、团队等均有必要部署私有化的RAG知识库系统.txt​,文件内容就是本文的开头内容:

自ChatGPT发布以来,大型语言模型(Large Language Model,LLM,大模型)得到了飞速发展,它在解决复杂任务、增强自然语言理解和生成类人文本等方面的能力让人惊叹,几乎各行各业均可从中获益。然而,在一些垂直领域,这些开源或闭源的通用的基础大模型也暴露了一些问题,主要有以下3个方面:1. **知识的局限性:** 大模型的知识源于训练数据,目前主流大模型(如:通义千问、文心一言等)的训练数据基本来源于网络公开的数据。因此,非公开的、离线的、实时的数据大模型是无法获取到(如:团队内部实时业务数据、私有的文档资料等),这些数据相关的知识也就无从具备。
2. **幻觉问题:** 大模型生成人类文本底层原理是基于概率(目前还无法证明大模型有意识),所以它有时候会**一本正经地胡说八道**,特别是在不具备某方面的知识情况下。当我们也因缺乏这方面知识而咨询大模型时,大模型的幻觉问题会各我们造成很多困扰,因为我们也无法区分其输出的正确性。
3. **数据的安全性:** 对于个人、创新团队、企业来说,**数据安全**至关重要,老牛同学相信没有谁会愿意承担数据泄露的风险,把自己内部私有数据上传到第三方平台进行模型训练。这是一个矛盾:我们既要借助通用大模型能力,又要保障数据的安全性!为了解决以上3个大模型通用问题,**检索增强生成**(Retrieval-Augmented Generation,**RAG**)方案就应运而生了!

首先,点击RAG-ClassmateWX工作空间右边的上传图标,准备上传本 txt 文件:


准备上传文件;然后,点击 txt 文件并上传,并点击Move to workspace导入到工作空间:

5.2 内部数据使用和验证

总结和问题

和之前的大模型部署和应用过程相比,基于 MaxKb 的 RAG 实现整个部署过程比较繁琐,包括环境准备、Docker 安装和配置、MaxKb 配置等。然而,MaxKb 的使用过程却相对比较简单,只需要上传数据文件,MaxKb 框架屏蔽了中间的数据提取分割、向量化处理、向量索引和入库、检索召回和重组 Prompt 提示词等过程。

同时,通过构建本地知识库,做了一个简单的测试验证,测试结果表明,在使用 RAG 的情况下,大模型的回答结果更加有效、更符合我们期望,同时具备了一定的创造性!

注意事项

资源要求:运行大型语言模型需要一定的内存或显存。请确保您的计算机满足Ollama和所选模型的资源要求。

网络问题:在下载模型时,可能会遇到网络问题导致下载速度缓慢或失败。此时可以尝试重启电脑或重启Ollama服务来解决问题。

模型选择:根据自己的需求和预算选择合适的模型。免费的开源模型可能适合个人学习或小型项目,而付费的商用模型则可能提供更高的性能和准确性。

通过以上步骤,您可以将MaxKb 与Ollama成功结合,并利用这一强大的组合进行智能对话和文档处理。无论是个人学习还是企业团队协作,这一解决方案都将为您提供极大的便利和效率提升。

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

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

相关文章

原生鸿蒙版小艺APP接入DeepSeek-R1,为HarmonyOS应用开发注入新活力

原生鸿蒙版小艺APP接入DeepSeek-R1,为HarmonyOS应用开发注入新活力 在科技飞速发展的当下,人工智能与操作系统的融合正深刻改变着我们的数字生活。近日,原生鸿蒙版小艺APP成功接入DeepSeek-R1,这一突破性进展不仅为用户带来了更智…

Linux进阶——web服务器

一、相关名词解释及概念: www:(world wide web)全球信息广播,通常来说的上网就是使用www来查询用户所需的信息。使用http超文本传输协议。 过程:web浏览器向web服务(Apache,Microsoft,nginx&…

网易日常实习一面面经

1. 自我介绍 2. 两道代码题: 第一道题:写一道链表排序题要求空间复杂度O(1) :已ac 插入排序算法 时间复杂度 O(N^2),空间复杂度O(1) class ListNode{int val;ListNode next;public ListNode(int x) {this.val x;} } public cl…

查询语句来提取 detail 字段中包含 xxx 的 URL 里的 commodity/ 后面的数字串

您可以使用以下 SQL 查询语句来提取 detail 字段中包含 oss.kxlist.com 的 URL 里的 commodity/ 后面的数字串&#xff1a; <p><img style"max-width:100%;" src"https://oss.kxlist.com//8a989a0c55e4a7900155e7fd7971000b/commodity/20170925/20170…

Ubuntu 24.10 安装Deepseek(Ollama+openwebui)

一、Ollama安装 1.在线安装 curl -fsSL https://ollama.com/install.sh | sh 如果curl工具没有安装先执行如下命令 sudo apt install curl 验证curl是否安装成功 curl --version 安装的过程中会提示输入当前系统登录用户的密码。 安装提示success后,验证安装 ollama -…

基于YOLOv8+PyQt5的目标检测系统(环境配置+数据集+Python源码+PyQt5界面)——持续更新中

第1期 基于YOLOv8的吸烟行为检测系统&#xff08;环境配置数据集Python源码PyQt5界面&#xff09; 第2期 基于YOLOv8的玩手机行为检测系统&#xff08;环境配置数据集Python源码PyQt5界面&#xff09; 第3期 基于YOLOv8的灭火器检测系统&#xff08;环境配置数据集Python源码…

项目的虚拟环境的搭建与pytorch依赖的下载

文章目录 配置环境 pytorch的使用需要安装对应的cuda 在PyTorch中使用CUDA, pytorch与cuda不同版本对应安装指南&#xff0c;查看CUDA版本&#xff0c;安装对应版本pytorch 【超详细教程】2024最新Pytorch安装教程&#xff08;同时讲解安装CPU和GPU版本&#xff09; 配置环境…

[2025年最新]2024.3版本idea无法安装插件问题解决

背景 随着大模型的持续发展&#xff0c;特别年前年后deepseek的优异表现&#xff0c;编程过程中&#xff0c;需要解决ai来辅助编程&#xff0c;因此需要安装一些大模型插件 问题描述 在线安装插件的时候会遇到以下问题&#xff1a; 1.数据一直在加载&#xff0c;加载的很满 2.点…

怎么查看电脑显存大小(查看电脑配置)

这里提供一个简单的方法查看 winr打开cmd 终端输入dxdiag进入DirectX 点击显示查看设备的显示内存&#xff08;VRAM&#xff09; 用这个方法查看电脑配置和显存是比较方便的 dxdiag功能 Dxdiag是Windows的DirectX诊断工具&#xff0c;其主要作用包括但不限于以下几点&#…

拾取丢弃物品(结构体/数组/子UI/事件分发器)

实现&#xff1a;场景中随机生成几种物品&#xff0c;玩家可以拾取这些物品&#xff0c;也可丢弃已经拾取到的物品。 拾取丢弃物品时UI能实时更新玩家身上的物品量。 一.物品信息的创建 1.枚举 物品名 2.结构体表示物体属性 3.物品缩略图&#xff08;缩略图大小要为2的n次方…

KITE提示词框架:引导大语言模型的高效新工具

大语言模型的应用日益广泛。然而&#xff0c;如何确保这些模型生成的内容在AI原生应用中符合预期&#xff0c;仍是一个需要不断探索的问题。以下内容来自于《AI 原生应用开发&#xff1a;提示工程原理与实战》一书&#xff08;京东图书&#xff1a;https://item.jd.com/1013604…

性能优化中的系统架构优化

系统架构优化是性能优化的一个重要方面&#xff0c;它涉及到对整个IT系统或交易链上各个环节的分析与改进。通过系统架构优化&#xff0c;可以提高系统的响应速度、吞吐量&#xff0c;并降低各层之间的耦合度&#xff0c;从而更好地应对市场的变化和需求。业务增长导致的性能问…

【学习笔记】计算机网络(三)

第3章 数据链路层 文章目录 第3章 数据链路层3.1数据链路层的几个共同问题3.1.1 数据链路和帧3.1.2 三个基本功能3.1.3 其他功能 - 滑动窗口机制 3.2 点对点协议PPP(Point-to-Point Protocol)3.2.1 PPP 协议的特点3.2.2 PPP协议的帧格式3.2.3 PPP 协议的工作状态 3.3 使用广播信…

机器学习 - 理解偏差-方差分解

为了避免过拟合&#xff0c;我们经常会在模型的拟合能力和复杂度之间进行权衡。拟合能力强的模型一般复杂度会比较高&#xff0c;容易导致过拟合。相反&#xff0c;如果限制模型的复杂度&#xff0c;降低其拟合能力&#xff0c;又可能会导致欠拟合。因此&#xff0c;如何在模型…

【STM32】ADC

本次实现的是ADC实现数字信号与模拟信号的转化&#xff0c;数字信号时不连续的&#xff0c;模拟信号是连续的。 1.ADC转化的原理 模拟-数字转换技术使用的是逐次逼近法&#xff0c;使用二分比较的方法来确定电压值 当单片机对应的参考电压为3.3v时&#xff0c;0~ 3.3v(模拟信号…

DeepSeek 助力 Vue 开发:打造丝滑的步骤条

前言&#xff1a;哈喽&#xff0c;大家好&#xff0c;今天给大家分享一篇文章&#xff01;并提供具体代码帮助大家深入理解&#xff0c;彻底掌握&#xff01;创作不易&#xff0c;如果能帮助到大家或者给大家一些灵感和启发&#xff0c;欢迎收藏关注哦 &#x1f495; 目录 Deep…

基于Python的人工智能驱动基因组变异算法:设计与应用(下)

3.3.2 数据清洗与预处理 在基因组变异分析中,原始数据往往包含各种噪声和不完整信息,数据清洗与预处理是确保分析结果准确性和可靠性的关键步骤。通过 Python 的相关库和工具,可以有效地去除噪声、填补缺失值、标准化数据等,为后续的分析提供高质量的数据基础。 在基因组…

elasticsearch安装插件analysis-ik分词器(深度研究docker内elasticsearch安装插件的位置)

最近在学习使用elasticsearch&#xff0c;但是在安装插件ik的时候遇到许多问题。 所以在这里开始对elasticsearch做一个深度的研究。 首先提供如下链接&#xff1a; https://github.com/infinilabs/analysis-ik/releases 我们下载elasticsearch-7-17-2的Linux x86_64版本 …

linux部署ollama+deepseek+dify

Ollama 下载源码 curl -L https://ollama.com/download/ollama-linux-amd64.tgz -o ollama-linux-amd64.tgz sudo tar -C /usr -xzf ollama-linux-amd64.tgz启动 export OLLAMA_HOST0.0.0.0:11434 ollama serve访问ip:11434看到即成功 Ollama is running 手动安装deepseek…

力扣 单词拆分

动态规划&#xff0c;字符串截取&#xff0c;可重复用&#xff0c;集合类。 题目 单词可以重复使用&#xff0c;一个单词可用多次&#xff0c;应该是比较灵活的组合形式了&#xff0c;可以想到用dp&#xff0c;遍历完单词后的状态的返回值。而这里的wordDict给出的是list&…