Ubuntu部署LangChain-Chatchat

个人博客:https://blog.lukeewin.top
更多内容欢迎访问我的博客。

一、环境

OS: Ubuntu 20.04
PyTorch: 2.0.0
Python: 3.8
CUDA: 11.8
GPU: RTX 4090 24GB
CPU: 12 vCPU Intel(R) Xeon(R) Platinum 8352V CPU @ 2.10GHz
RAM: 90GB
硬盘: 180GB
LLM: Chatglm3-6b
Embedding Models: BAAI/bge-large-zh-v1.5
TextSplitter: ChineseRecursiveTextSplitter
Kb_dataset: faiss

启用学术加速:

source /etc/network_turbo

关闭学术加速:

unset http_proxy && unset https_proxy

如果是在Notebook中可以运行下面代码:

import subprocess
import osresult = subprocess.run('bash -c "source /etc/network_turbo && env | grep proxy"', shell=True, capture_output=True, text=True)
output = result.stdout
for line in output.splitlines():if '=' in line:var, value = line.split('=', 1)os.environ[var] = value

二、创建Python运行环境

# 创建Python运行虚拟环境
# 方式一
conda create -p yourParth pythonVersion
# 例如
conda create -p /root/autodl-tmp/llm python=3.8# 方式二
conda create -n name pythonVersion
# 例如
conda create -n llm python=3.8

三、克隆源码以及安装Python依赖库

  1. 激活虚拟环境
conda activate /root/autodl-tmp/llm # 如果用方式一
conda activate llm # 如果用方式二
  1. 更新pip
pip3 install --upgrade pip
  1. 拉取源码
git clone --recursive https://github.com/chatchat-space/Langchain-Chatchat.git
  1. 进入目录
cd Langchain-Chatchat
  1. 安装全部依赖 (如果不想要安装全部依赖,可以跳过这步)
pip install -r requirements.txt# 我这里把前三个依赖注释了,并且把fass向量数据库依赖注释了# 默认依赖包括基本运行环境(FAISS向量库)。以下是可选依赖:
- 如果要使用 milvus/pg_vector 等向量库,请将 requirements.txt 中相应依赖取消注释再安装。
- 如果要开启 OCR GPU 加速,请安装 rapidocr_paddle[gpu]
- 如果要使用在线 API 模型,请安装对用的 SDK
  1. 如果只需运行API,可执行:
pip install -r requirements_api.txt
  1. 如果只需运行WebUI,可执行:
pip install -r requirements_webui.txt

四、模型下载

安装好python依赖后,在LangChain源码目录内创建目录model

mkdir model

安装gitgit-lfs

sudo apt update
sudo apt install git
curl -s https://packagecloud.io/install/repositories/github/git-lfs/script.deb.sh | sudo bash
sudo apt-get install git-lfs
git lfs install

使用git命令克隆模型到服务器。

git clone https://huggingface.co/THUDM/chatglm3-6b
git clone https://huggingface.co/BAAI/bge-large-zh-v1.5

五、初始化向量数据库

  • 如果您已经有创建过知识库,可以先执行以下命令创建或更新数据库表:
python init_database.py --create-tables

如果可以正常运行,则无需再重建知识库。

  • 如果您是第一次运行本项目,知识库尚未建立,或者之前使用的是低于最新master分支版本的框架,或者配置文件中的知识库类型、嵌入模型发生变化,或者之前的向量库没有开启 normalize_L2,需要以下命令初始化或重建知识库:
python init_database.py --recreate-vs

如果报错:

ModuleNotFoundError: No module named 'configs.basic_config'

解决方案:

python copy_config_example.py

六、启动

1. 修改加载离线模型

# 修改 vim /root/autodl-tmp/llm/src/Langchain-Chatchat/startup.py
# 是修改 Work 中的模型路径
model_path='/root/autodl-tmp/llm/src/Langchain-Chatchat/model/chatglm3-6b', # 这里写离线模型的绝对路径

2. 修改启动端口

configs/server_config.py

WEBUI_SERVER = {"host": DEFAULT_BIND_HOST,"port": 6006,
}

3. 启动

python startup.py -a # 启动全部
可选参数包括 -a (或--all-webui), --all-api, --llm-api, -c (或--controller), --openai-api, -m (或--model-worker), --api, --webui,其中:--all-webui 为一键启动 WebUI 所有依赖服务;
--all-api 为一键启动 API 所有依赖服务;
--llm-api 为一键启动 Fastchat 所有依赖的 LLM 服务;
--openai-api 为仅启动 FastChat 的 controller 和 openai-api-server 服务;
其他为单独服务启动选项。
若想指定非默认模型,需要用 --model-name 选项,示例:python startup.py --all-webui --model-name Qwen-7B-Chat
更多信息可通过 python startup.py -h 查看。

4. 端口映射

ssh -CNg -L 6006:127.0.0.1:6006 root@connect.westb.seetacloud.com -p 25229

七、报错信息以及对应的解决方案

初始化向量数据库报错:ModuleNotFoundError: No module named 'configs.basic_config'
执行:python copy_config_example.py
报错:ModuleNotFoundError: No module named 'faiss'
执行:pip install faiss-gpu

