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

基于ChatGLM3的本地问答机器人部署流程

基于ChatGLM3的本地问答机器人部署流程

  • 前言
  • 一、确定文件结构
    • 1.新建文件夹储存本地模型
    • 2.下载源码和模型
  • 二、Anaconda环境搭建
    • 1.创建anaconda环境
    • 2.安装相关库
    • 3.设置本地模型路径
    • 4.启动
  • 三、构建本地知识库
    • 1.下载并安装postgresql
    • 2.安装c++库
    • 3.配置向量插件
  • 四、线上运行
  • 五、 全部命令

前言

部署完成后视频演示

https://www.bilibili.com/video/BV1fV3XePEi4/?spm_id_from=333.1007.top_right_bar_window_dynamic.content.click&vd_source=c5d972a40f6877b991f3c691467df568

参考链接:

https://github.com/THUDM/ChatGLM3
https://github.com/chatchat-space/Langchain-Chatchat
#微调
https://github.com/THUDM/ChatGLM3/blob/main/finetune_demo/README.md
https://zhipu-ai.feishu.cn/wiki/QiLtwks1YioOSEkCxFIcAEWNnzb
https://github.com/chatchat-space/Langchain-Chatchat/wiki/

#基于ChatGLM3的本地测井问答机器人设计文档

https://download.csdn.net/download/qq_51985653/89406695

一、确定文件结构

1.新建文件夹储存本地模型

在这里插入图片描述

2.下载源码和模型

#若下载较慢也可复制链接手动下载到本地

git clone https://huggingface.co/THUDM/chatglm2-6b-32k
git clone https://huggingface.co/moka-ai/m3e-base
git clone https://github.com/chatchat-space/Langchain-Chatchat.git

下载完成后的文件结构
在这里插入图片描述

二、Anaconda环境搭建

1.创建anaconda环境

打开anaconda终端,创建并激活环境

conda create -n log-chat python=3.10
conda activate log-chat

在这里插入图片描述

2.安装相关库

conda install spacy
pip install cchardet 
pip install accelerate
pip install --upgrade pip
pip install -r requirements.txt

在这里插入图片描述

3.设置本地模型路径

来到llm-chat模型的configs文件夹下,修改model_config.py的内容
在这里插入图片描述

将LLM_MODELS设置为本地下载的模型文件

LLM_MODELS = ["chatglm2-6b-32k"]

在这里插入图片描述

在MODEL_PATH 中将m3e-base设置为本地路径

在这里插入图片描述

将llm_model中的chatglm2-6b-32k设置为本地模型路径,若本地有其他模型文件则同理

在这里插入图片描述

4.启动

在anaconda终端中进行启动

cd  D:\DeeplearningWorkplace\GPT\models\llm-chat
python startup.py --all-webui

在这里插入图片描述

三、构建本地知识库

1.下载并安装postgresql

在这里插入图片描述

2.安装c++库

在这里插入图片描述

3.配置向量插件

在这里插入图片描述

在这里插入图片描述

在Developer Command Prompt for Vs 2022终端进入源码目录下并执行call命令

cd  D:\DeeplearningWorkplace\GPT\models\llm-chat
call “E:\Softwares\Microsoft Visual tudio\2022\Community\VC\Auxiliary\Build\vcvars64.bat”

在这里插入图片描述

set "PGROOT=E:\Softwares\PostgreSQL\16"
git clone -branch v0.4.4 https://github.com/pgvector/pgvector.git
cd pgvector
nmake /F Makefile.win
nmake /F Makefile.win install

#打开pgAdmin4,创建数据库并安装向量插件

在这里插入图片描述

在这里插入图片描述

四、线上运行

服务器租赁:https://www.autodl.com/

#autodl部署启动命令
cd /root/Langchain-Chatchat/
conda activate /root/pyenv
python startup.py -a
#服务器连接本地参考命令
ssh -CNg -L  8501:127.0.0.1:8501 featurize@workspace.featurize.cn -p 56656ssh -CNg -L 6006:127.0.0.1:6006 root@123.125.240.150 -p 42151#其中root@123.125.240.150和42151分别是实例中SSH指令的访问地址与端口,
#请找到自己实例的ssh指令做相应替换。
#6006:127.0.0.1:6006是指代理实例内6006端口到本地的6006端口。

在这里插入图片描述

添加本地文件到知识库
在这里插入图片描述
在这里插入图片描述

五、 全部命令

