当前位置: 首页 > news >正文

Index-1.9B模型部署教程

一、介绍

Index-1.9B 系列是 Index 系列型号的轻量级版本,包含以下型号:

  • Index-1.9B 基础:具有 19 亿个非嵌入参数的基础模型,在 2.8T 主要为中文和英文的语料上进行预训练,在多个评测基准上与同级别模型相比领先。
  • Index-1.9B pure:基础模型的控制版本,具有相同的参数和训练策略,但严格从语料库中过滤掉所有与指令相关的数据,以验证指令对基准的影响。
  • Index-1.9B 聊天:基于 index-1.9B 基数的与 SFT 和 DPO 对齐的对话模型。我们发现,由于在预训练中引入了大量互联网社区语料,该模型与同级别的模型相比,具有明显更有趣的聊天能力和强大的多语言(尤其是东亚语言)翻译能力。
  • Index-1.9B 角色:在 SFT 和 DPO 之上引入 RAG,以实现 fewshots 角色扮演定制。

二、部署过程

基础环境最低要求说明:

环境名称版本信息1
Ubuntu22.04.4 LTS
CudaV12.1.105
Python3.12
NVIDIA CorporationRTX 3060

1. 更新基础软件包

查看系统版本信息

# 查看系统版本信息,包括ID(如ubuntu、centos等)、版本号、名称、版本号ID等
cat /etc/os-release

1726627581255_image.png

配置 apt 国内源

# 更新软件包列表
apt-get update

这个命令用于更新本地软件包索引。它会从所有配置的源中检索最新的软件包列表信息,但不会安装或升级任何软件包。这是安装新软件包或进行软件包升级之前的推荐步骤,因为它确保了您获取的是最新版本的软件包。

# 安装 Vim 编辑器
apt-get install -y vim

这个命令用于安装 Vim 文本编辑器。-y 选项表示自动回答所有的提示为“是”,这样在安装过程中就不需要手动确认。Vim 是一个非常强大的文本编辑器,广泛用于编程和配置文件的编辑。

为了安全起见,先备份当前的 sources.list 文件之后,再进行修改:

# 备份现有的软件源列表
cp /etc/apt/sources.list /etc/apt/sources.list.bak

这个命令将当前的 sources.list 文件复制为一个名为 sources.list.bak 的备份文件。这是一个好习惯,因为编辑 sources.list 文件时可能会出错,导致无法安装或更新软件包。有了备份,如果出现问题,您可以轻松地恢复原始的文件。

# 编辑软件源列表文件
vim /etc/apt/sources.list

这个命令使用 Vim 编辑器打开 sources.list 文件,以便您可以编辑它。这个文件包含了 APT(Advanced Package Tool)用于安装和更新软件包的软件源列表。通过编辑这个文件,您可以添加新的软件源、更改现有软件源的优先级或禁用某些软件源。

在 Vim 中,您可以使用方向键来移动光标,i 键进入插入模式(可以开始编辑文本),Esc 键退出插入模式,:wq 命令保存更改并退出 Vim,或 :q! 命令不保存更改并退出 Vim。

编辑 sources.list 文件时,请确保您了解自己在做什么,特别是如果您正在添加新的软件源。错误的源可能会导致软件包安装失败或系统安全问题。如果您不确定,最好先搜索并找到可靠的源信息,或者咨询有经验的 Linux 用户。

1726627632814_image.png

使用 Vim 编辑器打开 sources.list 文件,复制以下代码替换 sources.list里面的全部代码,配置 apt 国内阿里源。

deb http://mirrors.aliyun.com/ubuntu/ jammy main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ jammy main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ jammy-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ jammy-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ jammy-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ jammy-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ jammy-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ jammy-backports main restricted universe multiverse

1726627649314_image.png

安装常用软件和工具

# 更新源列表,输入以下命令:
apt-get update# 更新系统软件包,输入以下命令:
apt-get upgrade# 安装常用软件和工具,输入以下命令:
apt-get -y install vim wget git git-lfs unzip lsof net-tools gcc cmake build-essential

出现以下页面,说明国内apt源已替换成功,且能正常安装apt软件和工具

1726627670779_image.png

2. 安装 NVIDIA CUDA Toolkit 12.1

  • 下载 CUDA Keyring :
wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2204/x86_64/cuda-keyring_1.0-1_all.deb

这个命令用于下载 CUDA 的 GPG 密钥环,它用于验证 CUDA 软件包的签名。这是确保软件包安全性的一个重要步骤。

  • 安装 CUDA Keyring :
dpkg -i cuda-keyring_1.0-1_all.deb

使用 dpkg 安装下载的密钥环。这是必要的,以便 apt 能够验证从 NVIDIA 仓库下载的软件包的签名。

1726627689852_image.png

  • 删除旧的 apt 密钥(如果必要) :
apt-key del 7fa2af80

这一步可能不是必需的,除非您知道 7fa2af80 是与 CUDA 相关的旧密钥,并且您想从系统中删除它以避免混淆。通常情况下,如果您只是安装 CUDA 并使用 NVIDIA 提供的最新密钥环,这一步可以跳过。

  • 更新 apt 包列表 :
apt-get update

更新 apt 的软件包列表,以便包括刚刚通过 cuda-keyring 添加的 NVIDIA 仓库中的软件包。

  • 安装 CUDA Toolkit :
apt-get -y install cuda-toolkit-12-1

1726627724243_image.png

出现以下页面,说明 NVIDIA CUDA Toolkit 12.1 安装成功

1726627736357_image.png

注意:这里可能有一个问题。NVIDIA 官方 Ubuntu 仓库中可能不包含直接名为 cuda-toolkit-12-1 的包。通常,您会安装一个名为 cuda 或 cuda-12-1 的元包,它会作为依赖项拉入 CUDA Toolkit 的所有组件。请检查 NVIDIA 的官方文档或仓库,以确认正确的包名。

如果您正在寻找安装特定版本的 CUDA Toolkit,您可能需要安装类似 cuda-12-1 的包(如果可用),或者从 NVIDIA 的官方网站下载 CUDA Toolkit 的 .run 安装程序进行手动安装。

请确保您查看 NVIDIA 的官方文档或 Ubuntu 的 NVIDIA CUDA 仓库以获取最准确的包名和安装指令。

1726627761880_image.png

  • 出现以上情况,需要配置 NVIDIA CUDA Toolkit 12.1 系统环境变量

编辑 ~/.bashrc 文件

# 编辑 ~/.bashrc 文件
vim ~/.bashrc

插入以下环境变量

# 插入以下环境变量
export PATH=/usr/local/cuda/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH

1726627785017_image.png

激活 ~/.bashrc 文件

# 激活 ~/.bashrc 文件
source ~/.bashrc

查看cuda系统环境变量

which nvcc
nvcc -V

1726627797367_image.png

3. 安装 Miniconda

  • 下载 Miniconda 安装脚本 :
    • 使用 wget 命令从 Anaconda 的官方仓库下载 Miniconda 的安装脚本。Miniconda 是一个更小的 Anaconda 发行版,包含了 Anaconda 的核心组件,用于安装和管理 Python 包。
  • 运行 Miniconda 安装脚本 :
    • 使用 bash 命令运行下载的 Miniconda 安装脚本。这将启动 Miniconda 的安装过程。
# 下载 Miniconda 安装脚本
wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh# 运行 Miniconda 安装脚本
bash Miniconda3-latest-Linux-x86_64.sh# 初次安装需要激活 base 环境
source ~/.bashrc

按下回车键(enter)

1726627823409_image.png

输入yes

1726627835177_image.png

输入yes

1726627844297_image.png

安装成功如下图所示

1726627852297_image.png

pip配置清华源加速

# 编辑 /etc/pip.conf 文件
vim  /etc/pip.conf

加入以下代码

[global]
index-url = https://pypi.tuna.tsinghua.edu.cn/simple

注意事项:

  • 请确保您的系统是 Linux x86_64 架构,因为下载的 Miniconda 版本是为该架构设计的。
  • 在运行安装脚本之前,您可能需要使用 chmod +x Miniconda3-latest-Linux-x86_64.sh 命令给予脚本执行权限。
  • 安装过程中,您将被提示是否同意许可协议,以及是否将 Miniconda 初始化。通常选择 "yes" 以完成安装和初始化。
  • 安装完成后,您可以使用 conda 命令来管理 Python 环境和包。
  • 如果链接无法访问或解析失败,可能是因为网络问题或链接本身的问题。请检查网络连接,并确保链接是最新的和有效的。如果问题依旧,请访问 Anaconda 的官方网站获取最新的下载链接。

