使用MaxKB搭建本地企业级知识库


MaxKB = Max Knowledge Base,是一款基于大语言模型和 RAG 的开源知识库问答系统,广泛应用于智能客服、企业内部知识库、学术研究与教育等场景。作为一款专注于知识库问答场景的软件产品,MaxKB 能够为企业的智能化进程注入新的动力,助力企业实现“提质增效”的目标。

本文使用MaxKB搭建本地企业级知识库,由于MaxKB使用docker部署,本例中使用vmware workstation搭建了基于ubuntu的虚拟机。大模型方面使用ollama本地部署了DeepSeek-r1:7b模型。

一、准备linux环境

1、安装ubuntu serve

根据MaxKB官方建议,我们的虚拟机配置设置如下:

  • 操作系统:Ubuntu 22.04
  • CPU/内存:4C
  • 内存:8G
  • 磁盘空间:60GB

由于我们模拟的是企业内部服务器环境,因此这里我们选择在虚拟机中安装ubuntu server,下载的是ubuntu-22.04.5-live-server-amd64.iso
关于ubuntu的安装不是本文的重点,因此不详细讲述,如有需要请参考:b站视频:5分钟安装Ubuntu Server

2、连接虚拟机

本文中使用Xshell和Xftp工具,分别用于远程连接和文件传输,具体使用方法可参见:linux基础03:如何远程链接虚拟机里的linux系统

二、安装docker

1、更新包索引:

sudo apt-get update

2、安装依赖包:

sudo apt-get install apt-transport-https ca-certificates curl software-properties-common

3、添加 Docker 官方 GPG 密钥:

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

4、添加 Docker 仓库:

sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"

5、更新包索引并安装 Docker:

sudo apt-get update
sudo apt-get install docker-ce

6、启动并启用 Docker:

sudo systemctl start docker
sudo systemctl enable docker

7、验证安装:

sudo docker --version

注意:在安装docker的时候,可能遇到国外镜像源不可用的情况,需要通过修改Docker 配置文件(如 /etc/docker/daemon.json)添加国内镜像源,如:阿里云:https://.mirror.aliyuncs.com;网易云:https://hub-mirror.c.163.com;腾讯云:https://mirror.ccs.tencentyun.com等。如果环境是企业内网,请填写内网私有docker镜像仓库。

三、安装MaxKB

MaxKB官方给出两种部署方式,一种是离线部署,一种在线部署。本例中采用离线部署。打开 飞致云开源社区 MaxKB 社区版下载 页面下载最新版本安装包,并上传至部署服务器(此处是之前安装好的ubantu虚拟机)。

1、解压安装包

使用Xshell通过ssh协议登录到部署服务器, 对安装包进行解压:

tar -zxvf maxkb-v1.2.0-offline.tar.gz

2、安装配置(可选)

MaxKB 安装目录、服务运行端口、数据库配置等信息可在安装包解压后中的 install.conf 文件进行配置。

## 安装目录
MAXKB_BASE=/opt
## Service 端口
MAXKB_PORT=8080
## docker 网段设置
MAXKB_DOCKER_SUBNET=172.19.0.0/16
# 数据库配置
## 是否使用外部数据库
MAXKB_EXTERNAL_PGSQL=false
## 数据库地址
MAXKB_PGSQL_HOST=pgsql
## 数据库端口
MAXKB_PGSQL_PORT=5432
## 数据库库名
MAXKB_PGSQL_DB=maxkb
## 数据库用户名
MAXKB_PGSQL_USER=root
## 数据库密码
MAXKB_PGSQL_PASSWORD=Password123@postgres

注意:首次安装之前可在 install.conf文件中的修改参数,安装时则根据修改后的参数执行安装。完成安装后如需再次修改配置参数,则需要在 ${MAXKB_BASE}/maxkb/.env(默认是 /opt/maxkb/.env)文件中进行修改,并且在修改完后需执行 mkctl reload 命令重新加载配置文件。

3、执行安装脚本

# 进入安装包解压缩后目录  
cd maxkb-v1.2.0-offline

# 执行安装命令
bash install.sh

4、登录访问

待所有容器状态显示为healthy后,即可通过浏览器访问地址 http://目标服务器 IP 地址:8080,并使用默认的管理员用户和密码登录 MaxKB。

用户名:admin
默认密码:MaxKB@123..

在这里插入图片描述