#完成建立放置本地模型文件夹后在Anaconda终端执行下述命令
#其中相关路径要修改为自己对应的本地路径#下载模型
git clone https://huggingface.co/THUDM/chatglm2-6b-32k
git clone https://huggingface.co/moka-ai/m3e-base
git clone https://github.com/chatchat-space/Langchain-Chatchat.git#创建并激活conda环境
conda create -n log-chat python=3.10
conda activate log-chat#在模型对应路径下安装相关库
cd  D:\DeeplearningWorkplace\GPT\models\llm-chat
conda install spacy
pip install cchardet 
pip install accelerate
pip install --upgrade pip
pip install -r requirements.txtcd configs 
cp ./model_config.py.example  ./model_config.pycp ./server_config.py.example  ./server_config.pycp ./basic_config.py.example  ./basic_config.pycp ./kb_config.py.example  ./kb_config.py
cp ./prompt_config.py.example  ./prompt_config.py
#修改llm-chat配置文件使其使用本地模型
#修改model_config.py文件内容#anaconda中启动
conda activate log-chat
cd  D:\DeeplearningWorkplace\GPT\models\llm-chat
python startup.py --all-webui#下载postgresql
#https://www.enterprisedb.com/downloads/postgres-postgresql-downloads
#下载visualstudio 安装c++环境
#https://visualstudio.microsoft.com/zh-hans/downloads
#在Developer Command Prompt for Vs 2022终端进入源码目录下
cd  D:\DeeplearningWorkplace\GPT\models\llm-chat#执行call命令
call “E:\Softwares\Microsoft Visual Studio\2022\Community\VC\Auxiliary\Build\vcvars64.bat”#执行下述命令
set "PGROOT=E:\Softwares\PostgreSQL\16"
git clone -branch v0.4.4 https://github.com/pgvector/pgvector.git
cd pgvector
nmake /F Makefile.win
nmake /F Makefile.win install#打开pgAdmin4,创建数据库并安装向量插件
CREATE DATABASE TEST;
CREATE EXTENSION IF NOT EXISTS vector;#打开anaconda终端
conda activate log-chat
cd  D:\DeeplearningWorkplace\GPT\models\llm-chat\configs
python -m spacy download en_core_web_sm
python -m spacy download zh_core_web_sm
pip install psycopg2
pip install pgvetor
cd  D:\DeeplearningWorkplace\GPT\models\llm-chat\
python init_database.py --recreate-vs#启动
python startup.py -a
#之后在网页端上传知识库文件即可

相关文章:

基于ChatGLM3的本地问答机器人部署流程

基于ChatGLM3的本地问答机器人部署流程 前言一、确定文件结构1.新建文件夹储存本地模型2.下载源码和模型 二、Anaconda环境搭建1.创建anaconda环境2.安装相关库3.设置本地模型路径4.启动 三、构建本地知识库1.下载并安装postgresql2.安装c库3.配置向量插件 四、线上运行五、 全…...

归并排序——逆序数对的统计

逆序数对的统计 题目描述 运行代码 #include <iostream> using namespace std; #define LL long long const int N 1e5 5; int a[N], tmp[N]; LL merge_sort(int q[], int l, int r) {if (l > r)return 0; int mid l r >> 1; LL res merge_sort(q, l,…...

基于截图和模拟点击的自动化压测工具开发(MFC)

1.背景 想对一个MFC程序做自动压测功能&#xff0c;根据判断程序界面某块区域是否达到预定状态&#xff0c;来自动执行鼠标点击或者键盘输入的操作&#xff0c;以解决测试人员需要重复手动压测问题。 1.涉及的技术 串口控制&#xff0c;基于MFC橡皮筋类(CRectTracker)做一个…...

力扣每日一题 6/10

881.救生艇[中等] 题目&#xff1a; 给定数组 people 。people[i]表示第 i 个人的体重 &#xff0c;船的数量不限&#xff0c;每艘船可以承载的最大重量为 limit。 每艘船最多可同时载两人&#xff0c;但条件是这些人的重量之和最多为 limit。 返回 承载所有人所需的最小船…...

[知识点] 内存顺序属性的用途和行为

C标准库中定义了以下几种内存顺序属性&#xff1a; std::memory_order_relaxedstd::memory_order_consumestd::memory_order_acquirestd::memory_order_releasestd::memory_order_acq_relstd::memory_order_seq_cst 1. std::memory_order_relaxed 定义&#xff1a;不提供同步…...

JAVA Mongodb 深入学习(二)索引的创建和优化

一、常用索引类型 1、单个索引 单个索引的创建 db.你的表名.createIndex({"你的字段名":1}) 单个索引的创建且是唯一索引 db.你的表名.createIndex({"你的字段名":1}),{ unique: true }) 2、复合索引 将多个过滤的字段&#xff0c;做成索引&#xff0c;…...

转让北京劳务分包地基基础施工资质条件和流程