4. 从 github 仓库 克隆项目

  • 克隆存储库:
    • git clone https://github.com/bilibili/Index-1.9B.git
  • 切换目录:
    • cd Index-1.9B
    • 这个命令使用 cd(change directory)命令切换当前工作目录到刚才克隆的 "Index-1.9B" 目录中。这意味着接下来执行的所有命令都是在该项目目录下执行。
# 克隆 Index-1.9B 项目
git clone https://github.com/bilibili/Index-1.9B.git# 切换到克隆的项目目录中
cd Index-1.9B

1727322098504_b72e451f_12276338.png

如果 github 无法访问,使用 国内镜像 进行克隆

git clone yangchl/Index-1.9B

# 克隆 Index-1.9B 项目
git clone https://gitee.com/empty-snow/Index-1.9B.git# 切换到克隆的项目目录中
cd Index-1.9B

1727322106447_fbb6522d_12276338.png

出现以上页面即是克隆项目成功!

请注意,如果 git clone https://github.com/bilibili/Index-1.9B.git 这个链接不存在或者无效,git clone 命令将不会成功克隆项目,并且会报错。确保链接是有效的,并且您有足够的权限访问该存储库。

5. 创建虚拟环境

# 创建一个名为 Index_1.9B 的新虚拟环境,并指定 Python 版本为 3.12
conda create -n Index_1.9B python=3.12 -y

1727322113087_2ae7bdc5_12276338.png

6. 安装模型依赖库

  • 切换到项目目录、激活虚拟环境、安装依赖
# 切换到 Index-1.9B 项目工作目录
cd Index-1.9B# 激活 Index_1.9B 虚拟环境
conda activate Index_1.9B# 安装 requirements.txt 依赖
pip install -r requirements.txt

1727322121438_4959f2dd_12276338.png

依赖安装成功如下图所示:

1727322126336_e09ce400_12276338.png

7. 下载预训练模型

  • 进入 Hugging Face 官网,进行模型搜索、下载:

1727322132224_6e619631_12276338.png

1727322159618_f3cf104b_12276338.png

  • 如果不能进入 Hugging Face 官网,则进入 HF Mirror 进行模型搜索、下载(步骤如上图一样):

1727322171119_9c774e8f_12276338.png

1727322179506_85e9232a_12276338.png

  • 下载页面:
# 下载模型
git lfs install
git clone https://hf-mirror.com/IndexTeam/Index-1.9B-Chat
  • 模型下载完成的截图:

1727322195887_2110acf4_12276338.png

8. 运行 web_demo.py 文件

# 切换到 Index-1.9B 项目工作目录
cd Index-1.9B# 激活 Index_1.9B 虚拟环境
conda activate Index_1.9B# 运行 web_demo.py 文件
python demo/web_demo.py --port='8080' --model_path='Index-1.9B-Chat'

1727322206010_97d078b2_12276338.png

在运行过程中,出现以上报错,需要进入 pytorch官网 安装 pytorch 依赖包:

1727322213140_31547b6f_12276338.png

pytorch 依赖安装命令:

conda install pytorch torchvision torchaudio pytorch-cuda=12.1 -c pytorch -c nvidia

1727322221057_b588ac1a_12276338.png

输入 y

1727322225920_a4420c75_12276338.png

等待安装完成

1727322231131_8657c3e5_12276338.png

再次运行 web_demo.py 文件:

# 切换到 Index-1.9B 项目工作目录
cd Index-1.9B# 激活 Index_1.9B 虚拟环境
conda activate Index_1.9B# 运行 web_demo.py 文件
python demo/web_demo.py --port='8080' --model_path='Index-1.9B-Chat'

1727322239337_03fa4eab_12276338.png

出现以上报错,需要安装 sentencepiece 依赖包:

pip install sentencepiece

1727322245223_c4bebf0e_12276338.png

再次运行 web_demo.py 文件:

# 切换到 Index-1.9B 项目工作目录
cd Index-1.9B# 激活 Index_1.9B 虚拟环境
conda activate Index_1.9B# 运行 web_demo.py 文件
python demo/web_demo.py --port='8080' --model_path='Index-1.9B-Chat'

