基于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程序做自动压测功能,根据判断程序界面某块区域是否达到预定状态,来自动执行鼠标点击或者键盘输入的操作,以解决测试人员需要重复手动压测问题。 1.涉及的技术 串口控制,基于MFC橡皮筋类(CRectTracker)做一个…...
力扣每日一题 6/10
881.救生艇[中等] 题目: 给定数组 people 。people[i]表示第 i 个人的体重 ,船的数量不限,每艘船可以承载的最大重量为 limit。 每艘船最多可同时载两人,但条件是这些人的重量之和最多为 limit。 返回 承载所有人所需的最小船…...
[知识点] 内存顺序属性的用途和行为
C标准库中定义了以下几种内存顺序属性: 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 定义:不提供同步…...
JAVA Mongodb 深入学习(二)索引的创建和优化
一、常用索引类型 1、单个索引 单个索引的创建 db.你的表名.createIndex({"你的字段名":1}) 单个索引的创建且是唯一索引 db.你的表名.createIndex({"你的字段名":1}),{ unique: true }) 2、复合索引 将多个过滤的字段,做成索引,…...
转让北京劳务分包地基基础施工资质条件和流程
地基基础资质转让流程是怎样的?对于企业来说,资质证书不仅是实力的证明,更是获得工程承包的前提。而在有了资质证书后,企业才可以安心的准备工程投标,进而在工程竣工后获得收益。而对于从事地基基础工程施工的企业,需…...
Python基础——字符串
一、Python的字符串简介 Python中的字符串是一种计算机程序中常用的数据类型【可将字符串看作是一个由字母、数字、符号组成的序列容器】,字符串可以用来表示文本数据。 通常使用一对英文的单引号()或者双引号(")…...
AP的数据库性能到底重要吗?
先说结论:没那么重要。甚至可能不重要。 我用我的经历和分析给大家说说。诸位看看如何。 不重要的观点是不是不能接受? 因为这些是站在我们角度觉得的。而实际上使用者(业务或者用户),真的不太在乎我们所在乎的。 …...
Vue3【二】 VSCode需要安装的Vue语法插件
VSCode需要安装的 适配Vue3的插件 Vue-Official插件安装...
设置路径别名
一、描述 如果想要给路径设置为别名,就是常见的有些项目前面的引入文件通过开头的,也就是替换了一些固定的文件路径,怎么配置。 二、配置 import { defineConfig } from vite import react from vitejs/plugin-react import path from path…...
人事信息管理系统(Java+MySQL)
一、项目背景 在现代企业中,管理大量员工的工作信息、薪资、请假、离职等事务是一项非常繁琐和复杂的任务。传统的手工管理方式不仅效率低下,而且容易出错。为了提高人事管理的效率,减少人工操作带来的错误,企业迫切需要一个高效…...
Python 中生成器与普通函数的区别
在Python中,生成器和普通函数有一些区别。 生成器使用 yield 语句从函数中返回一个值,而不是使用 return 语句。当生成器函数被调用时,它会返回一个迭代器对象,而非立即执行函数体内的代码。 生成器函数可以通过多次调用 yield 语…...
最小栈、栈的弹出(C++)
1.最小栈 思路分析: 代码: class MinStack { public:MinStack() {}void push(int val) {st.push(val);//两种情况需要更新最小值//1.最小栈为空(就是存最小值的那个栈)//2.插入的值小于或等于最小栈的栈顶元素if(minstack.empty()||minstack.top()>…...
20240607每日通信--------VUE3前端引入scoket-io,后端引入Netty-SocketIO,我成功了,希望一起交流沟通
无语 前置: VUE3 前端集成scoket-io socket.io-client Sringboot 3.0JDK17集成Netty-SocketIO Netty-SocketIO 失败原因一: 前期决定要写demo时候,单独了解了,后端引入Netty-SocketIO注意事项,详见我先头写的博客 前…...
Tomcat源码解析(八):一个请求的执行流程(附Tomcat整体总结)
Tomcat源码系列文章 Tomcat源码解析(一):Tomcat整体架构 Tomcat源码解析(二):Bootstrap和Catalina Tomcat源码解析(三):LifeCycle生命周期管理 Tomcat源码解析(四):StandardServer和StandardService Tomcat源码解析(五)&…...
python使用gdb进行堆栈查看与调试
以ubuntu示例,先安装gdb与python-dbg,dbg按照python版本安装 apt install -y gdb python3.10-dbg 使用top查看python进程,使用gdb操作python进程 gdb python3 6618 加载环境 source /usr/share/gdb/auto-load/usr/bin/python3.10-gdb.py…...
【DevOps】路由与路由器详细介绍:原理、功能、类型及应用场景
目录 一、路由详细介绍 1、什么是路由? 2、路由的基本原理 3、 路由协议 静态路由 动态路由 4、 路由表 5、 路由算法 6、路由的优缺点 优点 缺点 7、 路由应用场景 二、路由器详细介绍 1、什么是路由器? 2、 路由器的工作原理 3、路由器…...
【WP|9】深入解析WordPress [add_shortcode]函数
add_shortcode 是 WordPress 中一个非常强大的函数,用于创建自定义的短代码(shortcodes)。短代码是一种简洁的方式,允许用户在内容中插入动态的、可重用的功能。通过 add_shortcode,开发者可以定义自己的短代码&#x…...
Qt QStackedWidget类详细分析
一.定义 QStackedWidget类是一个容器控件,它提供了一个堆叠的页面布局方式,每个页面可以包含一个子部件。在QStackedWidget中,只有当前活动的页面是可见的,其他页面会被隐藏起来。 QStackedWidget类的常用方法包括: a…...
业务系统对接大模型的基础方案:架构设计与关键步骤
业务系统对接大模型:架构设计与关键步骤 在当今数字化转型的浪潮中,大语言模型(LLM)已成为企业提升业务效率和创新能力的关键技术之一。将大模型集成到业务系统中,不仅可以优化用户体验,还能为业务决策提供…...
synchronized 学习
学习源: https://www.bilibili.com/video/BV1aJ411V763?spm_id_from333.788.videopod.episodes&vd_source32e1c41a9370911ab06d12fbc36c4ebc 1.应用场景 不超卖,也要考虑性能问题(场景) 2.常见面试问题: sync出…...
设计模式和设计原则回顾
设计模式和设计原则回顾 23种设计模式是设计原则的完美体现,设计原则设计原则是设计模式的理论基石, 设计模式 在经典的设计模式分类中(如《设计模式:可复用面向对象软件的基础》一书中),总共有23种设计模式,分为三大类: 一、创建型模式(5种) 1. 单例模式(Sing…...
SkyWalking 10.2.0 SWCK 配置过程
SkyWalking 10.2.0 & SWCK 配置过程 skywalking oap-server & ui 使用Docker安装在K8S集群以外,K8S集群中的微服务使用initContainer按命名空间将skywalking-java-agent注入到业务容器中。 SWCK有整套的解决方案,全安装在K8S群集中。 具体可参…...
《用户共鸣指数(E)驱动品牌大模型种草:如何抢占大模型搜索结果情感高地》
在注意力分散、内容高度同质化的时代,情感连接已成为品牌破圈的关键通道。我们在服务大量品牌客户的过程中发现,消费者对内容的“有感”程度,正日益成为影响品牌传播效率与转化率的核心变量。在生成式AI驱动的内容生成与推荐环境中࿰…...
华为OD机试-食堂供餐-二分法
import java.util.Arrays; import java.util.Scanner;public class DemoTest3 {public static void main(String[] args) {Scanner in new Scanner(System.in);// 注意 hasNext 和 hasNextLine 的区别while (in.hasNextLine()) { // 注意 while 处理多个 caseint a in.nextIn…...
python爬虫:Newspaper3k 的详细使用(好用的新闻网站文章抓取和解析的Python库)
更多内容请见: 爬虫和逆向教程-专栏介绍和目录 文章目录 一、Newspaper3k 概述1.1 Newspaper3k 介绍1.2 主要功能1.3 典型应用场景1.4 安装二、基本用法2.2 提取单篇文章的内容2.2 处理多篇文档三、高级选项3.1 自定义配置3.2 分析文章情感四、实战案例4.1 构建新闻摘要聚合器…...
VTK如何让部分单位不可见
最近遇到一个需求,需要让一个vtkDataSet中的部分单元不可见,查阅了一些资料大概有以下几种方式 1.通过颜色映射表来进行,是最正规的做法 vtkNew<vtkLookupTable> lut; //值为0不显示,主要是最后一个参数,透明度…...
《基于Apache Flink的流处理》笔记
思维导图 1-3 章 4-7章 8-11 章 参考资料 源码: https://github.com/streaming-with-flink 博客 https://flink.apache.org/bloghttps://www.ververica.com/blog 聚会及会议 https://flink-forward.orghttps://www.meetup.com/topics/apache-flink https://n…...
Android15默认授权浮窗权限
我们经常有那种需求,客户需要定制的apk集成在ROM中,并且默认授予其【显示在其他应用的上层】权限,也就是我们常说的浮窗权限,那么我们就可以通过以下方法在wms、ams等系统服务的systemReady()方法中调用即可实现预置应用默认授权浮…...