地基基础资质转让流程是怎样的?对于企业来说&#xff0c;资质证书不仅是实力的证明&#xff0c;更是获得工程承包的前提。而在有了资质证书后&#xff0c;企业才可以安心的准备工程投标&#xff0c;进而在工程竣工后获得收益。而对于从事地基基础工程施工的企业&#xff0c;需…...

Python基础——字符串

一、Python的字符串简介 Python中的字符串是一种计算机程序中常用的数据类型【可将字符串看作是一个由字母、数字、符号组成的序列容器】&#xff0c;字符串可以用来表示文本数据。 通常使用一对英文的单引号&#xff08;&#xff09;或者双引号&#xff08;"&#xff09;…...

AP的数据库性能到底重要吗?

先说结论&#xff1a;没那么重要。甚至可能不重要。 我用我的经历和分析给大家说说。诸位看看如何。 不重要的观点是不是不能接受&#xff1f; 因为这些是站在我们角度觉得的。而实际上使用者&#xff08;业务或者用户&#xff09;&#xff0c;真的不太在乎我们所在乎的。 …...

Vue3【二】 VSCode需要安装的Vue语法插件

VSCode需要安装的 适配Vue3的插件 Vue-Official插件安装...

设置路径别名

一、描述 如果想要给路径设置为别名&#xff0c;就是常见的有些项目前面的引入文件通过开头的&#xff0c;也就是替换了一些固定的文件路径&#xff0c;怎么配置。 二、配置 import { defineConfig } from vite import react from vitejs/plugin-react import path from path…...

人事信息管理系统(Java+MySQL)

一、项目背景 在现代企业中&#xff0c;管理大量员工的工作信息、薪资、请假、离职等事务是一项非常繁琐和复杂的任务。传统的手工管理方式不仅效率低下&#xff0c;而且容易出错。为了提高人事管理的效率&#xff0c;减少人工操作带来的错误&#xff0c;企业迫切需要一个高效…...

Python 中生成器与普通函数的区别

在Python中&#xff0c;生成器和普通函数有一些区别。 生成器使用 yield 语句从函数中返回一个值&#xff0c;而不是使用 return 语句。当生成器函数被调用时&#xff0c;它会返回一个迭代器对象&#xff0c;而非立即执行函数体内的代码。 生成器函数可以通过多次调用 yield 语…...

最小栈、栈的弹出(C++)

1.最小栈 思路分析&#xff1a; 代码&#xff1a; class MinStack { public:MinStack() {}void push(int val) {st.push(val);//两种情况需要更新最小值//1.最小栈为空(就是存最小值的那个栈)//2.插入的值小于或等于最小栈的栈顶元素if(minstack.empty()||minstack.top()>…...

20240607每日通信--------VUE3前端引入scoket-io,后端引入Netty-SocketIO,我成功了,希望一起交流沟通

无语 前置&#xff1a; VUE3 前端集成scoket-io socket.io-client Sringboot 3.0JDK17集成Netty-SocketIO Netty-SocketIO 失败原因一&#xff1a; 前期决定要写demo时候&#xff0c;单独了解了&#xff0c;后端引入Netty-SocketIO注意事项&#xff0c;详见我先头写的博客 前…...

Tomcat源码解析(八):一个请求的执行流程(附Tomcat整体总结)

Tomcat源码系列文章 Tomcat源码解析(一)&#xff1a;Tomcat整体架构 Tomcat源码解析(二)&#xff1a;Bootstrap和Catalina Tomcat源码解析(三)&#xff1a;LifeCycle生命周期管理 Tomcat源码解析(四)&#xff1a;StandardServer和StandardService Tomcat源码解析(五)&…...

python使用gdb进行堆栈查看与调试

以ubuntu示例&#xff0c;先安装gdb与python-dbg&#xff0c;dbg按照python版本安装 apt install -y gdb python3.10-dbg 使用top查看python进程&#xff0c;使用gdb操作python进程 gdb python3 6618 加载环境 source /usr/share/gdb/auto-load/usr/bin/python3.10-gdb.py…...

【DevOps】路由与路由器详细介绍:原理、功能、类型及应用场景

目录 一、路由详细介绍 1、什么是路由&#xff1f; 2、路由的基本原理 3、 路由协议 静态路由 动态路由 4、 路由表 5、 路由算法 6、路由的优缺点 优点 缺点 7、 路由应用场景 二、路由器详细介绍 1、什么是路由器&#xff1f; 2、 路由器的工作原理 3、路由器…...

【WP|9】深入解析WordPress [add_shortcode]函数

add_shortcode 是 WordPress 中一个非常强大的函数&#xff0c;用于创建自定义的短代码&#xff08;shortcodes&#xff09;。短代码是一种简洁的方式&#xff0c;允许用户在内容中插入动态的、可重用的功能。通过 add_shortcode&#xff0c;开发者可以定义自己的短代码&#x…...