1727322251614_4974b6bb_12276338.png

继续按照报错要求进行依赖安装:

pip install accelerate

1727322257353_f913b978_12276338.png

再次运行 web_demo.py 文件:

# 切换到 Index-1.9B 项目工作目录
cd Index-1.9B# 激活 Index_1.9B 虚拟环境
conda activate Index_1.9B# 运行 web_demo.py 文件
python demo/web_demo.py --port='8080' --model_path='Index-1.9B-Chat'

1727322264825_d59b1d14_12276338.png

三、网页演示

出现以下 Gradio 页面,即是模型已搭建完成。

1727322269130_e60443f1_12276338.png

相关文章:

Index-1.9B模型部署教程

一、介绍 Index-1.9B 系列是 Index 系列型号的轻量级版本,包含以下型号: Index-1.9B 基础:具有 19 亿个非嵌入参数的基础模型,在 2.8T 主要为中文和英文的语料上进行预训练,在多个评测基准上与同级别模型相比领先。I…...

C语言 | Leetcode C语言题解之第468题验证IP地址

题目&#xff1a; 题解&#xff1a; char * validIPAddress(char * queryIP) {int len strlen(queryIP);if (strchr(queryIP, .)) {// IPv4int last -1;for (int i 0; i < 4; i) {int cur -1;if (i 3) {cur len;} else {char * p strchr(queryIP last 1, .);if (p…...

Qt自定义一个圆角对话框

如何得到一个圆角对话框&#xff1f; 步骤&#xff1a; 1、继承自QDiaglog 2、去掉系统自带的边框 3、设置背景透明,不设置4个角会有多余的部分出现颜色 4、对话框内部添加1个QWidget&#xff0c;给这个widget设置圆角&#xff0c;并添加到布局中让他充满对话框 5、后续对…...

C++ 中的自旋锁应用:SpinLockManual、SpinLockGuard 和 SpinLockTryGuard

在多线程编程中,同步机制是确保线程安全的关键。自旋锁(Spin Lock)是一种常见的同步机制,它通过忙等待(busy-waiting)的方式来实现线程间的互斥访问。在 C++ 中,我们可以使用 std::atomic_flag 来实现自旋锁。本文将介绍如何使用 SpinLockManual、SpinLockGuard 和 Spin…...

计算机网络 tcp和udp

目录 一、TCP 建立连接-TCP 三次握手 1&#xff09; 什么是半连接队列和全连接队列&#xff1f; 2&#xff09; 为什么要三次握手? 3&#xff09; 三次握手过程中可以携带数据吗&#xff1f; 断开连接-TCP 四次挥手 1&#xff09; 为什么要四次挥手&#xff1f; 2&…...

React(一) 认识React、熟悉类组件、JSX书写规范、嵌入变量表达式、绑定属性

文章目录 一、初始React1. React的基本认识2. Hello案例2.1 三个依赖2.2 渲染页面2.3 hello案例完整代码 二、类组件1. 封装类组件2. 组件里的数据3. 组件里的函数 (重点)4. 案例练习(1) 展示电影列表 三、JSX语法1. 认识JSX2. JSX书写规范及注释3. JSX嵌入变量作为子元素4. JS…...

计算机网络 2024 11 10

计算机网络 - 知乎计算机网络&#xff08;四&#xff09;—— 网络层&#xff08;1、2&#xff09;&#xff1a;网络层概述、网络层提供的两种服务_以下属于网络层范畴的是a透明传输比特流b媒体接入控制c ip地址d-CSDN博客 湖科大教书匠的个人空间-湖科大教书匠个人主页-哔哩哔…...

King3399(ubuntu文件系统)风扇驱动

该文章仅供参考&#xff0c;编写人不对任何实验设备、人员及测量结果负责&#xff01;&#xff01;&#xff01; 0 引言 文章主要介绍King3399&#xff08;ubuntu文件系统&#xff09;风扇控制&#xff08;GPIO&#xff09;&#xff0c;涉及king-rk3399.dts设备树修改&#x…...

前端开发笔记--html 黑马程序员2

