828华为云征文|部署知识库问答系统 MaxKB

news2024/11/15 6:33:28

828华为云征文|部署知识库问答系统 MaxKB

  • 一、Flexus云服务器X实例介绍
    • 1.1 云服务器介绍
    • 1.2 核心竞争力
    • 1.3 计费模式
  • 二、Flexus云服务器X实例配置
    • 2.1 重置密码
    • 2.2 服务器连接
    • 2.3 安全组配置
  • 三、部署 MaxKB
    • 3.1 MaxKB 介绍
    • 3.2 Docker 环境搭建
    • 3.3 MaxKB 部署
    • 3.4 MaxKB 使用
  • 四、总结

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

1.1 云服务器介绍

云服务器是一种通过互联网提供虚拟化计算资源的服务,用户可按需租用存储、数据库、网络等资源。它具有高可用性、可扩展性和灵活性,支持按使用量付费,适合各种规模的企业和个人开发者,以实现成本效益和业务敏捷性。

华为云下一代云服务器Flexus X实例焕新上线,新产品具备柔性算力,六倍性能,旗舰体验,覆盖高科技、零售、金融、游戏等行业大多数通用工作负载场景,从而帮您快速上云!

在这里插入图片描述

Flexus X实例通过和其他服务组合,具备计算、镜像安装、网络、存储、安全等能力,您可根据业务需要灵活配置各资源。

在这里插入图片描述
在这里插入图片描述

本次测评使用的规格是:4核12G-100G-3M规格的Flexus X实例基础模式

在这里插入图片描述

1.2 核心竞争力

  • 柔性算力随心配
    首创CPU内存规格灵活定义,突破1:2次幂的固有配比,实现1:3、2:5等自定义特殊规格,量身匹配业务性能诉求

  • 一直加速一直快
    首创大模型QoS保障,智能全域调度,算力分配长稳态运行,一直加速一直快

  • 越用越省降本多
    针对迁移场景智能资源预画像,帮助用户在华为云上推荐匹配的资源规格,降本可达30%

  • 安全可靠更放心
    拥有国内最大SRE团队之一,基于华为云定性运维理念,确保云服务超高可用性

1.3 计费模式

计费模式包年/包月按需计费
付费方式预付费按照订单的购买周期结算。后付费按照云服务器实际使用时长计费。
计费周期按订单的购买周期计费。秒级计费,按小时结算。
关机是否计费关机对包年/包月的X实例计费无影响。云服务器按订单的购买周期计费。关机后,基础资源(包括vCPU、内存、镜像)不计费。其他绑定资源(如云硬盘、弹性公网IP、带宽等)正常计费。
是否支持变更规格支持变更实例规格。支持变更实例规格。
是否支持备案支持备案。需包月3个月及以上(包含多次续费后累计时长)。不支持备案。
适用场景适用于可预估资源使用周期的场景,价格比按需计费模式更优惠。对于长期使用者,推荐该方式。适用于计算资源需求波动的场景,可以随时开通,随时删除。

二、Flexus云服务器X实例配置

2.1 重置密码

购买完成后,会短信通过你的云服务器信息,重点是公网IP地址和用户名。首先我们需要打开你的服务器控制台,完成重置密码

在这里插入图片描述

勾选自动重启,点击确定即可。

在这里插入图片描述

2.2 服务器连接

  • 方式一:使用控制台提供的VNC方式登录

  • 方式二:使用Putty、Xshell等工具登录Linux弹性云服务器,
    a) 下载安装登录工具,例如Putty。
    b) 输入弹性公网IP。
    c) 输入用户名:root、密码,单击“确定”。

  • 方式三:使用Linux/Mac OS系统主机登录Linux弹性云服务器。
    a) 执行连接命令。
    ssh 弹性公网IP
    例如:ssh 123.xxx.xxx.456
    b) 输入用户名:root、密码,登录服务器。

我个人习惯使用 MobaXterm 这款软件,添加SSH连接,输出公网IP、用户名和端口(默认22),连接即可。

在这里插入图片描述

2.3 安全组配置

安全组是一个逻辑上的分组,为同一个VPC内的云服务器提供访问策略。用户可以在安全组中定义各种访问规则,当云服务器加入该安全组后,即受到这些访问规则的保护。

系统为每个网卡默认创建一个默认安全组,默认安全组的规则是对出方向上的数据报文全部放行,入方向访问受限。您可以使用默认安全组,也可以根据需要创建自定义的安全组

