RAG平台,知识库管理

1 部署要求

1.1 服务器配置

部署服务器要求:

  • 操作系统:Ubuntu 22.04 / CentOS 7.6 64 位系统

  • CPU/内存:4C/8GB 以上

  • 磁盘空间:100GB

1.2 端口要求

在线部署 MaxKB 需要开通的访问端口说明如下:

端口

作用

说明

22

SSH

安装、升级及管理使用

8080

Web 服务端口

默认 Web 服务访问端口,可根据实际情况进行更改

2 在线快速部署

MaxKB 支持一键启动,仅需执行以下命令:

# Linux 操作系统
docker run -d --name=maxkb --restart=always -p 8080:8080 -v ~/.maxkb:/var/lib/postgresql/data -v ~/.python-packages:/opt/maxkb/app/sandbox/python-packages registry.fit2cloud.com/maxkb/maxkb
​
# Windows 操作系统
docker run -d --name=maxkb --restart=always -p 8080:8080 -v C:/maxkb:/var/lib/postgresql/data -v C:/python-packages:/opt/maxkb/app/sandbox/python-packages registry.fit2cloud.com/maxkb/maxkb

待所有容器状态显示为healthy后,可通过浏览器访问 MaxKB:

http://目标服务器 IP 地址:8080
​
默认登录信息
用户名:admin
默认密码:MaxKB@123..

3 在线升级

根据以下步骤依次执行进行升级:

(1) 下载最新镜像

docker pull registry.fit2cloud.com/maxkb/maxkb

(2)查看并确认上一次数据持久化目录,复制保存

docker inspect maxkb

获取pgsql目录

(3)删除正在运行的、旧版本的 MaxKB 容器

docker rm -f maxkb 

(4)启动并运行新版本的 MaxKB 容器

注意: 务必确认数据持久化目录(即命令行中 -v后的目录)要跟第 (2) 步查看目录保持一致,否则启动后整个系统的数据为空。

docker run -d --name=maxkb --restart=always -p 8080:8080 -v ~/.maxkb:/var/lib/postgresql/data -v ~/.python-packages:/opt/maxkb/app/sandbox/python-packages registry.fit2cloud.com/m

4、源码部署

1、官方拉取代码

请使用最新分支

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

2、本地环境配置

严格遵守版本号

前端环境准备
安装 node ,v16及以上版本
后端环境准备
安装 python ,版本 v3.11.x
安装 pycharm
数据库
安装 PostgreSql ,版本 v15.x

3、PostGres使用docker部署自带vector版本的

避免手动安装环境配置,vector编译等操作。

docker run -d --name pgvector-pg15 -e POSTGRES_USER=root -e POSTGRES_PASSWORD=wkm123. -e POSTGRES_DB=maxkb -p 5433:5432 pgvector/pgvector:pg15


# 创建数据库  如启动时初始化了你所需要的数据库则省略创建数据库的步骤
CREATE DATABASE "maxkb"; 
# 切换使用数据库
\c "maxkb"; 
# 创建vector 扩展
CREATE EXTENSION "vector";

4、配置文件

项目启动之前,需要准备配置文件及目录

  • 准备配置文件

# 将config_example.yml配置文件拷贝至 /opt/maxkb/conf目录下
cp config_example.yml /opt/maxkb/conf
  • 配置 /opt/maxkb/conf/config_example.yml

# 数据库配置(将以下信息替换为实际环境信息)
DB_NAME: maxkb
DB_HOST: localhost
DB_PORT: 5432
DB_USER: root
DB_PASSWORD: xxx
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

5、开发调试

启动前端

# 在 `ui`目录 执行安装前端需要的依赖
npm install

# 然后启动项目
npm run dev

启动后端

# 安装 poetry 包管理器
pip install poetry

# 安装后端需要的依赖
poetry install
* 注意:如果在国内安装,需要配置 poetry 的源,否则下载非常慢,经常无法正常安装,配置命令为:`poetry source add --priority=primary mirrors http://mirrors.aliyun.com/pypi/simple`

# 启动项目
python main.py start   开发环境为python main.py dev
# 启动项目
python main.py dev local_model
# 启动项目
python main.py dev celery

访问项目

localhost:3000/ui

5、centos7源码部署

1、node环境

# Download and install nvm:
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.1/install.sh | bash

# in lieu of restarting the shell
\. "$HOME/.nvm/nvm.sh"

# Download and install Node.js:
nvm install 16

# Verify the Node.js version:
node -v # Should print "v16.20.2".
nvm current # Should print "v16.20.2".

# Verify npm version:
npm -v # Should print "8.19.4".

2、python环境安装

CentOS 7 的官方仓库 没有 Python 3.11,因此需要从源代码编译。

安装编译需要的依赖

sudo yum groupinstall "Development Tools" -y
sudo yum install gcc openssl-devel bzip2-devel libffi-devel -y

在官方库下载合适的python版本

进入目录
cd /usr/local/src
下载包
https://www.python.org/downloads/source/  下载好之后放到上面那个文件夹
解压包
tar -xvf yourpython.xz
进入解压的python文件夹
cd yourpython
运行配置脚本,指定安装路径(比如 /usr/local/python3.11,你可以修改为其他目录)
./configure --prefix=/usr/local/python3.11
编译
make
安装pyhon
sudo make altinstall   (使用 altinstall 是为了避免覆盖系统默认的 Python 版本。)

更新环境变量

nano ~/.bashrc
文件末尾添加
export PATH=/usr/local/python3.11/bin:$PATH
然后运行
source ~/.bashrc
验证安装
python3.11 --version


可以创建虚拟环境
/usr/local/python3.11/bin/python3.11 -m venv ~/myenv
激活环境
source ~/myenv/bin/activate

3、编译镜像

docker build -t maxkb-wkm:v1.0 -f installer/Dockerfile .

如果docker有镜像拉不下来使用国内镜像

vi /etc/docker/deamon.josn

清华:

https://mirrors4.tuna.tsinghua.edu.cn/

如果本地启动编译过则删除poetry.lock文件

如果需要导出镜像

docker save -o C:\Users\96322\Desktop\maxkb\maxkb-wkm.tar maxkb-wkm:v1.0

linux脚本

#!/bin/bash
path=$(cd `dirname $0`; pwd)
echo "-------------------------------------------"
echo "Install MaxKB"
echo "-------------------------------------------"

docker load -i $path/maxkb-wkm.tar

docker run \
-d \
--name maxkb-wkm \
--restart=always \
-p 8088:8080 \
-v ~/.maxkb-wkm:/var/lib/postgresql/data \
-v ~/.python-packages-wkm:/opt/maxkb/app/sandbox/python-packages \
maxkb-wkm:v1.0

windows脚本

docker run \
-d \
--name maxkb-wkm \
--restart=always \
-p 8088:8080 \
-v C:\maxkbself:/var/lib/postgresql/data \
-v C:\python-packages-self:/opt/maxkb/app/sandbox/python-packages \
maxkb-wkm:v1.0