828华为云征文|华为云Flexus云服务器X实例之openEuler系统下搭建MaxKB开源知识库问答系统

828华为云征文|华为云Flexus云服务器X实例之openEuler系统下搭建MaxKB开源知识库问答系统

  • 前言
  • 一、Flexus云服务器X实例介绍
    • [1.1 Flexus云服务器X实例简介](#1.1 Flexus云服务器X实例简介)
    • [1.2 Flexus云服务器X实例特点](#1.2 Flexus云服务器X实例特点)
    • [1.3 Flexus云服务器X实例使用场景](#1.3 Flexus云服务器X实例使用场景)
  • [二、MaxKB 介绍](#二、MaxKB 介绍)
    • [2.1 MaxKB简介](#2.1 MaxKB简介)
    • [2.2 MaxKB整体架构](#2.2 MaxKB整体架构)
    • [2.3 MaxKB主要特点](#2.3 MaxKB主要特点)
    • [2.4 主要使用场景](#2.4 主要使用场景)
  • 三、本次实践介绍
    • [3.1 本次实践简介](#3.1 本次实践简介)
    • [3.2 部署要求](#3.2 部署要求)
    • [3.3 本次环境规划](#3.3 本次环境规划)
  • 四、购买华为云Flexus云服务器X实例
    • [4.1 登录华为云](#4.1 登录华为云)
    • [4.2 进入Flexus云服务器X实例购买页面](#4.2 进入Flexus云服务器X实例购买页面)
    • [4.3 购买Flexus云服务器X实例配置](#4.3 购买Flexus云服务器X实例配置)
    • [4.4 使用Xshell远程连接](#4.4 使用Xshell远程连接)
  • 五、检查Docker环境
    • [5.1 检查操作系统版本](#5.1 检查操作系统版本)
    • [5.2 检查内核版本](#5.2 检查内核版本)
    • [5.3 检查Docker版本](#5.3 检查Docker版本)
    • [5.4 检查Docker服务状态](#5.4 检查Docker服务状态)
    • [5.5 检查Docker compose版本](#5.5 检查Docker compose版本)
  • 六、部署MaxKB系统
    • [6.1 拉取MaxKB镜像](#6.1 拉取MaxKB镜像)
    • [6.2 创建部署目录](#6.2 创建部署目录)
    • [6.3 创建MaxKB容器](#6.3 创建MaxKB容器)
    • [6.4 检查MaxKB容器状态](#6.4 检查MaxKB容器状态)
    • [6.5 检查MaxKB容器日志](#6.5 检查MaxKB容器日志)
  • 七、访问前准备工作
    • [7.1 关闭selinux和防火墙](#7.1 关闭selinux和防火墙)
    • [7.2 Flexus云服务器X实例安全组配置](#7.2 Flexus云服务器X实例安全组配置)
  • 八、访问MaxKB服务
    • [8.1 访问MaxKB初始页](#8.1 访问MaxKB初始页)
    • [8.2 登录MaxKB](#8.2 登录MaxKB)
  • 九、MaxKB配置工作
    • [9.1 进入模型设置页面](#9.1 进入模型设置页面)
    • [9.2 查询供应商API Key信息](#9.2 查询供应商API Key信息)
    • [9.3 选择模型](#9.3 选择模型)
    • [9.4 创建知识库](#9.4 创建知识库)
    • [9.5 上传文档](#9.5 上传文档)
    • [9.6 创建应用](#9.6 创建应用)
  • 十、使用体验与总结

前言


在数字化转型的大潮中,华为云以其卓越的技术实力和稳定的服务表现,成为了众多企业和开发者信赖的云服务提供商。华为云Flexus云服务器X实例,凭借其柔性算力和高性价比,特别适合中小企业及个人开发者快速构建高效、灵活的应用环境。本文将详细介绍如何利用华为云Flexus云服务器X实例搭建基于openEuler系统的MaxKB开源知识库问答系统,为企业内部的知识管理和信息检索注入新的活力。


一、Flexus云服务器X实例介绍

1.1 Flexus云服务器X实例简介

华为云Flexus云服务器X实例是新一代面向中小企业和开发者的柔性算力云服务器。它能够智能感知业务负载的变化,自动调整资源配置。这款服务器特别适用于中低负载的应用场景,例如电商直播、企业网站建设、开发测试环境、游戏服务器以及音视频服务等。X实例的设计理念旨在为用户提供更加灵活和高效的计算资源管理方式。通过智能调整,它可以更好地满足不同业务的需求,提高资源利用率。

1.2 Flexus云服务器X实例特点

  • 提供丰富的公共镜像:Flexus云服务器X实例提供多种公共镜像供用户选择,方便快速部署各种应用和服务。

  • 可灵活自定义vCPU内存配比:用户可以根据自己的需要灵活调整虚拟CPU和内存的配比,以满足不同场景的需求。

  • 智能感知业务动态升降配:Flexus云服务器X实例能够智能感知业务的负载情况,并根据需要自动升降配,以满足业务的需求,提高系统的稳定性和性能。

  • 负载范围更高:相对于Flexus应用服务器L实例,Flexus云服务器X实例能够处理更高的负载,适用于更复杂和繁忙的场景。

1.3 Flexus云服务器X实例使用场景

Flexus云服务器X实例针对不同的使用场景展现出其独特的优势:

  1. 电商直播:利用X实例搭建电商交易平台,可以有效应对电商市场的瞬息万变,从容处理业务压力波动,确保交易过程顺畅无阻。

  2. 企业建站:面向博客、论坛和企业门户等应用场景,X实例帮助企业高效传播价值信息,促进信息共享与交流,支持构建多功能传播和交互平台。

  3. 个人开发测试:开发者在开发和测试过程中所需的环境资源可以通过X实例便捷获取,不仅提高了搭建效率,而且降低了成本。

  4. 游戏服务器:适用于搭建游戏后台服务器,强大的计算能力可以轻松应对大量玩家同时在线的情况,同时支持平滑扩容,快速应对玩家数量增长的需求,以及提供出色的网络加速能力以提升用户体验。

二、MaxKB 介绍

2.1 MaxKB简介

MaxKB 是一个基于大语言模型(LLM)构建的开源知识库问答系统,专为提升企业内部的知识管理和信息检索效率而设计。通过集成先进的人工智能技术,MaxKB 能够理解自然语言查询,并从庞大的知识库中快速准确地提取相关信息,从而帮助企业员工更高效地获取所需的知识和答案。

2.2 MaxKB整体架构

  • MaxKB整体架构如下所示:

2.3 MaxKB主要特点

  • 智能化搜索:利用深度学习算法解析用户提问的真实意图,实现语义层面的匹配,而非简单的关键词匹配。
  • 多源数据接入:支持多种格式的数据导入,包括文档、网页、数据库等,确保企业内外部的各种知识资源能够被充分利用。
  • 自定义知识库:允许根据企业的具体需求定制化创建或扩展知识库内容,灵活适应不同行业背景下的特殊要求。
  • 持续学习与优化:随着使用频率增加,系统能够不断积累经验并自我改进,提高回答问题的准确性与时效性。
  • 易于集成:提供API接口及插件机制,方便与其他IT系统如CRM、ERP等进行无缝对接,形成统一的信息服务平台。
  • 安全性保障:重视用户隐私保护,采用加密传输协议,并且可以设置访问权限控制,确保敏感资料的安全。

2.4 主要使用场景

  • 客户服务:作为在线客服助手,自动响应客户咨询,减少人工客服的工作负担,同时保证24/7的服务可用性。
  • 内部培训:为企业新员工提供自助式学习平台,涵盖公司政策、工作流程等多个方面,加速其融入过程。
  • 技术支持:针对IT部门遇到的技术难题给出专业解答,辅助故障排查和技术文档查阅。
  • 产品推广:向潜在客户提供详细的产品介绍和服务说明,增强销售转化率。
  • 决策支持:通过对历史数据分析总结出有价值的趋势洞察,帮助管理层做出更加明智的战略规划。

三、本次实践介绍

3.1 本次实践简介

1.本次实践为个人测试学习环境,旨在快速部署应用,生产环境请谨慎;

2.本次实践环境为华为云Flexus云服务器X实例,使用的操作系统为| openEuler;

3.本次实践在Docker环境下搭建MaxKB开源知识库问答系统。

3.2 部署要求

部署服务器要求:

  • 操作系统:Ubuntu 22.04 / CentOS 7.6 64 位系统
  • CPU/内存:2C/4GB 以上
  • 磁盘空间:100GB

3.3 本次环境规划

服务器类别 公共镜像选择 内网IP地址 Docker版本 操作系统版本
华为云Flexus云服务器X实例 openEuler 192.168.0.169 26.1.3 openEuler 22.03 LTS

四、购买华为云Flexus云服务器X实例

4.1 登录华为云

进入华为云官网:https://activity.huaweicloud.com/,登录自己的华为云账号,进入华为云首页。


4.2 进入Flexus云服务器X实例购买页面

我们在华为云官网首页,精选推荐模块中,可以看到Flexus云服务器X实例,点击进入Flexus云服务器X实例主页。


点击页面中的"购买"选项,进入Flexus云服务器X实例购买页面。

4.3 购买Flexus云服务器X实例配置

  • 镜像选择:本次实践使用openEuler作为公共镜像,请根据实际需求自定义选择合适的操作系统镜像。
  • 镜像切换说明:参考的公共镜像原为Huawei Cloud EulerOS,但本次实践中已切换至openEuler。
  • 基础配置参考:购买时可参考以下基础配置进行选择。
项目 配置说明
计费模式 包年/包月
区域 华北---北京四,可用区:随机即可
实例规格 关闭性能模式,选择自定义,4vCPUs | 12GiB
镜像 公共镜像,openEuler,版本:openEuler 2.0 Standard 64 bit (10GiB)
应用加速 不加速
存储 系统盘,通用型SSD 100G
网络 选择默认即可
安全组 选择默认即可
弹性公网IP 选择"现在购买",全动态BGP,带宽3Mbit/s
云服务器名称 可自定义设置,这里选择默认的名称
登录凭证 自定义设置密码
云备份 暂不购买
  • 确认配置及购买:在确认配置页面仔细检查Flexus云服务器X实例的各项设置,确保无误后点击"立即购买",完成付款流程即可成功购买。

4.4 使用Xshell远程连接

进入华为云Flexus云服务的控制台,选择Flexus云服务器X实例,可以看到已经正在运行的Flexus云服务器X实例。

  • 复制Flexus云服务器X实例的弹性公网IP地址
  • 主要填写Flexus云服务器X实例的弹性公网IP地址,输入其登录用户和密码,连接即可。

五、检查Docker环境

5.1 检查操作系统版本

检查Flexus云服务器X实例的操作系统版本,本次实践选择的版本为openEuler 22.03 LTS

bash 复制代码
[root@flexusx-51a1 ~]# cat /etc/os-release
NAME="openEuler"
VERSION="22.03 LTS"
ID="openEuler"
VERSION_ID="22.03"
PRETTY_NAME="openEuler 22.03 LTS"
ANSI_COLOR="0;31"

5.2 检查内核版本

检查当前操作系统的内核版本,当前内核版本为5.10.0-60.139.0.166.oe2203.x86_64

bash 复制代码
[root@flexusx-51a1 ~]# uname -r
5.10.0-60.139.0.166.oe2203.x86_64

5.3 检查Docker版本

部署该项目需要提前安装Docker环境,检查Docker版本,当前安装的Docker版本为 26.1.3

bash 复制代码
[root@flexusx-51a1 ~]# docker -v
Docker version 26.1.3, build b72abbb

5.4 检查Docker服务状态

检查Docker服务状态,确保Docker服务正常。

bash 复制代码
[root@flexusx-51a1 ~]# systemctl status docker
● docker.service - Docker Application Container Engine
     Loaded: loaded (/usr/lib/systemd/system/docker.service; enabled; vendor preset: disabled)
     Active: active (running) since Mon 2024-09-23 20:27:32 CST; 12min ago
TriggeredBy: ● docker.socket
       Docs: https://docs.docker.com
   Main PID: 18484 (dockerd)
      Tasks: 10
     Memory: 240.2M
     CGroup: /system.slice/docker.service
             └─ 18484 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock

5.5 检查Docker compose版本

检查docker compose版本,当前默认安装版本为v2.27.0

bash 复制代码
[root@flexusx-51a1 ~]# docker compose version
Docker Compose version v2.27.0

六、部署MaxKB系统

6.1 拉取MaxKB镜像

执行以下命令,拉取MaxKB镜像,镜像名称:cr2.fit2cloud.com/1panel/maxkb:latest

bash 复制代码
[root@flexusx-51a1 ~]# docker pull cr2.fit2cloud.com/1panel/maxkb
Using default tag: latest
latest: Pulling from 1panel/maxkb
Digest: sha256:d1211d7915d949a7a1a412ea4ec5f34942b8278f83a7333c9fa8d8027630a23e
Status: Image is up to date for cr2.fit2cloud.com/1panel/maxkb:latest
cr2.fit2cloud.com/1panel/maxkb:latest

6.2 创建部署目录

在命令行终端上,我们需要创建部署目录/data/maxkb

bash 复制代码
mkdir -p /data/maxkb && cd /data/maxkb

6.3 创建MaxKB容器

  • 可参考以下docker-cli命令,快速创建MaxKB容器。
bash 复制代码
docker run -d --name=maxkb -p 8080:8080 -v ~/.maxkb:/var/lib/postgresql/data -v ~/.python-packages:/opt/maxkb/app/sandbox/python-packages cr2.fit2cloud.com/1panel/maxkb

本次实践使用docker compose方式部署MaxKB应用,编辑docker-compose.yaml文件,可自行修改映射端口部分。

bash 复制代码
vim docker-compose.yaml
yaml 复制代码
version: '3.9'
services:
    1panel:
        image: cr2.fit2cloud.com/1panel/maxkb
        volumes:
            - '~/.python-packages:/opt/maxkb/app/sandbox/python-packages'
            - '~/.maxkb:/var/lib/postgresql/data'
        ports:
            - '8080:8080'
        container_name: maxkb

执行以下命令,使用docker-compose.yaml文件创建MaxKB服务。

bash 复制代码
docker compose up -d

6.4 检查MaxKB容器状态

检查MaxKB容器状态,确保MaxKB容器正常启动。

bash 复制代码
[root@flexusx-51a1 maxkb]# docker compose ps
WARN[0000] /data/maxkb/docker-compose.yaml: `version` is obsolete
NAME      IMAGE                            COMMAND                  SERVICE   CREATED          STATUS          PORTS
maxkb     cr2.fit2cloud.com/1panel/maxkb   "bash -c /usr/bin/ru..."   1panel    33 seconds ago   Up 33 seconds   5432/tcp, 0.0.0.0:8080->8080/tcp, :::8080->8080/tcp

6.5 检查MaxKB容器日志

检查MaxKB容器运行日志,确保MaxKB服务正常运行。

bash 复制代码
docker compose logs

七、访问前准备工作

7.1 关闭selinux和防火墙

  • 关闭selinux
bash 复制代码
setenforce 0
sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
  • 停止防火墙
bash 复制代码
systemctl stop firewalld
systemctl disable firewalld

7.2 Flexus云服务器X实例安全组配置

进入Flexus云服务器X实例控制台,进行安全组规则配置。

入方向上放行8080端口,确认配置即可。

八、访问MaxKB服务

8.1 访问MaxKB初始页

浏览器访问地址:http://服务器IP地址:8080,将IP替换为自己云服务器弹性公网IP地址。浏览器打开后,进入MaxKB登录页。

8.2 登录MaxKB

  • 默认登录信息
  • 用户名:admin
  • 默认密码:MaxKB@123...
  • 第一次登录,会自动提示修改登录密码,自定义修改即可。

九、MaxKB配置工作

9.1 进入模型设置页面

登录 MaxKB 系统后,可以在【系统管理-模型设置】中添加模型,也可以在创建应用时再添加模型。

9.2 查询供应商API Key信息

我们此次选择的供应商为义千问大模型,登录其官网。在DashScope灵积模型服务控制台->API Key管理中获取。

9.3 选择模型

在模型设置的供应商列表中,我们选择通义千问,点击"添加模型"。

  • 模型名称:MaxKB 中自定义的模型名称。
  • 模型类型:大语言模型。
  • 基础模型:供应商的 LLM 模型,支持自定义输入,下拉选项是常用的一些大语言模型。
  • API Key:需要在阿里云->DashScope灵积模型服务->API Key管理中获取。


9.4 创建知识库

打开【知识库】页面,点击【创建知识库】,进入创建知识库页面。

输入知识库名称、知识库描述、选择通用型知识库类型。 根据如下图所示,自定义填写即可。

9.5 上传文档

上传本地文件,上传完毕后,确认"下一步"。

  • 上传文档要求:
  • 支持文本文件格式为:Markdown、TXT、PDF、DOCX、HTML;
  • 支持 QA 问答对格式为:Excel、CSV;
  • 每次最多上传 50 个文件;
  • 每个文件不超过 100 MB;
  • 支持选择文件夹,上传文件夹下符合要求的文件。
  • 文档规范建议:
  • 规范分段标识:离线文档的分段标识要有一定规范,否则拆分出来的段落会不规整。
  • 段落要完整:一个分段中最好能描述一个完整的功能点或问题。

点击"开始导入",其余配置默认即可。

查看文件状态,当如下图所示,文件状态显示为"成功"时候,则文档导入成功。

9.6 创建应用

点击【创建应用】,输入应用名称,选择【简易配置应用】,点击【创建】。

  • 应用创建完成,进入简易配置应用的设置页面,左侧为应用信息,右侧为调试预览界面。
设置项 说明
应用名称 用户提问时对话框的标题和名字。
应用描述 对应用场景及用途的描述,帮助用户理解该应用的功能与价值。
AI模型 在【系统设置】-【模型管理】中添加的大语言模型作为支持此应用的智能引擎。
提示词 系统默认提供智能知识库的提示词,用户可以自定义这些提示词来引导大模型聊天的方向。
多轮对话 - 开启:当用户提问时,将携带用户在当前会话中的最后3个问题。 - 关闭:仅向大模型提交当前问题。
关联知识库 用户提问后会在关联的知识库中进行分段检索,找到最相关的答案。
开场白 用户打开对话时,系统弹出的问候语。支持Markdown格式;[-]后的内容为快捷问题,一行一个。
问题优化 - 开启:对用户提出的问题先进行一次LLM优化处理,提高检索知识库的准确度。 - 关闭:直接检索。
  • 调试预览
  • 完成上述设置后,可以在右侧调试预览中进行提问预览。
  • 调试预览中的提问内容不会计入正式的对话日志,方便测试和调整应用配置。

十、使用体验与总结

通过在华为云Flexus云服务器X实例上搭建基于openEuler系统的MaxKB开源知识库问答系统,我们深刻体验到了华为云的强大性能和稳定性。整个部署过程流畅无阻,Flexus云服务器X实例的柔性算力确保了系统能够高效处理复杂的自然语言查询任务。实践证明,华为云不仅提供了卓越的技术支持,还极大地简化了运维工作,使得中小企业和开发者能够轻松构建和管理高性能的应用。此外,华为云的高可用性和安全性进一步增强了我们对系统的信心,为企业的知识管理和信息检索带来了显著的效率提升。总体而言,华为云Flexus云服务器X实例展现了其在现代云计算环境中的出色表现,是企业数字化转型的理想选择。


在华为云828 B2B企业节期间,Flexus X实例推出了重磅优惠活动。华为云凭借其顶级的云服务和卓越的性能稳定性,成为推动企业业务增长的理想选择。我们诚挚邀请各行各业的企业加入华为云大家庭,共同见证技术革新带来的无限可能。让我们携手并进,共同开创云端的辉煌未来,共享科技进步所带来的丰硕成果。


相关推荐
丘狸尾14 分钟前
[cisco 模拟器] ftp服务器配置
android·运维·服务器
HelloGitHub18 分钟前
跟着 8.6k Star 的开源数据库,搞 RAG!
开源·github
黑客老陈22 分钟前
新手小白如何挖掘cnvd通用漏洞之存储xss漏洞(利用xss钓鱼)
运维·服务器·前端·网络·安全·web3·xss
大猫和小黄25 分钟前
Windows、CentOS环境下搭建自己的版本管理资料库:GitBlit
linux·服务器·windows·git
GitCode官方28 分钟前
GitCode 光引计划投稿 | GoIoT:开源分布式物联网开发平台
分布式·开源·gitcode
Joyner201829 分钟前
【Linux】ubuntu通过远程命令行启动桌面应用
linux·服务器·ubuntu
ghostwritten32 分钟前
Linux Swap: 深入解析 mkswap, mkfs.swap, 和 swapon
linux·运维·服务器
我是唐青枫34 分钟前
Linux xargs 命令使用教程
linux·运维·服务器
gallonyin34 分钟前
【监控】夜莺监控系统各环节资源压力分析
运维·服务器
m0_7482567839 分钟前
WebGIS实战开源项目:智慧机场三维可视化(学习笔记)
笔记·学习·开源