在这里插入图片描述

主要需要填写优先级(默认填1即可)、协议端口信息(一般选择你项目需要暴露的端口即可),其他默认点击确定即可。安全组配置主要是暴露端口可以给外网访问。

在这里插入图片描述

如果还不清楚可以参考文档:安全组配置示例

三、部署 MaxKB

3.1 MaxKB 介绍

MaxKB = Max Knowledge Base,是一款基于大语言模型和 RAG 的开源知识库问答系统,广泛应用于企业内部知识库、客户服务、学术研究与教育等场景。

  • 开箱即用
    支持直接上传文档、自动爬取在线文档,支持文本自动拆分、向量化、RAG(检索增强生成),智能问答交互体验好;

  • 无缝嵌入
    支持零编码快速嵌入到第三方业务系统,让已有系统快速拥有智能问答能力,提高用户满意度;

  • 灵活编排
    内置强大的工作流引擎,支持编排 AI 工作流程,满足复杂业务场景下的需求;

  • 模型中立
    支持对接各种大语言模型,包括本地私有大模型(Llama 3 / Qwen 2 等)、国内公共大模型(通义千问 / 智谱 AI / 百度千帆 / Kimi / 腾讯混元 / DeepSeek 等)和国外公共大模型(OpenAI / Azure OpenAI / Gemini / Claude 等)。

在这里插入图片描述

知识库问答系统 MaxKB 的意义在于,它不仅能够理解自然语言查询,还能从大规模知识库中快速检索相关信息,从而生成高质量的答案。这对于提升客户服务体验、加速企业决策流程、支持科学研究等多个领域都有着重要的应用价值,使得机器能够更加智能地辅助人类解决实际问题。

  • 官网:https://maxkb.cn/
  • Github:https://github.com/1Panel-dev/MaxKB

3.2 Docker 环境搭建

本次服务器环境是ubuntu系统镜像,需要自己安装docker环境

服务器类别系统镜像内网IP地址Docker版本操作系统版本
Flexus云服务器X实例Ubuntu192.168.0.16827.2.0Ubuntu 22.04.4 LTS

使用apt-get命令安装docker及其配置

# 安装必要工具包
$ sudo apt-get install \
    apt-transport-https \
    ca-certificates \
    curl \
    gnupg-agent \
    software-properties-common

# 添加Docker GPG秘钥
$ sudo curl -fsSL https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu/gpg | sudo apt-key add -

# 配置仓库源
$ sudo add-apt-repository \
      "deb [arch=amd64] https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu \
      $(lsb_release -cs) \
      stable"	

# 更新apt包索引
$ sudo apt-get update

# 安装docker
$ sudo apt-get install docker-ce docker-ce-cli containerd.io

# 添加docker镜像源
$ sudo vim /etc/docker/daemon.json

{
    "registry-mirrors": [
        "https://ustc-edu-cn.mirror.aliyuncs.com/",
        "https://docker.mirrors.ustc.edu.cn",
        "https://docker.nju.edu.cn",
        "https://ccr.ccs.tencentyun.com/",
        "https://docker.m.daocloud.io/",
        "https://dockerproxy.com",
    ]
}
# 重启
$ sudo systemctl daemon-reload
$ sudo systemctl restart docker

测试docker安装是否成功

root@flexusx-c6b3:~# docker -v
Docker version 27.2.0, build 3ab4256```

检查docker服务状态

root@flexusx-c6b3:~# systemctl status docker
* docker.service - Docker Application Container Engine
     Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled)
     Active: active (running) since Fri 2024-08-30 15:53:45 CST; 17h ago
TriggeredBy: * docker.socket
       Docs: https://docs.docker.com
   Main PID: 24912 (dockerd)
      Tasks: 13
     Memory: 24.7M
        CPU: 3.778s
     CGroup: /system.slice/docker.service
             `-24912 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock

检查docker compose版本

root@flexusx-c6b3:~# docker compose version
Docker Compose version v2.29.2

3.3 MaxKB 部署

  • 创建 docker-compose.yml
version: "3.5"

services:
  maxkb:
    image: cr2.fit2cloud.com/1panel/maxkb
    container_name: maxkb 
    restart: unless-stopped 
    ports:
      - "3456:8080"
    volumes:
      - ./maxkb:/var/lib/postgresql/data
      - ./python-packages:/opt/maxkb/app/sandbox/python-packages
  • volumes:映射容器内部文件路径到本地
  • ports:配置访问端口