八、运行效果

错信息以及对应的解决方案

初始化向量数据库报错:ModuleNotFoundError: No module named 'configs.basic_config'
执行:python copy_config_example.py
报错:ModuleNotFoundError: No module named 'faiss'
执行:pip install faiss-gpu

八、运行效果

image-20240403153555981

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

如何在Python中将HTML实体代码转换为文本

在处理HTML数据时&#xff0c;有时会遇到HTML实体代码&#xff0c;这些代码是为了在HTML中表示特殊字符而使用的。例如&#xff0c;<表示小于符号(<)&#xff0c;>表示大于符号(>)&#xff0c;&表示和符号(&)等等。那么当我们在实际操作中可能会遇到下面的…

vue+elementUI实现表格组件的封装

效果图&#xff1a; 在父组件使用表格组件 <table-listref"table":stripe"true":loading"loading":set-table-h"slotProps.setMainCardBodyH":table-data"tableData":columns"columns.tableList || []":ra…

【Ambari】Ansible自动化部署大数据集群

目录 一&#xff0e;版本说明和介绍信息 1.1 大数据组件版本 1.2 Apache Components 1.3 Databases支持版本 二&#xff0e;安装包上传和说明 三&#xff0e;服务器基础环境配置 3.1global配置修改 3.2主机名映射配置 3.3免密用户名密码配置 3.4 ansible安装 四. 安…

地面站Mission Planner从源码编译与运行

0. 环境 - win10&#xff08;基本需要100G硬盘&#xff09; - ubuntu18 1. 安装vs2022 下载 vs2022 community 在线安装包。 https://visualstudio.microsoft.com/ 打开 Visual Studio Installer 先安装 Visual Studio Community 2022本体。占用1.2GB。 Visual Studio Inst…

批量导入svg文件作为图标使用(vue3)vite-plugin-svg-icons插件的具体应用

目录 需求svg使用简述插件使用简述实现安装插件1、配置vite.config.ts2、src/main.ts引入注册脚本3、写个icon组件4、使用组件 需求 在vue3项目中&#xff0c;需要批量导入某个文件夹内数量不确定的svg文件用来作为图标&#xff0c;开发完成后能够通过增减文件夹内的svg文件&a…

【SpringCloud】Nacos 注册中心

目 录 一.认识和安装 Nacos1.Windows安装1. 下载安装包2. 解压3. 端口配置4. 启动5. 访问 2.Linux安装1. 安装JDK2. 上传安装包3. 解压4. 端口配置5. 启动 二.服务注册到 nacos1. 引入依赖2. 配置 nacos 地址3. 重启 三.服务分级存储模型1. 给 user-service 配置集群2. 同集群优…

搜索与图论——拓扑排序

有向图的拓扑排序就是图的宽度优先遍历的一个应用 有向无环图一定存在拓扑序列&#xff08;有向无环图又被称为拓扑图&#xff09;&#xff0c;有向有环图一定不存在拓扑序列。无向图没有拓扑序列。 拓扑序列&#xff1a;将一个图排成拓扑序后&#xff0c;所有的边都是从前指…

电脑端库存管理系统哪个好

库存管理系统的作用是管理仓库的各种账面&#xff0c;比较常用的就是在电脑上安装电脑端的库存管理系统进行操作&#xff0c;现今如除了电脑端库存管理系统之外&#xff0c;还有一些是手机端和平板端的&#xff0c;所以我们在管理库存的时候可以选择一些多端都能操作的库存管理…

刷题之Leetcode209题(超级详细)

209.长度最小的子数组 力扣题目链接(opens new window)https://leetcode.cn/problems/minimum-size-subarray-sum/ 给定一个含有 n 个正整数的数组和一个正整数 s &#xff0c;找出该数组中满足其和 ≥ s 的长度最小的 连续 子数组&#xff0c;并返回其长度。如果不存在符合条…

Pytorch数据结构:GPU加速

文章目录 一、GPU加速1. 检查GPU可用性&#xff1a;2. GPU不可用需要具体查看问题3. 指定设备4.将张量和模型转移到GPU5.执行计算&#xff1a;6.将结果转移回CPU 二、转移原理1. 数据和模型的存储2. 数据传输3. 计算执行4. 设备管理5.小结 三、to方法的参数类型 一、GPU加速 .…

PyCharm使用指南(个性化设置、开发必备插件、常用快捷键)

&#x1f947;作者简介&#xff1a;CSDN内容合伙人、新星计划第三季Python赛道Top1 &#x1f525;本文已收录于Python系列专栏&#xff1a; 零基础学Python &#x1f4ac;订阅专栏后可私信博主进入Python学习交流群&#xff0c;进群可领取Python视频教程以及Python相关电子书合…

【话题】程序员35岁会失业吗?

大家好&#xff0c;我是全栈小5&#xff0c;欢迎阅读小5的系列文章&#xff0c;这是《话题》系列文章 目录 背景招聘分析一、技术更新换代的挑战二、经验与技术的双重优势三、职业发展的多元化选择四、个人成长与职业规划的平衡五、结语文章推荐 背景 35岁被认为是程序员职业生…