使用 MaxKB 和 Ollama:手把手教你搭建本地大语言模型驱动的知识库问答系统
本教程详细介绍如何结合 MaxKB 和 Ollama 快速搭建本地知识库问答系统,集成大语言模型,实现企业级智能问答功能,支持安全、高效的知识管理应用。
前言
2024年4月12日,1Panel开源团队正式推出其新开源项目——MaxKB(github.com/1Panel-dev/MaxKB)。这款知识库问答系统基于大语言模型(LLM),名称“Max Knowledge Base”寓意为最大知识库,旨在为用户提供高效的学习支持和快速的回答能力,致力于成为企业的智能助手。
到2024年4月16日,MaxKB已在GitHub Trending榜单上取得了优异成绩,自发布以来获得了超过1,800个Star和5,000多次下载。有用户反馈,已成功将MaxKB部署在其官网,实现了低成本的专属AI客服。
除了能够快速搭建基于OpenAI、百度千帆等在线大模型的知识库问答系统外,MaxKB还支持与Ollama等本地私有大模型集成,从而实现本地知识库问答系统的快速部署。
准备工作
- 在开始前,请确保已安装好 Ollama、Qwen 大模型以及 Doctor Desktop。
- 如果您不确定如何安装,可以参考我的另一篇文章:在Windows上轻松部署本地大语言模型:Ollama与Open-WebUI的完整指南,该文章提供了详细的安装步骤和配置说明。
一、MaxKB安装部署
部署方式一:通过1Panel应用商店安装
- 登录至 1Panel应用商店。
- 在应用商店中搜索“MaxKB”,点击下载。
部署方式二:命令行安装(推荐)
- 在确保Docker后台服务已启动后,使用以下命令在终端快速部署MaxKB:[强烈建议先开魔法再下载]
docker run -d --name=maxkb -p 8080:8080 -v ~/.maxkb:/var/lib/postgresql/data 1panel/maxkb
命令解析
-
docker run -d
以后台模式运行容器。 -
--name=maxkb
为容器指定名称maxkb
,便于管理。 -
-p 8080:8080
将宿主机的8080端口映射到容器的8080端口。 -
-v ~/.maxkb:/var/lib/postgresql/data
将宿主机的~/.maxkb
目录挂载到容器的/var/lib/postgresql/data
目录,以确保数据持久化。 -
1panel/maxkb
指定要使用的Docker镜像。
二、访问MaxKB
1、访问MaxKB应用
在浏览器中输入以下地址: (确保Docker服务正在运行,且8080端口未被其他服务占用)
http://localhost:8080
输入下述登录信息即可访问MaxKB。
- 用户名:
admin
- 密码:
MaxKB@123..
- 首次登录后,系统将提示用户修改密码,请根据指示进行修改即可。
2、在MaxKB中接入Ollama的大语言模型
- 进入"系统设置" >> 点击左侧 “模型设置” >> 选择"供应商" >> 添加 “模型”
- MaxKB 提供了多种模型供应商,用户可以通过 API Key 在线连接不同的大模型服务
- MaxKB 支持集成多种大模型服务,包括百度千帆大模型、Azure OpenAI 和 OpenAI 等。具体对接步骤请参阅 MaxKB 官方文档。
- 在不同的模型厂商中,API 密钥的申请地址各有不同。然而,本指南将不采用此方式,而是通过 Ollama 在本地部署的
qwen2.5:7b
大模型,将其配置到 MaxKB 中,以实现本地化的模型集成。 - 选择 “供应商” >> “Ollama” >> 添加 “模型” >> 填写配置 >> “添加”
在填写 Ollama 模型配置时,请按照以下说明逐步完成各项内容:
-
模型名称:填写自定义的模型名称,用于识别此模型。例如,您可以使用
qwen257
来代表您本地部署的模型实例。 -
权限:选择模型的访问权限。
- 私有:仅当前用户可以使用,适用于个人测试和专用模型。
- 公用:所有用户均可使用,但无法编辑设置,适合共享的通用模型。
-
模型类型:从下拉列表中选择“大语言模型”,因为
qwen2.5:7b
是一个大语言模型。 -
基础模型:如果列表中未列出目标模型,您可以直接输入模型的名称,例如
qwen2.5:7b
,然后按回车键确认。 -
API 域名:输入您本地部署 Ollama 服务的 API 地址,通常在 Docker 环境下应为
http://host.docker.internal:11434
,确保可以正常访问该地址。 -
API Key:输入您设置的 API 密钥,确保授权访问此模型。如果没有特定的 API Key,可以留空或咨询管理员获取相应权限。
3、建立知识库
- 选择 “知识库” >> 创建 “知识库” >> 填写配置 >> 点击 “创建”
- MaxKB 支持“通用型”和“Web 站点”两种知识库类型,其中“通用型”配置相对简便
- 本示例将以“通用型”创建《水浒传原文》知识库为例进行说明
在 MaxKB 中创建《水浒传原文》知识库时,可以按照以下说明填写各项信息:
-
知识库名称:填写知识库的名称,如“水浒传原文”,简明扼要地标识该知识库的内容。
-
知识库描述:提供简要描述,参考如下:
该知识库包含《水浒传》的完整原文内容,作为中国古典四大名著之一的《水浒传》记录了北宋时期一百零八位梁山好汉的传奇故事。该知识库适用于历史文学研究、传统文化学习和语料库分析等多种场景。
-
向量模型:选择与知识库内容相匹配的向量模型,使用默认的
maxkb-embedding
,用于后续的文本向量化处理。 -
知识库类型:
- 通用型:选择“通用型”用于上传本地文件或手动录入内容,适合原文文档的直接存储。
- Web 站点:此类型用于同步 Web 网站文本数据,不适用于本地上传的文档。
- 完成《水浒传原文》知识库的创建后,继续点击“上传文档”按钮
文本文件:适用于上传包含纯文本内容的文件,如
.txt
文件。这类文件可以直接导入知识库,用于构建文本内容的基础。表格:适用于上传结构化数据的文件,如
.csv
或.xlsx
表格文件。表格文件通常包含多条记录,适合存储问答对、数据表等信息。QA 问答对:用于上传包含问题和对应答案的问答对内容。这种格式适合在知识库中快速建立问答形式的知识点,有助于实现基于问答的搜索或查询功能。
-
在此步骤中,我们选择《水浒传》原文作为上传内容。
-
已为大家准备好数据,百度网盘下载链接如下。此外,也可以访问 水浒传小说在线阅读 自行获取数据。
通过百度网盘分享的文件:水浒传.zip 链接:https://pan.baidu.com/s/12lQhDaaZQIIWquHF21qT6g?pwd=2024 提取码:2024 --来自百度网盘超级会员V3的分享
-
请注意,在导入时需要选择“添加分段标题为关联问题(适用于标题为问题的问答对)”选项。本知识库适合勾选该选项,以便更好地将章节标题与内容关联。
4、创建应用
- 选择 “应用” >> 创建 “应用” >> 填写配置 >> 点击 “创建”
-
应用名称:输入应用名称,如“水浒传达人”,以便用户直观了解该应用的主题和用途。
-
应用描述:参考填写如下描述:
本应用旨在帮助用户了解《水浒传》的故事情节、人物背景和相关知识。用户可以通过提问的方式获取《水浒传》各章节内容、经典情节及人物关系等信息,适用于传统文化学习、文学研究和爱好者交流等场景。
-
选择应用类型:
- 简单配置:适合新手,快速创建小助手。
- 高级编排:适合有一定经验的用户,可以自定义小助手的工作流程和交互逻辑。
- 在 AI 模型配置中选择之前在模型库中添加的
qwen257
模型。 - 另请注意,除了为应用添加知识库外,还需进行相应的参数设置。
- 在参数设置中,建议根据知识库的数据量大小进行选择。由于本示例中的知识库数据量较小,因此选择了第二项配置,以优化性能和查询速度。
- 其他配置项可根据实际需求和偏好进行设置,以满足不同的使用场景和用户体验。
- 点击“保存并发布”后,可在“应用”界面查看并演示效果。
- 演示效果如下
三、嵌入第三方应用
- 选择 “应用” >> 选择 “水浒传达人” >> 点击 “嵌入第三方应用”
- 剩下的步骤就是将代码集成到您的其他应用中,您可以根据具体需求灵活调整和应用。本教程的其余部分不再详述,供您自行探索与发挥。
总结
本教程详细介绍了如何使用 MaxKB 与 Ollama 本地模型构建企业知识库问答系统的完整流程。通过此指南,您可以迅速部署 MaxKB、集成 Ollama 的大语言模型,并建立定制的知识库应用,实现专属的智能问答助手。整个流程包括从 MaxKB 的安装部署、知识库的创建到应用的配置和发布,甚至最后的第三方应用嵌入,均提供了逐步指导,确保用户能够顺利搭建并运行自己的知识库系统。
MaxKB 的灵活性和与本地模型的兼容性,使其不仅能够满足常规的在线大模型接入需求,还支持在本地私有化部署,为用户提供安全、高效且低成本的 AI 解决方案。这一特性使得 MaxKB 特别适合需要自定义知识库问答系统的企业和个人。
至此,您已了解如何使用 MaxKB 与 Ollama 构建知识库小助手,并完成了基本的配置和应用发布。接下来,您可以根据实际需求进一步探索 MaxKB 的高级功能,或将其嵌入到其他应用场景中,以实现更广泛的智能交互。希望本教程能为您的知识库建设提供有力支持,助力企业智能化升级。
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)