本指南详细介绍了如何在裸服务器上部署语音AI系统,包括环境配置、依赖安装、模型加载与API配置等关键步骤。使用的主要框架包括Langchain-Chatchat模型框架、ChatGLM3-6B模型、M3E-Base Embeddings模型,以及百度飞桨PaddleSpeech用于语音处理。
安装wget
sudo yum install wget -y wget --version 安装常用开发工具
sudo yum groupinstall "Development Tools" sudo yum install \ openssl-devel \ bzip2-devel \ libffi-devel \ zlib-devel \ xz-devel \ readline-devel \ sqlite-devel \ tk-devel \ gdbm-devel \ ncurses-devel \ libuuid-devel \ libtirpc-devel 把基础包都装上,防止在后续安装的时候,缺各种依赖包。
手动安装OpenSSL 1.1.1
由于yum源中没有更新OpenSSL版本,处于较旧版本状态,需要手动安装openssl
openssl下载地址
tar -zxvf openssl-1.1.1w.tar.gz cd openssl-1.1.1w ./config --prefix=/usr/local/openssl --openssldir=/usr/local/openssl shared zlib make make install # 切换目录/usr/bin,备份原始的openssl mv openssl openssl.bak pwd ll | grep openssl # 创建软连接,使执行openssl时使用新版本的openssl ln -s /usr/local/openssl/bin/openssl /usr/bin/openssl ll | grep openssl # 将安装路径添加到环境变量 cd /root vi .bashrc # 将"export LD_LIBRARY_PATH=/usr/local/openssl/lib:$LD_LIBRARY_PATH"添加到最末行 
# 运行 source .bashrc 的目的是重新加载当前用户的 .bashrc 文件,以便应用其中所做的更改,而无需注销并重新登录 source .bashrc # 更新共享库的链接器缓存 ldconfig # 检查是否安装成功 openssl version ![]()
安装Python 3.10.14及Pip
# 删除旧版本 yum remove Python-3.10.14.tgz # 安装 wget https://www.python.org/ftp/python/3.10.14/Python-3.10.14.tgz tar -xzf Python-3.10.14.tgz cd Python-3.10.14 ./configure --prefix=/usr/local/python3.10 --with-openssl=/usr/local/openssl make make install #软链 ln -s /usr/local/python3.10/bin/python3.10 /usr/bin/python3 python3 --version python3 -m pip install --upgrade pip # pip版本需要24.2 python3 -m pip --version 截至目前,PaddleSpeech仅支持最高版本为2.5.1的PaddlePaddle。许多人认为需要先手动安装PaddlePaddle,但实际上,在安装PaddleSpeech时,会自动下载安装与之兼容的PaddlePaddle版本。如果系统中已经存在更新的PaddlePaddle版本(如2.6.x),安装PaddleSpeech后将会被自动降级至2.5.1版本的PaddlePaddle-GPU。需要注意的是,PaddleSpeech默认安装的是GPU版本的PaddlePaddle-2.5.1。如果CUDA设备配置不正确,PaddlePaddle将默认使用CPU进行推理。因此,确保CUDA设备正确配置对于性能优化至关重要。
pip install pytest-runner pip install paddlespeech 注意:Scipy版本不得高于1.10.1。验证:参考官方文档

为了避免安装 langchain-chatchat 和 paddlespeech 时产生依赖冲突,建议使用 Anaconda 创建独立的 Python 虚拟环境。通过这种方式,可以确保两者的依赖项相互隔离,不会相互干扰。
wget -c 'https://repo.anaconda.com/archive/Anaconda3-2023.09-0-Linux-x86_64.sh' -P /opt/ --no-check-certificate bash Anaconda3-2023.09-0-Linux-x86_64.sh # 后续按照提示安装即可 #创建conda环境 conda create -n chatchat python=3.10.14 #检查环境是否创建完成 conda info --envs 
# 进入已经创建好的虚拟环境 conda activate chatchat # 安装pytorch pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118 -i https://pypi.tuna.tsinghua.edu.cn/simple Langchain-Chatchat项目。# 获取最新版本 git clone https://github.com/chatchat-space/Langchain-Chatchat.git # 获取指定版本 git clone -b v0.2.9 https://github.com/chatchat-space/Langchain-Chatchat.git cd Langchain-Chatchat # 安装项目所需依赖包 pip3 install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple/ M3E-Base和ChatGLM3-6B模型。# 安装git lfs 管理大文件 yum install epel-release -y yum install git-lfs -y git lfs install git clone https://gitee.com/hf-models/m3e-base.git git clone https://gitee.com/hf-models/chatglm3-6b.git # 批量复制configs目录下所有的配置文件,去掉example后缀 python copy_config_example.py 修改model_config.py文件
修改m3e-base的模型本地路径:


修改server_config.py

python init_database.py python startup.py -a 如果启动出现异常:
如:
异常1:ModuleNotFoundError: No module named 'llama_index.bridge' 解决:更换版本:“pydantic” 包的版本为 1.10.13,“llama-index” 包的版本为 0.9.35 异常2:AttributeError:“GenerationConfig”对象没有属性“_eos_token_tensor” 解决:Transformers 版本太新了,使用chatglm3的话可以把transformers版本降到4.40 pip uninstall transformers pip install transformers==4.40.0 注意:应用端口是8501,API接口调用端口是7861
出现以下则为启动成功:

在server_config.py文件中启用跨域支持。
模型API文档地址:http://ip:7861/docs
http://ip:7861/docs
新建知识库,填写知识库名称,选择安装的m3e-base模型。

导入训练文件:

选择知识库问答模式,即可开始对话,在API中也可直接调用知识库进行问答:
上一篇:Python WSGI服务器库之gunicorn使用详解
下一篇:day03