如果将上述代码片段保存在名为 docker-compose.yml 的文件中,则只需从同一文件夹中运行 docker compose up -d 即可自动拉取 MaxKB 镜像,并创建并启动一个容器。 up 表示启动服务,-d 表示在后台执行。docker-compose down 命令用于停止和清理由 docker-compose up 启动的服务。

  • 配置安全组

在Flexus云服务器X实例的安全组管理页面,添加入方向规则,接下来我们启动服务需要监听3456端口,所以添加安全组为TCP:3456协议端口。

在这里插入图片描述

  • 启动服务

进入项目目录,执行docker compose up -d启动命令,会自动拉取容器并运行

从 Dockerhub 拉取 MaxKB 镜像,地址:https://hub.docker.com/r/1panel/maxkb

root@flexusx-c6b3:~/maxkb# docker-compose up -d
Creating network "maxkb_default" with the default driver
Pulling maxkb (cr2.fit2cloud.com/1panel/maxkb:latest)...
latest: Pulling from 1panel/maxkb
8a1e25ce7c4f: Pull complete
b2be002daccf: Pull complete
71dff0956c31: Pull complete
962627501404: Pull complete
c23077a7a05a: Pull complete
40632b8e7084: Pull complete
cfbec5f1dac7: Pull complete
d1743de7c97b: Pull complete
c9cde040a07c: Pull complete
3a23a8d46005: Pull complete
f499f39f0f2d: Pull complete
2cf0f5381fa5: Pull complete
89f512733a11: Pull complete
45deb7326cc7: Pull complete
4da1588ee668: Pull complete
d3f2ea1b2dc4: Pull complete
a651e1af8a2c: Pull complete
b0f10305f06f: Pull complete
25d51f67048a: Pull complete
2b72b0c37d09: Pull complete
Digest: sha256:25a2f81682da5dff39b95aeb331c069eb29449be809b80b8b0105ea3f1f6e064
Status: Downloaded newer image for cr2.fit2cloud.com/1panel/maxkb:latest
Creating maxkb ... 
Creating maxkb ... done
  • 检查容器状态

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

root@flexusx-c6b3:~/maxkb# docker ps
CONTAINER ID   IMAGE                            COMMAND                  CREATED              STATUS          PORTS                                                 NAMES
b032cd415d31   cr2.fit2cloud.com/1panel/maxkb   "bash -c /usr/bin/ru…"   About a minute ago   Up 53 seconds   5432/tcp, 0.0.0.0:3456->8080/tcp, :::3456->8080/tcp   maxkb
  • 访问地址

内网:http://localhost:3456
外网:http://公网IP:3456

  • 访问结果

在这里插入图片描述

若出现此页面,则部署 maxkb server 成功。

3.4 MaxKB 使用

输入默认的用户名和密码,完成登录

默认登录信息
用户名:admin
密码:MaxKB@123…

在这里插入图片描述

登录后需要重新修改密码,修改完成后就可以进入主页面了

在这里插入图片描述

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

在这里插入图片描述

在供应商中选择【 Ollama 】,然后点击【添加模型】,进入 Ollama 表单,点击【添加】后校验通过则添加成功,便可以在应用的 AI 模型列表选择该模型

  • 模型名称:MaxKB 中自定义的模型名称。
  • 模型类型:大语言模型或向量模型。
  • 基础模型:供应商的 LLM 模型,支持自定义输入,但需要与供应商的模型名称保持一致,系统会自动下载部署模型。
  • API 域名和 API Key: Ollama 服务地址,例如:http://42.92.198.53:11434 。若没有设置 API Key,可以输入任意字符。

在这里插入图片描述

这里填入的API域名为之前部署的 ollama,可以通过此网址和端口,如http://123.60.144.170:11434,进行测试是否是可用的,出现Ollama is running 则是可用的

在这里插入图片描述

添加完成后,就可以显示在全部模型列表中了,默认是有一个 maxkb-embedding 的向量模型的

在这里插入图片描述

打开 知识库 页面,点击 创建知识库,进入创建知识库页面。 输入知识库名称、知识库描述、向量模型、选择通用型知识库类型

在这里插入图片描述

然后将离线文档通过拖拽方式或选择文件上传方式进行上传,支持文本文件格式为:Markdown、TXT、PDF、DOCX、HTML

