当前位置:   article > 正文

【开源项目】MaxKB+Ollama:构建私有化知识库问答系统

maxkb私有化本地部署

点击上方“AI搞事情”关注我们


MaxKB:开源知识库问答系统

bbad47bc375e3e28cc26404c43b75769.png

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

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

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

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

快速开始

方式一:docker部署
  1. docker run -d --name=maxkb -p 8080:8080 -v ~/.maxkb:/var/lib/postgresql/data --privileged=true 1panel/maxkb
  2. # 用户名: admin
  3. # 密码: MaxKB@123..

从运行命令可以看到,服务依赖postgresql数据库,所以提前需要安装postgresql数据库。docker一键部署postgresql

$ docker run -itd --name postgres -e POSTGRES_PASSWORD=连接PostgreSQL的密码 -e ALLOW_IP_RANGE=0.0.0.0/0 -p 5432:5432 -v /postgres/data:/var/lib/postgresql/data postgres:latest

不然日志会报:

  1. waiting for postgres  
  2. 127.0.0.1:5432 - no response

最后,通过IP:8080端口就可以访问maxkb页面了

aa8a087b4cd58e1ad429e757f7d46c13.png

接着,创建自己的应用了,不过依赖大模型,这里我们接入开源Ollama LLM模型

5c422a8a06f217d9b7ae9f4fac01201b.png
方式二:1Panel 应用商店

你也可以通过 1Panel 应用商店 快速部署 MaxKB + Ollama + Llama 2,30 分钟内即可上线基于本地大模型的知识库问答系统,并嵌入到第三方业务系统中。

6fd039865019b2bde4184e70a8ff3399.png
方式三:本地部署

下载源码并运行python程序入口:

  1. git clone https://github.com/1Panel-dev/MaxKB.git
  2. cd MaxKB
  3. python main.py

在线体验

你也可以在线体验:DataEase 小助手,它是基于 MaxKB 搭建的智能问答系统,已经嵌入到 DataEase 产品及在线文档中。

如你有更多问题,可以查看使用手册,或者通过论坛与我们交流。

  • 使用手册

  • 演示视频

  • 论坛求助

  • 技术交流群

UI 展示

42c1574f057fa7905c4524ef01f682bd.png

技术栈

  • 前端:Vue.js

  • 后端:Python / Django

  • LangChain:LangChain

  • 向量数据库:PostgreSQL / pgvector

  • 大模型:Azure OpenAI、OpenAI、百度千帆大模型、Ollama、通义千问、Kimi、智谱 AI、讯飞星火

Star History

outside_default.png
Star History Chart

ollama:开源大语言模型服务工具

f2ebd3fcb134892e3f57911184d418e9.png

部署安装

docker安装
  1. # 拉取镜像
  2. docker pull ollama/ollama
  3. # 运行镜像
  4. docker run -it -v ollama:/root/.ollama -p 11434:11434 --privileged=true --name ollama ollama/ollama

不加--privileged=true,报错:

runtime/cgo: pthread_create failed: Operation not permitted

访问测试,提示正在运行6148aa198ccb69c6f1b933e020ee019d.png

模型下载

进容器进行模型下载,不然后面添加模型会报NoneType

docker exec -it ollama ollama run qwen

MaxKB + Ollama智能问答系统

添加模型

  • 依次点击系统设置->模型设置->Ollama->添加模型

  • 模型名称填写自定义的名称即可

  • 模型类型选择 大语言模型

  • 基础模型不能随意填写,只能使用ollma模型库中已有的模型,这里我们用的是qwen:1.8b

  • API域名填写前面ollama起服务的机器ip和端口(11434)

  • API Key随便填

dba54f637c6861346f43df1839072d54.png

点击添加后开始下载模型,

3f8db256a7631c3add7d1fb19ff57d47.png

创建知识库

企业私有的专业知识库,包含各种类型的数据,是问答对话中回答用户问题的知识来源。

MaxKB 知识库分为:通用型知识库Web 站点知识库两种类型。
通用型知识库:对离线文档上传管理,支持的文档类型为 Markdown、TXT、PDF、DOCX 类型的文本数据。

Web 站点知识库:用于获取在线静态文本数据管理,输入 Web 根地址后自动同步根地址及子级地址的文本数据。