Qt QStackedWidget类详细分析

一.定义 QStackedWidget类是一个容器控件&#xff0c;它提供了一个堆叠的页面布局方式&#xff0c;每个页面可以包含一个子部件。在QStackedWidget中&#xff0c;只有当前活动的页面是可见的&#xff0c;其他页面会被隐藏起来。 QStackedWidget类的常用方法包括&#xff1a; a…...

Redis相关知识总结(缓存雪崩,缓存穿透,缓存击穿,Redis实现分布式锁,如何保持数据库和缓存一致)

文章目录 1.什么是Redis&#xff1f;2.为什么要使用redis作为mysql的缓存&#xff1f;3.什么是缓存雪崩、缓存穿透、缓存击穿&#xff1f;3.1缓存雪崩3.1.1 大量缓存同时过期3.1.2 Redis宕机 3.2 缓存击穿3.3 缓存穿透3.4 总结 4. 数据库和缓存如何保持一致性5. Redis实现分布式…...

相机从app启动流程

一、流程框架图 二、具体流程分析 1、得到cameralist和对应的静态信息 目录如下: 重点代码分析: 启动相机前,先要通过getCameraIdList获取camera的个数以及id,然后可以通过getCameraCharacteristics获取对应id camera的capabilities(静态信息)进行一些openCamera前的…...

【AI学习】三、AI算法中的向量

在人工智能&#xff08;AI&#xff09;算法中&#xff0c;向量&#xff08;Vector&#xff09;是一种将现实世界中的数据&#xff08;如图像、文本、音频等&#xff09;转化为计算机可处理的数值型特征表示的工具。它是连接人类认知&#xff08;如语义、视觉特征&#xff09;与…...

JVM暂停(Stop-The-World,STW)的原因分类及对应排查方案

JVM暂停(Stop-The-World,STW)的完整原因分类及对应排查方案,结合JVM运行机制和常见故障场景整理而成: 一、GC相关暂停​​ 1. ​​安全点(Safepoint)阻塞​​ ​​现象​​:JVM暂停但无GC日志,日志显示No GCs detected。​​原因​​:JVM等待所有线程进入安全点(如…...

Android 之 kotlin 语言学习笔记三(Kotlin-Java 互操作)

参考官方文档&#xff1a;https://developer.android.google.cn/kotlin/interop?hlzh-cn 一、Java&#xff08;供 Kotlin 使用&#xff09; 1、不得使用硬关键字 不要使用 Kotlin 的任何硬关键字作为方法的名称 或字段。允许使用 Kotlin 的软关键字、修饰符关键字和特殊标识…...

Java多线程实现之Thread类深度解析

Java多线程实现之Thread类深度解析 一、多线程基础概念1.1 什么是线程1.2 多线程的优势1.3 Java多线程模型 二、Thread类的基本结构与构造函数2.1 Thread类的继承关系2.2 构造函数 三、创建和启动线程3.1 继承Thread类创建线程3.2 实现Runnable接口创建线程 四、Thread类的核心…...

Linux C语言网络编程详细入门教程:如何一步步实现TCP服务端与客户端通信

文章目录 Linux C语言网络编程详细入门教程&#xff1a;如何一步步实现TCP服务端与客户端通信前言一、网络通信基础概念二、服务端与客户端的完整流程图解三、每一步的详细讲解和代码示例1. 创建Socket&#xff08;服务端和客户端都要&#xff09;2. 绑定本地地址和端口&#x…...

Go语言多线程问题

打印零与奇偶数&#xff08;leetcode 1116&#xff09; 方法1&#xff1a;使用互斥锁和条件变量 package mainimport ("fmt""sync" )type ZeroEvenOdd struct {n intzeroMutex sync.MutexevenMutex sync.MutexoddMutex sync.Mutexcurrent int…...

手机平板能效生态设计指令EU 2023/1670标准解读

手机平板能效生态设计指令EU 2023/1670标准解读 以下是针对欧盟《手机和平板电脑生态设计法规》(EU) 2023/1670 的核心解读&#xff0c;综合法规核心要求、最新修正及企业合规要点&#xff1a; 一、法规背景与目标 生效与强制时间 发布于2023年8月31日&#xff08;OJ公报&…...

系统掌握PyTorch:图解张量、Autograd、DataLoader、nn.Module与实战模型

本文较长&#xff0c;建议点赞收藏&#xff0c;以免遗失。更多AI大模型应用开发学习视频及资料&#xff0c;尽在聚客AI学院。 本文通过代码驱动的方式&#xff0c;系统讲解PyTorch核心概念和实战技巧&#xff0c;涵盖张量操作、自动微分、数据加载、模型构建和训练全流程&#…...