[开源]MaxKb+Ollama 构建RAG私有化知识库
https://i-blog.csdnimg.cn/direct/7cfba5bc7d49459295a7d8852d3ba2be.pngMaxKB 是一款基于 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 工具,它将彻底改变你处理文档的方式。
工作原理
https://i-blog.csdnimg.cn/direct/8b1420b2a6674a60b235526268d7c2b1.png
https://i-blog.csdnimg.cn/direct/8f7f447a5fc14d21a158bd6af97514bb.png
RAG 的主要流程主要包含以下 2 个阶段:
[*]数据预备阶段: 管理员将内部私有数据向量化后入库的过程,向量化是一个将文本数据转化为向量矩阵的过程,该过程会直接影响到后续检索的效果;入库即将向量数据构建索引,并存储到向量数据库的过程。
[*]用户应用阶段: 根据用户的 Prompt 提示词,通过检索召回与 Prompt 提示词干系联的知识,并融入到原 Prompt 提示词中,作为大模子的输入 Prompt 提示词,通用大模子因此生成相应的输出。
从上面 RAG 方案我们可以看出,通过与通用大模子相联合,我们可搭建团队私有的内部本地知识库,并能有效的解决通用大模子存在的知识局限性、幻觉标题和隐私数据安全等标题。
实现方案
目前市面上已经有多个开源 RAG 框架,这里将选择MaxKb框架(16.8K ☆ ,https://github.com/1Panel-dev/MaxKB)与大家一起来摆设我们自己或者团队内部的本地知识库。整个摆设过程将涉及以下几个方面:
[*]环境预备: MaxKb框架推荐使用 Docker 摆设,因此我们必要提前把 Docker 安装和配置好
[*]大模子预备: 老牛同砚继承使用Qwen2-7B大模子,大家可以根据自己实际环境选择,无特殊要求
[*]RAG 摆设和使用: 即 MaxKb安装和配置,并最终使用我们大家的 RAG 系统
一、什么是MaxKb?
官网https://github.com/1Panel-dev/MaxKB
MaxKb是一个AI聊天系统,它允许用户构建自己的私人ChatGPT。与依赖云服务的AI工具不同,MaxKb支持本地开源和商用闭源的大语言模子(LLM),用户可以根据自己的需求和预算选择合适的模子。
https://i-blog.csdnimg.cn/direct/e316ef0c19cf4b63a3cbe841e4514d64.png
二、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
https://i-blog.csdnimg.cn/direct/7cfba5bc7d49459295a7d8852d3ba2be.png
方案、 docker版
环境预备
Windows 打开虚拟化功能(Hyper-V 和 WSL)
友谊提示: 这里用的是 Windows 操纵系统,因此下面是 Windows 的配置方式。
安装 Docker 必要用到虚拟化,因此必要 Windows 系统打开Hyper-V和WSL 子系统功能。如果是 Windows 11 家庭版,默认并没有安装Hyper-V功能,可以通过以下方式进行安装:
https://i-blog.csdnimg.cn/direct/c9c883f50a834932b527f535a836c133.png
【第一步(家庭版):安装 Hyper-V 依赖包】
[*]新建一个 txt 暂时文本,并复制以下代码并生存,之后把该暂时文件重定名为Hyper-V.bat
[*]右键以管理员方式运行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 功能(即:控制面板):
https://i-blog.csdnimg.cn/direct/c38916d9a1694e25b5e78f50d7374d79.png
然后,勾选以下 3 个选项(Hyper-V、适用于 Linux 的 Windows 子系统和虚拟机平台),打开虚拟化功能:
https://i-blog.csdnimg.cn/direct/5ccada0f723745909872c1791b5f6c9c.png
打开虚拟化功能
点击确定之后重启电脑即可!
Docker Desktop安装配置
这里之前文章有介绍,可参考,这里不再赘述
https://i-blog.csdnimg.cn/direct/e13317f247e44abe97602c2a392d0b07.png
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..
[*]启动MaxKb镜像
Windows 系统: AnythingLLM 镜像挂载和启动命令(因为命令有多行,必要通过PowerShell执行):
https://i-blog.csdnimg.cn/direct/66a7bba6cafe461b81887a4e4e738a11.png
[*] 拉取镜像完成后,在docker中检查如下
https://i-blog.csdnimg.cn/direct/bc624f484227425a9354ef76e1f395b6.png
[*] 为克制电脑重启后创建的知识库没生存, 删除主动创建摆设的maxkb,如下操纵
https://i-blog.csdnimg.cn/direct/b7de0ced471c46129830ef7863ee1503.png
关闭后操纵页面如下
https://i-blog.csdnimg.cn/direct/6c13000881b24f4cb7e365387162d960.png
找到PGDATA 路径
https://i-blog.csdnimg.cn/direct/dd314390c6c74304ba94cc5c066aae3f.png
然后返回,点击删除
https://i-blog.csdnimg.cn/direct/ff8bcadd6b984c09aba48649a37ababb.png
[*] 从images中再次创建容器
https://i-blog.csdnimg.cn/direct/e98f11e6ac42462682f03ca25934e238.png
第一个端口5432 应该是postgesql的端口 可以不配置
https://i-blog.csdnimg.cn/direct/c84ad54940a748c8a636598cee88d674.png
/var/lib/postgresql/data
https://i-blog.csdnimg.cn/direct/9b755b587181460f95e301d0f12a9da6.png
[*]启动完成,通过浏览器打开AnythingLLM界面:http://localhost:3002
登录后, 创建知识库, 账号暗码见上文
https://i-blog.csdnimg.cn/direct/e249338bb71f403389a9dc5e6e3a9c7e.png
方案二:1Panel 应用商店
你也可以通过 1Panel 应用商店 快速摆设 MaxKB + Ollama + Llama 2,30 分钟内即可上线基于本地大模子的知识库问答系统,并嵌入到第三方业务系统中。
https://i-blog.csdnimg.cn/direct/20ce3670dd6347229415d2fe008c1292.png
配置 MaxKb
配置大语言模子
https://i-blog.csdnimg.cn/direct/b35744b9fa8943b1951211f193d295ad.png
若生存时提示api域名无效, 改为 http://host.docker.internal:11434
https://i-blog.csdnimg.cn/direct/70326d87440c472fbe457c11d3c34d91.png
最后一步 , 创建应用
https://i-blog.csdnimg.cn/direct/4f6a479e1d1a4923932992719490a853.png
五、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成功联合,并使用这一强大的组合进行智能对话和文档处理。无论是个人学习照旧企业团队协作,这一解决方案都将为您提供极大的便利和效率提升。
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页:
[1]