在这里插入图片描述

设置分段规则,目前 MaxKB 支持智能分段以及高级分段两种分段方式。

智能分段
(1)MarkDown 类型的文件智能分段规则:
根据标题逐级下钻式分段(最多支持 6 级标题),每段的字符数最大为 4096 个字符;
当最后一级的文本段落字符数超过设置的分段长度时,会查找分段长度以内的回车进行截取。
(2)HTML、DOCX 类型的智能分段规则:
识别标题格式转换成 markdown 的标题样式;
逐级下钻进行分段(最多支持 6 级标题)每段的字符数最大为 4096 个字符。
(3)TXT和 PDF 类型的文件智能分段规则:
按照标题# 进行分段,若没有#标题的则按照字符数4096个字符进行分段;
查找分段长度以内的回车进行截取。

在这里插入图片描述

还可以选择高级分段,需要自己更根据上传的文件设置规则

高级分段
用户可以根据文档规范自定义设置分段标识符、分段长度及自动清洗。

  • 分段标识支持:#、##、###、####、#####、######、-、空行、回车、空格、分号、逗号、句号,还可以手动输入分段标识符。
  • 分段长度:支持最小 50个字符,最大 4096 个字符。
  • 自动清洗:开启后系统会自动去掉重复多余的符号如空格、空行、制表符等。

在这里插入图片描述

开始导入后,会先索引中,等待文件状态变成成功即可

在这里插入图片描述

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

在这里插入图片描述

应用创建完成,进入简易配置应用的设置页面,左侧为应用信息,右侧为调试预览界面

  • 应用名称:用户提问时对话框的标题和名字。
  • 应用描述:对应用场景及用途的描述。
  • AI模型:在【系统设置】-【模型管理】中添加的大语言模型。
  • 提示词:系统默认有智能知识库的提示词,用户可以自定义通过调整提示词内容,可以引导大模型聊天方向.
  • 多轮对话:开启后当用户提问时,将携带用户在当前会话中最后3个问题;不开启则仅向大模型提交当前问题。
  • 关联知识库:用户提问后会在关联的知识库中检索分段。
  • 开场白:用户打开对话时,系统弹出的问候语。支持 Markdown 格式;[-]后的内容为快捷问题,一行一个。
  • 问题优化:对用户提出的问题先进行一次 LLM 优化处理,将优化后的问题在知识库中进行向量化检索;开启后能提高检索知识库的准确度,但由于多一次询问大模型会增加回答问题的时长。

在这里插入图片描述

知识库还可以进行参数设置,比如检索模式

  • 检索:使用向量模型通过向量距离计算与用户问题最相似的文本分段;
  • 全文检索:通过关键词检索,返回包含关键词最多的文本分段;
  • 混合检索:同时执行全文检索和向量检索,再进行重排序,从两类查询结果中选择匹配用户问题的最佳结果。

在这里插入图片描述

应用信息设置完成后,可以在右侧调试预览中进行提问预览

在这里插入图片描述

在应用列表页面,在概览页面点击演示或在浏览器中复制公开访问链接进入问答页面进行提问

在这里插入图片描述

访问公开访问链接,可以分享给他人使用

在这里插入图片描述

我们来查看下 MaxKB 的映射文件路径下的结构