注意:由于我们的MaxKB部署在虚拟机里面,所以这里的目标服务器IP是分配给这台虚拟机的IP,即我们使用SSH连接的IP。

二、连接本地模型

1、安装ollama并部署模型

如何在本地安装ollama和部署DeepSeek模型在我的另外一篇博客中有讲解,详见:DeepSeek本地化和云化部署

2、修改环境变量

由于 Ollama 默认监听 127.0.0.1(仅限本地访问),而 Docker 容器默认与宿主机网络隔离,导致容器无法直接访问宿主机上的 ollama 服务,因此我们需要修改Ollama 监听地址。通过添加环境变量,设置OLLAMA_HOST,使其监听所有网络接口(0.0.0.0),允许容器通过宿主机的真实 IP 访问。
在这里插入图片描述
未设置环境变量(默认监听 127.0.0.1)

netstat -ano | findstr ":11434"
TCP    127.0.0.1:11434    0.0.0.0:0    LISTENING    <PID>

设置完成后,确认 Ollama 服务状态,如果变为监听所有IP,则表示成功。(可能需要重启或注销电脑)

netstat -ano | findstr ":11434"
TCP    0.0.0.0:11434          0.0.0.0:0              LISTENING       <PID>
TCP    [::]:11434             [::]:0                 LISTENING       <PID>

3、验证是否可以访问宿主机

进入容器,使用如下命令,如果返回ollama is running,则表示容器直接通过IP访问宿主机。

# 进入容器内部
docker exec -it maxkb /bin/bash
# 测试网络
curl http://192.168.217.1:11434

3、设置模型

在MaxKB的系统设置里面添加模型,模型厂商选择ollama。
需要注意以下几点:

  • 模型名称需要和ollama的模型名称一致,可在本地powershell使用ollama list命令查看。
  • API URL:由于我们设置了环境变量,这里可以直接使用宿主机IP访问。
  • API Key:ollama默认无API Key,这里可以随便填写。
    在这里插入图片描述

4、测试使用

新建一个应用,在设置中选择刚才添加的模型,进行对话:
在这里插入图片描述

总结

本文详细描述了在 Ubuntu 虚拟机中部署 MaxKB 并连接本地 Ollama 模型的完整流程。

常见问题

问题现象解决方案
MaxKB 容器无法访问 Ollama检查 Ollama 是否监听 0.0.0.0:11434,防火墙是否放行。
安装 Docker 时下载速度慢配置国内镜像源(如阿里云、腾讯云)。
MaxKB 登录后无响应检查容器状态是否全部为 healthy,数据库配置是否正确。
### MaxKB 知识库编排概述 MaxKB 是一种用于管理和编排大规模知识图谱的知识管理系统,其核心功能在于通过语义技术实现高效的数据存储、检索以及推理能力[^1]。它支持多种数据模型和查询语言,能够灵活处理结构化与非结构化的数据源。 #### 安装与配置指南 为了启动并运行 MaxKB 实例,需完成以下基础设置: - **环境准备**: 需要安装 Java 运行时环境 (JRE),版本建议为 8 或更高版本[^2]。 - **下载软件包**: 可从官方站点获取最新稳定版压缩文件,并解压至目标目录。 - **初始化数据库**: 执行 `init-db.sh` 脚本以创建必要的表结构和服务端点[^3]。 ```bash ./init-db.sh --config /path/to/config.yaml ``` 上述命令会依据指定路径下的 YAML 文件加载参数来构建初始状态。 #### 数据导入流程说明 当涉及外部资源同步到内部索引时,可采用批量上传方式简化操作过程。具体而言,用户可以利用 RESTful API 接口提交 RDF 格式的文档集合给服务器实例解析入库[^4]。 以下是 Python 示例脚本片段展示如何调用该接口执行任务: ```python import requests url = 'http://localhost:9090/maxkb/import' headers = {'Content-Type': 'application/rdf+xml'} data = open('example.rdf', 'rb').read() response = requests.post(url, headers=headers, data=data) if response.status_code == 200: print("Import succeeded.") else: print(f"Error occurred: {response.text}") ``` 此代码段发送 POST 请求携带本地文件流作为载荷传递过去等待确认消息返回即可判断成功与否[^5]。 #### 查询优化技巧分享 针对复杂场景下性能瓶颈问题,则推荐预先定义好常用模式匹配规则集以便加速响应速度;另外还可以考虑启用缓存机制减少重复计算开销从而提升整体效率水平[^6]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值