文章目录 前端常用标签一、标题标签二、段落标签和换行标签和水平线标签三、文本格式化标签![请添加图片描述](https://i-blog.csdnimg.cn/direct/87583fa23fe04229b016912051f3fc45.png)四、盒子标签五、图像标签六、连接标签七、注释和特殊字符 八、表格标签的基本使用九、列…...

django(二):定义第一个函数及url介绍

1.定义index函数 """ django里的第一个函数必须是request,不写会报错 """def index(request):return HttpResponse("Hello, world. Youre at the index of djangoProject.")注意&#xff01; ①.index函数里的形参必须为request ②.r…...

66 消息队列

66 消息队列 基础概念 参考资料&#xff1a;消息队列MQ快速入门&#xff08;概念、RPC、MQ实质思路、队列介绍、队列对比、应用场景&#xff09; 消息队列就是一个使用队列来通信的组件&#xff1b;为什么需要消息队列&#xff1f; 在实际的商业项目中&#xff0c;它这么做肯…...

【系统分析师】-案例篇-信息系统安全

1、信息系统的安全威胁 来自于物理环境、通信链路、网络系统、操作系统、应用系统以及管理等多个方面。 物理安全威胁是指对系统所用设备的威胁&#xff0c;如自然灾害、电源故障、数据库故障和设备被盗等造成数据丢失或信息泄漏。 通信链路安全威胁是指在传输线路上安装窃…...

基于极光优化算法(Polar Lights Optimization, PLO)的多无人机协同三维路径规划(提供MATLAB代码)

一、极光优化算法介绍 极光优化算法&#xff08;Polar Lights Optimization, PLO&#xff09;是2024年提出的一种新型的元启发式优化算法&#xff0c;它从极光这一自然现象中汲取灵感。极光是由太阳风中的带电粒子在地球磁场的作用下&#xff0c;与地球大气层中的气体分子碰撞…...

TypeScript类型体操5

类型编程主要的目的就是对类型做各种转换&#xff0c;如何对类型做修改&#xff1f; TypeScript 类型系统支持 3 种可以声明任意类型的变量&#xff1a; type、infer、类型参数。 type&#xff1a;类型别名&#xff0c;声明一个变量存储某个类型。type t Promise<number&g…...

搭建广告展示页Start

想自定义广告- 场景&#xff1a; app冷启动/热启动-有广告需求&#xff0c;就打开广告页&#xff0c;没有的话就去登录或者主页 有的app有的需要广告页&#xff0c;有的不需要&#xff0c;搞个配置呗&#xff01;&#xff01;&#xff01; 通过首选项配置存储我们的一些常用…...

无极低码基础版(部署版)课程计划

基础版(部署版)使用指南 特点 简单:1分钟学会无需编码:会SQL即可适合人群:纯小白0代码写服务1. 本地环境安装 JDKMySQLRedisTomcat2. 环境变量配置 JDK无极低码授权3. 配置文件修改 4. 服务启动 5. 服务发布示例 服务手动注册SQL语句注册6. 新增接口示例 正常新增非空参…...

Word文档功能快捷键大全

以下是 Microsoft Word 的全面快捷键大全&#xff0c;涵盖了文档操作、文本编辑、格式化、导航等多种功能&#xff0c;帮助你提高工作效率。 Word 全面快捷键和快捷方式表 功能类别快捷键/快捷方式功能描述基本文档操作Ctrl N新建文档Ctrl O打开文档Ctrl S保存文档F12另存…...

题目:1297. 子串的最大出现次数

> Problem: 1297. 子串的最大出现次数 题目&#xff1a;1297. 子串的最大出现次数 题目描述 给定一个字符串 s&#xff0c;要求找到满足以下条件的任意子串的出现次数&#xff0c;并返回该子串的最大出现次数&#xff1a; 子串中不同字母的数目必须小于等于 maxLetters。…...

一力破万法,高并发系统优化通解思路

高并发系统优化&#xff1a;从理论到Java实践 针对高并发场景&#xff0c;以下策略能够有效提升系统的稳定性和响应速度&#xff1a; 加集群 结果&#xff1a;通过增加服务器数量&#xff0c;实现负载均衡&#xff0c;提高系统整体处理能力。过程&#xff1a; 配置负载均衡器&…...

P8635 [蓝桥杯 2016 省 AB] 四平方和

对于一个给定的正整数&#xff0c;可能存在多种平方和的表示法。 要求你对 44个数排序使得 0≤a≤b≤c≤d。 输入 #1复制 5 输出 #1 0 0 1 2 输入 #2 12 输出 #2 0 2 2 2 输入 #3 773535 输出 #3 1 1 267 838 代码 #include<bits/stdc.h> using namespace …...

ElasticSearch是什么?

1.概述 Elasticsearch 是一个基于 Apache Lucene 构建的开源分布式搜索引擎和分析引擎。它专为云计算环境设计&#xff0c;提供了一个分布式的、高可用的实时分析和搜索平台。Elasticsearch 可以处理大量数据&#xff0c;并且具备横向扩展能力&#xff0c;能够通过增加更多的硬…...

2024年四非边缘鼠鼠计算机保研回忆(记录版 碎碎念)

Hi&#xff0c;大家好&#xff0c;我是半亩花海。写下这篇博客时已然是金秋十月&#xff0c;心中的石头终于落地&#xff0c;恍惚间百感交集。对于保研这条路&#xff0c;我处于摸着石头过河、冲击、随缘的这些状态。计算机保研向来比其他专业难&#xff0c;今年形势更是艰难。…...

clickhouse常用脚本语句

1.创建库和删除库 drop database IF EXISTS rt_db CREATE DATABASE rt_db ENGINE = Ordinary; CREATE DATABASE rt_db ENGINE = Atomic;2.创建表 CREATE TABLE IF NOT EXISTS intellect_alarm_info ( `id` UInt64 , `client_info_id...

GeneMark软件的秘钥gm_key失效怎么办?

GeneMark软件的gm_key失效怎么办 1. 下载网址&#xff08;为软件的下载界面&#xff09;&#xff1a;http://topaz.gatech.edu/GeneMark/license_download.cgi 2.下载界面 根据自己的需求下载对应的版本和类型的gm_key秘钥 3.填写注册信息 4. 点击下载软件和密钥 5. 将秘钥…...

线性回归逻辑回归-笔记

一、线性回归&#xff08;Linear Regression&#xff09; 1. 定义 线性回归是一种用于回归问题的算法&#xff0c;旨在找到输入特征与输出值之间的线性关系。它试图通过拟合一条直线来最小化预测值与真实值之间的误差。 2. 模型表示 线性回归模型假设目标变量&#xff08;输…...

如何将数据从 AWS S3 导入到 Elastic Cloud - 第 1 部分:Elastic Serverless Forwarder

作者&#xff1a;来自 Elastic Hemendra Singh Lodhi 这是多部分博客系列的第一部分&#xff0c;探讨了将数据从 AWS S3 导入 Elastic Cloud 的不同选项。 Elasticsearch 提供了多种从 AWS S3 存储桶导入数据的选项&#xff0c;允许客户根据其特定需求和架构策略选择最合适的方…...

Linux基础-正则表达式

正则表达式概述 正则表达式是处理字符串的一种工具&#xff0c;可以用于查找、删除、替换特定的字符串&#xff0c;主要用于文件内容的处理。与之不同的是&#xff0c;通配符则用于文件名称的匹配。正则表达式通过使用特殊符号&#xff0c;帮助用户轻松实现对文本的操作。 一…...

【HTML格式PPT离线到本地浏览】

文章目录 概要实现细节小结 概要 最近在上课时总是出现网络不稳定导致的PPT无法浏览的情况出现&#xff0c;就想到下载到电脑上。但是PPT是一个HTML的网页&#xff0c;无法通过保存网页&#xff08;右键另存为mhtml只能保存当前页&#xff09;的形式全部下载下来&#xff0c;试…...

如何在Vue项目中封装axios

文章目录 一、axios简介基本使用 二、封装axios的原因三、封装axios的方法1. 设置接口请求前缀2. 设置请求头和超时时间3. 封装请求方法4. 添加请求拦截器5. 添加响应拦截器小结 一、axios简介 axios 是一个基于 XMLHttpRequest 的轻量级HTTP客户端&#xff0c;适用于浏览器和…...

linux 配置ssh免密登录

一、 cd /root/.ssh/ #不存在就创建mkdir /root/.ssh ssh-keygen #连续按4个回车 ll二、将公钥发送到目标服务器下 #公钥上传到目标服务器 ssh-copy-id root192.168.31.142 #回车完也是要输入密码的 #测试一下免密登录&#xff1a; ssh root192.168.31.142 成功...