root@flexusx-c6b3:~/maxkb# tree -L 1
.
|-- docker-compose.yml
|-- maxkb
`-- python-packages

2 directories, 1 file
  • maxkb 即为 postgresql 数据库目录
  • python-packages 即为python库依赖目录

基于MaxkB搭建本地知识库问答系统,能够实现对敏感数据的本地化存储与管理,确保信息安全。同时,该系统支持快速检索与智能生成,帮助企业或个人高效利用已有知识,提升工作效率。适用于教育培训、企业内部知识分享等多种场景,促进知识积累与创新应用。MaxkB的基本使用就操作到此了,添加模型、添加知识库、添加应用和使用应用操作,其中对文档文件的检索设置还需要仔细研究下,还有更多有趣的设置和功能就需要自行探索了。

四、总结

基于大型语言模型和检索增强生成(RAG, Retrieval-Augmented Generation)的知识库问答系统结合了深度学习的强大文本生成能力和结构化数据的精确检索优势,能够在回答复杂问题时提供更准确、上下文相关的响应。此次使用的Flexus X实例配置还是很高的4核12G-100G-3M规格基础模式,在回答过程中,输出比较缓慢,我这里将ollama部署在了同一个服务器上了,使用的模型的是llama2:7b,没有限制最大CPU和内存使用,使用纯CPU推理的,回答问题时CPU和内存都会上升,但整体负载评估是运行流畅。

在这里插入图片描述

华为云服务器,以卓越的性能和稳定性著称,提供灵活的资源配置,满足不同业务需求。现在正值828 B2B企业节,享受限时优惠,免费试用和专属技术支持,让您的业务更上一层楼。立即行动,体验华为云的高效与便捷,助力您的企业快速成长。

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2141581.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Leetcode—322. 零钱兑换【中等】(memset(dp,0x3f, sizeof(dp))

2024每日刷题&#xff08;159&#xff09; Leetcode—322. 零钱兑换 算法思想 dp实现代码 class Solution { public:int coinChange(vector<int>& coins, int amount) {int m coins.size();int n amount;int dp[m 1][n 1];memset(dp, 0x3f, sizeof(dp));dp[0][…

基于springboot+vue+uniapp的驾校报名小程序

开发语言&#xff1a;Java框架&#xff1a;springbootuniappJDK版本&#xff1a;JDK1.8服务器&#xff1a;tomcat7数据库&#xff1a;mysql 5.7&#xff08;一定要5.7版本&#xff09;数据库工具&#xff1a;Navicat11开发软件&#xff1a;eclipse/myeclipse/ideaMaven包&#…

使用随机森林模型在digits数据集上执行分类任务

程序功能 使用随机森林模型对digits数据集进行手写数字分类任务。具体步骤如下&#xff1a; 加载数据&#xff1a;从digits数据集中获取手写数字图片的特征和对应的标签。 划分数据&#xff1a;将数据集分为训练集和测试集&#xff0c;测试集占30%。 训练模型&#xff1a;使用…

鸿蒙开发笔记_电商严选02_登录页面跳转到我的页面、并传值

鸿蒙开发笔记整理,方便以后查阅! 由于上班较忙,只能抽空闲暇时间,快速整理更新中。。。 登录页面跳转到我的页面、并传值 效果图 我的设置页面 /*** 我的设置页面*/ import CommonConstants from ./CommonConstants import ItemData from ./ItemData import DataModel fr…

某个图形商标驳回,不建议做驳回复审!

近日一四川的网友联系到普推知产商标老杨&#xff0c;咨询看驳回的商标可以做驳回复审不&#xff0c;是个纯图形商标&#xff0c;这个一看是一标多类&#xff0c;就是在一个商标名称是申请两个类别&#xff0c;42类部分通过&#xff0c;35类全部驳回。 35类和42类引用的近似商标…

07_Python数据类型_集合

Python的基础数据类型 数值类型&#xff1a;整数、浮点数、复数、布尔字符串容器类型&#xff1a;列表、元祖、字典、集合 集合 集合&#xff08;set&#xff09;是Python中一个非常强大的数据类型&#xff0c;它存储的是一组无序且不重复的元素&#xff0c;集合中的元素必须…

SpringBoot 消息队列RabbitMQ死信交换机

介绍 生产者发送消息时指定一个时间&#xff0c;消费者不会立刻收到消息&#xff0c;而是在指定时间之后才收到消息。 死信交换机 当一个队列中的消息满足下列情况之一时&#xff0c;就会成为死信(dead letter) 消费者使用basic.reject或 basic.nack声明消费失败&#xff0…

LidarView之定制版本

介绍 LidarView软件定制开发需要关注几点&#xff1a;1.应用程序名称&#xff1b;2.程序logo&#xff1b;3.Application版本号&#xff1b;4.安装包版本号 应用程序名称 在项目的顶层cmake里边可以指定程序名称 project(LidarView)需要指定跟Superbuild一样的编译类型 set…

英语学习之fruit

目录 不熟悉熟悉 不熟悉 breadfruit 面包果 date 椰枣 raspberry 覆盆子 blackberry 黑莓 blackcurrant 黑加仑&#xff0c;黑醋栗 plum 李子 熟悉 apple 苹果&#x1f34e; coconut 椰子&#x1f965; banana 香蕉&#x1f34c; tomato 西红柿 pear 梨子 watermelon 西瓜…

30款免费好用的工具,打工人必备!

免费工具软件&#xff0c;办公人必备&#xff0c;提升工作效率 启动盘制作&#xff1a;Ventoype工具&#xff1a;微PEwindows/office jh工具&#xff1a;HEU KMS Activator桌面资料转移工具&#xff1a;个人资料专业工具右键菜单管理&#xff1a;ContextMenuManager驱动安装&a…

【面试八股总结】GMP模型

GMP概念 G&#xff08;Goroutine&#xff09;&#xff1a;代表Go协程&#xff0c;是参与调度与执行的最小单位。 存储Goroutine执行栈信息、状态、以及任务函数等。G的数量无限制&#xff0c;理论上只受内存的影响。Goroutines 是并发执行的基本单位&#xff0c;相比于传统的线…

虽难必学系列:Netty

Netty 是一个基于 Java 的高性能、异步事件驱动的网络应用框架&#xff0c;广泛用于构建各类网络应用&#xff0c;尤其是在高并发、低延迟场景下表现出色。作为一个开源项目&#xff0c;Netty 提供了丰富的功能&#xff0c;使得开发者可以轻松构建协议服务器和客户端应用程序。…

Nginx从入门到入土(一):DNS域名解析

前言 hostName&#xff0c;在Linux系统上是一个命令&#xff0c;用来显示和设置系统的主机名称。其实它就是域名。 常见的域名有我们熟悉的taobao.com;baidu.com等等。 我们在地址栏输入baidu.com 进入的就是此页面。我们看到地址栏里显示的是www.baidu.com 。 注意&#xf…

MySQL篇(运算符)(持续更新迭代)

目录 一、简介 二、运算符使用 1. 算术运算符 1.1. 加法运算符 1.2. 减法运算符 1.3. 乘法与除法运算符 1.4. 求模&#xff08;求余&#xff09;运算符 2. 比较运算符 2.1. 等号运算符 2.2. 安全等于运算符 2.3. 不等于运算符 2.4. 空运算符 2.5. 非空运算符 2.6.…

Java数据存储结构——平衡二叉树

文章目录 22.1.3 平衡二叉树22.1.3.1 LL22.1.3.2 LR22.1.3.3 RR22.1.3.4 RL 22.1.3 平衡二叉树 平衡二叉树的特点&#xff1a; 二叉树左右两个子树的高度差不超过1任意节点的左右两个子树都是一颗平衡二叉树 在原来的平衡二叉树中&#xff0c;新增数据会破坏平衡性&#xff…

Linux per memcg lru lock

内核关于per memcg lru lock的重要提交&#xff1a; f9b1038ebccad354256cf84749cbc321b5347497 6168d0da2b479ce25a4647de194045de1bdd1f1d 背景 自电子计算机诞生以来&#xff0c;内存性能一直是行业关心的重点。内存也随着摩尔定律&#xff0c;在大小和速度上一直增长。云…

Linux系统上搭建Vulhub靶场

Linux系统上搭建Vulhub靶场 ​vulhub​ 是一个开源的漏洞靶场&#xff0c;它提供了各种易受攻击的服务和应用程序&#xff0c;供安全研究人员和学习者测试和练习。要在 Linux 系统上安装和运行 vulhub​&#xff0c;可以按照以下步骤进行&#xff1a; 1. 安装 Docker 和 Docke…

数据结构(八)——Java实现七大排序

一、插入排序 1.直接插入排序 public static void insertSort(int []arr){for (int i 0; i < arr.length; i) {int j i-1;int tmp arr[i];for (; j >0 ; j--) {if(arr[j] > tmp){arr[j1] arr[j];}else{break;}}arr[j1] tmp;}}直接插入排序特性总结 1. 元素集合越…

【算法】滑动窗口—最小覆盖子串

题目 ”最小覆盖子串“问题&#xff0c;难度为Hard&#xff0c;题目如下&#xff1a; 给你两个字符串 S 和 T&#xff0c;请你在 S 中找到包含 T 中全部字母的最短子串。如果 S 中没有这样一个子串&#xff0c;则算法返回空串&#xff0c;如果存在这样一个子串&#xff0c;则可…

【三大运营商】大数据平台体系架构【顶层规划设计】

在国内运营商&#xff08;如中国移动、中国联通、中国电信&#xff09;的大数据平台建设中&#xff0c;顶层规划设计至关重要。以下是针对三大运营商为例【如电信】的大数据平台体系架构的顶层规划设计方案&#xff0c;涵盖整体架构、关键组件、数据管理、应用场景等方面。 1. …