我们以水浒传来创建知识库,可以从网上下载
点击【知识库】菜单,进入知识库列表页面,该页面支持知识库创建、编辑、同步、删除、查询等功能。

cea3c8ddd059961d897efbc276b69f5a.png

创建并导入,由于文档本身通过换行符进行了分段,我们通过高级分段,并选择分段标识为回车,然后点击生成预览,可以简单预览下分段的效果:

4e7a1f35379e73dc0dc5f751d2be04e8.png

开始导入,显示 知识库创建成功,但是文档还在持续导入中...

fe9e810d3a9075b5ed9e419829f45575.png

从日志看,这里主要是将文档进行向量化,一般也需要比较长的时间。

  1. 2024-05-13 17:26:32 [listener_manage INFO] 开始--->向量化数据集:e22b6526-110a-11ef-9017-0242ac110011
  2. 2024-05-13 17:26:32 [basehttp INFO] "POST /api/dataset HTTP/1.1" 200 714
  3. 2024-05-13 17:26:32 [listener_manage INFO] 数据集文档:['水浒传.txt']
  4. 2024-05-13 17:26:32 [listener_manage INFO] 结束--->向量化数据集:e22b6526-110a-11ef-9017-0242ac110011
  5. 2024-05-13 17:26:32 [listener_manage INFO] 开始--->向量化文档:e22bc2e6-110a-11ef-9017-0242ac110011
  6. 2024-05-13 17:29:37.318 CST [66] LOG:  checkpoint starting: time
  7. 2024-05-13 17:31:52.298 CST [66] LOG:  checkpoint complete: wrote 1329 buffers (8.1%); 0 WAL file(s) added, 0 removed, 0 recycled; write=134.975 s, sync=0.004 s, total=134.980 s; sync files=40, longest=0.001 s, average=0.001 s; distance=9868 kB, estimate=9868 kB
  8. 2024-05-13 17:32:21 [listener_manage INFO] 结束--->向量化文档:e22bc2e6-110a-11ef-9017-0242ac110011
  9. 2024-05-13 17:34:37.377 CST [66] LOG:  checkpoint starting: time

创建应用

基于前面两步创建的AI模型和关联知识库创建AI应用,点击应用->创建应用,填入应用名称和应用描述,修改开场白。

5fb6a3802637bf59261b8a75728bbf66.png

点击创建智能问答机器人便创建成功了,右侧调试预览页面可以体验我们创建的问答机器人,不过这答案着实让人有点想哭/(ㄒoㄒ)/~~,我们可以使用更大的模型或者优化提示词,优化回答效果。

2c26d7d3f4499b699b6f2c392dfee603.png

同时,由于服务器没有GPU,回答相对比较耗时。若有GPU的话,部署加上ollma服务时,加上--gpus all

docker run -it -v ollama:/root/.ollama -p 11434:11434 --privileged=true --name ollama --gpus all ollama/ollama

参考:

  1. MaxKB: https://github.com/1Panel-dev/MaxKB

  2. 操作教程丨MaxKB+Ollama:快速构建基于大语言模型的本地知识库问答系统
    https://www.bilibili.com/read/cv33865421/

  3. 使用手册:  https://github.com/1Panel-dev/MaxKB/wiki/1-%E5%AE%89%E8%A3%85%E9%83%A8%E7%BD%B2

  4. 演示视频: https://www.bilibili.com/video/BV1BE421M7YM/

  5. 论坛求助: https://bbs.fit2cloud.com/c/mk/11

  6. Ollama: https://github.com/ollama/ollama

  7. ollama模型库:https://ollama.com/library

  8. Llama3 中文版整合MaxKB打造私有化知识库问答系统 https://www.bilibili.com/read/cv34130344/

  9. 基于Ollama+MaxKB快速搭建企业级RAG系统 https://zhuanlan.zhihu.com/p/694850029

9f1413bc702f27d95b71bbc496b2c9d0.png

1d7b099be5c4ef8355c7a6033ce928b5.png

d9581fd6a5d16dae676323de9b944664.jpeg

长按二维码关注我们

有趣的灵魂在等你

4ed32fdcf3bac625d760dc07ffab44e2.gif

3db9d53c9f56a6c6b344a3ca32ce64f2.png

54f93efdd235e7eb8cd95e8f1ad9b135.png

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/木道寻08/article/detail/734641
推荐阅读
相关标签
  

闽ICP备14008679号