在Ubuntu22.04下基于源码启动的MaxKB+Ollama知识库问答系统部署过程
本文主要是在Ubuntu22.04下对基于MaxKB的知识库问答系统二次开发前的部署过程记录。
引言
本文主要是在Ubuntu22.04下对基于MaxKB的知识库问答系统二次开发前的部署过程记录。
本文中主要涉及内容包括:
Postgresql数据库的安装。
Postgresql数据库的vector拓展的配置。
Python环境搭建。
源码启动MaxKB项目。
Windows下Ollama的安装及大模型的拉取。
MaxKB对接Ollama模型,尝试得到简易的知识库问答系统。
MaxKB官方部署指南
MaxKB项目地址
pgvector项目地址
Ollama地址
本文是在前文发布的在Windows下基于源码启动的MaxKB+Ollama知识库问答系统部署过程后再次尝试部署,因此顺序与前文不太一致,先进行出错比较多的部分。
一、python环境搭建
1. conda创建虚拟环境
在MaxKB官方文档中推荐的python版本为3.11.x,因此使用Anaconda新建MaxKB专属的虚拟环境。
conda create --name maxkb python==3.11

2. 拉取MaxKB项目源代码
git clone git@github.com:1Panel-dev/MaxKB.git
3. 前端依赖下载
1. 安装新版本的Nodejs
前端依赖下载需要使用较高版本的Nodejs,这里先在Ubuntu上安装Node.js。
使用apt查看可下载的Node的版本信息:
apt list -a nodejs

发现没有比较新的22,23版本,运行下面的命令(如果没有curl需要提前安装)。
curl -sL https://deb.nodesource.com/setup_22.x | bash -
运行之后,再使用apt list -a nodejs可发现,已经可以使用apt下载较新版本的nodejs了。
直接使用下面的命令,会自动下载较新版本:
apt install nodejs
安装结束可以使用node -v和npm -v分别查看node和npm的版本信息。
此时安装好npm后,需要配置npm源,建议使用以下命令添加国内源(验证可用):
npm config set registry https://registry.npmmirror.com
使用以下命令安装前端所需依赖(注意:执行下面的命令前,需要将目录切换到上面拉取的MaxKB项目中ui目录下,即:xxx/MaxKB/ui/下执行):
npm install
4. 后端依赖下载
在官方文档中,使用poetry进行依赖管理,但经过尝试,建议安装较高版本的poetry
- 安装poetry
经过测试,1.8.5版本的poetry能够很好的进行依赖的安装(前面安装总是失败就是这里的问题)
pip install poetry==1.8.5
完成poetry的安装之后,即可使用下面的命令进行后端项目依赖的安装(注意:执行下面的命令前,需要将目录切换到上面拉取的MaxKB项目根目录下,即:xxx/MaxKB下执行,并且这一步骤需要一定时间):
poetry install
等待一段时间,前后端的依赖部分就安装完成了。
二、Postgresql的安装及配置
1. 安装过程
PostgreSQL 包在默认包存储库中不可用,使用以下命令启用它的官方包存储库。
sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list'
wget -qO- https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo tee /etc/apt/trusted.gpg.d/pgdg.asc &>/dev/null
使用 apt update 命令获取包的最新版本:
sudo apt update
安装服务端,客户端,开发套件:
sudo apt install postgresql postgresql-client postgresql-server-dev-17 -y
验证 PostgreSQL 服务是否启动并运行:
sudo systemctl status postgresql

验证 PostgreSQL banbe版本信息:
psql --version

更新管理员用户密码,使用下面命令进入psql:
sudo -u postgres psql
ALTER USER postgres PASSWORD '123123';
之后使用\q退出Postgresql数据库,并尝试使用刚刚修改的密码登录数据库:
psql -h localhost -U postgres
输入刚刚的密码,Enter即登入,输入\q以退出;
此时Postgresql的安装过程即完成。
2. vector插件
我们前面安装了postgresql的开发拓展套件,此时还需要额外拉取pgvector的源码,并进行编译安装。
cd /tmp
git clone --branch v0.8.0 https://github.com/pgvector/pgvector.git
cd pgvector
make
make install # may need sudo
ps:如果make命令报错,那么你可能需要额外安装gcc和make工具:
apt install make gcc
此步骤结束,即完成了MaxKB项目部署中Postgresql安装的过程。
3. 创建数据库
为了连贯,在这里先行创建MaxKB所需的数据库。
使用psql -h localhost -U postgres输入密码并登录数据库,按行执行下面的sql。
CREATE DATABASE "maxkb";
\c "maxkb";
CREATE EXTENSION "vector";

如果在运行最后一步产生错误,说明上面2中配置vector插件出现问题,建议再重新进行第2步。
如果如图所示,即数据库相关创建成功。
三、源码启动MaxKB项目
1. 配置项
在进行启动前,还需要做一些相关配置。
将MaxKB项目根目录下的将config_example.yml配置文件 目录拷贝至 /opt/maxkb/conf目录下,这个目录是固定的。
cp config_example.yml /opt/maxkb/conf
修在/opt/maxkb/comf/config_example.yml内容如下(按照自己的设置)(如果按照的是上面的步骤,则只需要修改 DB_USER: postgres和 DB_PASSWORD: 123123):
# 数据库配置
DB_NAME: maxkb
DB_HOST: localhost
DB_PORT: 5432
DB_USER: postgres
DB_PASSWORD: 123123
DB_ENGINE: django.db.backends.postgresql_psycopg2
# 模型相关配置
# 模型路径 如果EMBEDDING_MODEL_NAME是绝对路径则无效,反之则会从https://huggingface.co/下载模型到当前目录
EMBEDDING_MODEL_PATH: /opt/maxkb/model/
# 模型名称 如果模型名称是绝对路径 则会加载目录下的模型,如果是模型名称,则会在https://huggingface.co/下载模型 模型的下载位置为EMBEDDING_MODEL_PATH
EMBEDDING_MODEL_NAME: /opt/maxkb/model/shibing624_text2vec-base-chinese
2. 启动前后端项目
- 后端项目
在MaxKB根目录下执行:
python main.py start
- 前端项目
在MaxKB目录下的ui目录下执行:
npm run dev
浏览器打开http://localhost:3000进入MaxKB
用户名:admin
密码:MaxKB@123..
初次进入需要修改密码,建议与默认密码MaxKB@123..不一致,否则后续还会要求修改密码。
四、Ollama的安装以及拉取大模型
1. 安装ollama
这一部分是全文最简单的部分,直接使用命令(会自动识别GPU,如果有GPU资源,建议在安装Ollama之前配置好GPU):
curl -fsSL https://ollama.com/install.sh | sh
安装Ollama,安装完成后可使用ollama list或者ollama --version确认ollama是否安装成功。
2. 拉取模型
这里以大小适中的llama3:8b模型为例,输入命令,ollama pull llama3:8b,拉取llama3:8b模型(这个过程需要下载约4.7G内容,需要一定时间):
ollama pull llama3:8b
下载完成后,可以通过ollama list查看已经下载的模型,也可通过ollama run llama3:8b与模型进行对话。
六、MaxKB对接Ollama模型
这一部分比较简单,就是图形界面操作,建议参考《在Windows下基于源码启动的MaxKB+Ollama知识库问答系统部署过程》中的第六部分。
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐


所有评论(0)