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

使用清华智谱ChatGLM2大模型搭建本地私有知识库

首先放上该方案项目的git地址:https://github.com/chatchat-space/Langchain-Chatchat
以下是我的搭建和踩坑经验记录

一、环境准备

1、python安装

在环境中安装python,我安装的是3.9版本的python,官方要求的是Python 3.8 - 3.10 版本。不知道如何查看版本的,请使用这个命令:python --version

2、项目依赖

挑选一个自己看着顺眼的目录,拉取项目依赖:

git clone https://github.com/chatchat-space/Langchain-Chatchat.git

拉取完毕后,进入该目录:

cd Langchain-Chatchat

在这里插入图片描述

可以看到目录里有三个文件: requirements.txt 、requirements_api.txt、requirements_webui.txt 。

requirements.txt :
代表项目的python全部依赖,如果既需要自带的画面展示,又需要将api接口开放出来,就选择这个全部依赖安装。
requirements_api.txt:代表只启动本项目api服务所需的依赖。
requirements_webui.txt:代表只启动本项目web端服务所需要的依赖。

根据自己需求选择安装依赖,我是全部安装,也就是执行pip install -r requirements.txt命令。另外两个命令如下:

pip install -r requirements_api.txt
pip install -r requirements_webui.txt

如果出现了依赖冲突,就用pip uninstall 依赖名 去卸载原本依赖,然后看提示信息需要的版本,使用pip install 模板名==版本在这里插入代码片 来安装指定版本的依赖。然后重新执行pip install -r requirements.txt一定要确保依赖全部安装成功。

3、git大文件存储功能安装

在下载大模型之前确保git安装了大文件存储,也就是Git LFS,不确定是否安装的话用这个命令看一下:git lfs install,出现如下提示就是已经安装了git lfs:

在这里插入图片描述

如果没安装git lfs,根据你的依赖包管理工具的类型来安装一下git lfs:

  • 包管理是apt/deb的,执行这个命令:curl -s https://packagecloud.io/install/repositories/github/git-lfs/script.deb.sh | sudo bash 然后执行 sudo apt-get install git-lfs 来安装。
  • 包管理是yum/rpm的,执行这个命令:curl -s https://packagecloud.io/install/repositories/github/git-lfs/script.rpm.sh | sudo bash 然后执行sudo yum install git-lfs来安装。

记得安装完之后,git lfs install看一下是否安装成功。

4、大模型下载与配置

选择目录的另一个地方,执行git clone https://huggingface.co/THUDM/chatglm2-6b 拉取大模型,一定要完整拉取成功。

在这里插入图片描述

在次选择目录的另一个地方,执行git clone https://huggingface.co/moka-ai/m3e-base 拉取分词嵌入式模型,这个比上边那个大模型小。

在这里插入图片描述

我拉取完毕的整体结构如下:
在这里插入图片描述
确保没问题后,开始配置:

  • 复制模型相关参数配置模板文件 configs/model_config.py.example 存储至项目路径下 ./configs
    路径下,并重命名为 model_config.py。
  • 复制服务相关参数配置模板文件 configs/server_config.py.example 存储至项目路径下 ./configs
    路径下,并重命名为 server_config.py。

在这里插入图片描述

在model_config.py文件中,修改这两个,对应好你下载的两个大模型目录和名称,一定要是绝对路径。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

当然,如果你想修改提示词模板的话,改这里就行:

在这里插入图片描述

server_config.py文件中没什么要修改的,除非你想改多卡配置或者是api端口等。想修改API端口看下方图片:
在这里插入图片描述

注意:model_config.llm_model_dict中模型配置的api_base_url需要与这里的修改的端口号一致。

5、向量数据库初始化

在LangChain目录下执行命令:python init_database.py --recreate-vs 等待向量数据库初始化完成即可。

接下来就可以启动项目了。

6、项目启动

一键启动脚本 startup.py,一键启动所有 Fastchat 服务、API 服务、WebUI 服务,用下方的命令:

python startup.py -a

并可使用 Ctrl + C 直接关闭所有运行服务。如果一次结束不了,可以多按几次。

可选参数包括 -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 服务; 其他为单独服务启动选项。

启动后可以查看swagger接口文档:
在这里插入图片描述

也可以直接使用自带的项目webui:
在这里插入图片描述
在这里插入图片描述

相关文章:

使用清华智谱ChatGLM2大模型搭建本地私有知识库

首先放上该方案项目的git地址:https://github.com/chatchat-space/Langchain-Chatchat 以下是我的搭建和踩坑经验记录 一、环境准备 1、python安装 在环境中安装python,我安装的是3.9版本的python,官方要求的是Python 3.8 - 3.10 版本。不知…...

MES系统如何赋能制造企业实现4M防错追溯?

生产过程4M管理和MES系统的结合是现代制造业中关键的质量管理实践,它有助于提高生产效率、降低生产成本并保证产品质量。本文将深入探讨4M管理的概念,以及MES系统如何赋能制造企业实现4M防错追溯。 一、4M管理的概念 4M管理是指在制造过程中管理和控制四…...

Mybatis保存时参数携带了逗号和空格导致SQL保存异常

起初发现这个问题是因为导入文件时,用户输入的导入参数不规范,在字段中有逗号和空格一起出现,就会导致mybatis保存时发生sql异常。 异常数据张这样: INSERT INTO enterprise_stratification (id,create_date,create_by,update_da…...

vscode launch.json

有时新的服务器进行调试时,需要设置调试的launch.json的结果 然后就可以打开一个launch.json 其内容如下 {// 使用 IntelliSense 了解相关属性。 // 悬停以查看现有属性的描述。// 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid83…...

绿盟远程安全评估系统 RSAS 使用体验-难用

最近领导让我用公司采购的RSAS对产品进行漏洞扫描,学习并使用了这个软件,体验就是真的很难用。使用遇到问题时,咨询售后服务,机器人需要有公司认证,不能随便问问题,也是无语了。咨询客服,客服回…...

【Linux】 mdir命令使用

mdir 为mtools工具指令,模拟MS-DOS的dir指令,可显示MS-DOS文件系统中的目录内容。 语法 mdir [参数][目录] mdir命令 -Linux手册页 命令选项及作用 执行令 mdir--help 执行命令结果 参数 -a  显示隐藏文件。-f  不显示磁盘所剩余的可用空间。-w…...

解压游戏资源,导出游戏模型

游戏中有很多好看的角色,地图等等资源。 你有没有想过,把他们导出到自己的游戏中进行魔改又或则玩换肤等操作呢? 相信很多同学都喜欢拳皇中的角色, 那么我们今天就拿拳皇15举例子,导出他的资源。 首先要先安装好这个…...

【科研新手指南2】「NLP+网安」相关顶级会议期刊 投稿注意事项+会议等级+DDL+提交格式

「NLP网安」相关顶级会议&期刊投稿注意事项 写在最前面一、会议ACL (The Annual Meeting of the Association for Computational Linguistics)IH&MMSec (The ACM Workshop on Information Hiding, Multimedia and Security)CCS (The ACM Conference on Computer and Co…...

220kV环形网络的动态无功补偿方案初步设计

摘 要 动态无功补偿系统应用广泛,比如电子设备、发电系统、输电线路等方面,都会运用到动态无功补偿系统或工具。更高效率和更高稳定性的动态无功补偿系统一直是研究的热点。在电力系统中,动态无功补偿系统随处可见,因为运行稳…...

关于值传递和引用传递的问题记录

目录 1. 问题概述 1.1 测试 1.2 结果 2. ArrayList和Arrays.ArrayList 1. 问题概述 最近忙着写论文很久没更新了&#xff0c;趁现在有时间简单记录一下最近遇到的一个坑。 对于Java中的List<>类型的对象&#xff0c;按我以前理解是引用传递&#xff0c;但有一点要注…...

律师咨询小程序搭建流程

一、需求分析 在律师咨询小程序的开发过程中&#xff0c;需求分析是至关重要的一步。首先&#xff0c;我们需要明确小程序的定位和目标用户&#xff0c;了解用户的需求和痛点。在此基础上&#xff0c;我们需要细化功能需求&#xff0c;如在线咨询、案件查询、文书生成等。同时…...

怎么在uni-app中使用Vuex 深度解刨

本文深入研究Vuex,一个Vue.js状态管理库。我们将介绍创建它是为了解决的问题、其背后的核心概念、如何设置它,当然,还将在每一步中使用代码示例。 Vuex是一个由Vue团队构建的状态管理库,用于管理Vue.js应用程序中的数据。它提供了一种集中管理跨应用程序使用的数据的方式,…...

兼容iphone(ios)圆角(border-radius)不起作用的问题

一、出现场景&#xff1a;使用mosowe-swiper&#xff1a;适用于uni-app的轮播图插件&#xff0c;圆弧无效 ios手机会在transform的时候导致border-radius失效解决方法&#xff1a;在使用动画效果带transform的元素的上一级div元素的css加上下面语句&#xff1a; transform: rot…...

车间部署MES管理系统后有哪些变化

随着智能制造技术的飞速发展&#xff0c;工厂车间正经历着一场由数字化管理和智能化协调优化驱动的变革。这场变革的核心便是MES管理系统。实施MES管理系统在提升生产效率、降低成本、提高产品质量和优化资源投入方面发挥着重要作用&#xff0c;助力工厂实现整体运作的协作管理…...

19C进入数据库出现问号

问题情况如图所示&#xff1a; 解决方法&#xff1a; su - oracle echo "NLS_LANGAMERICAN_AMERICA.ZHS16GBK;export NLS_LANG" >> ~/.bash_profilesource ~/.bash_profileofile...

Mistral 7B 比Llama 2更好的开源大模型 (一)

Mistral 7B 简介 Mistral 7B Mistral 7B 是一个 7.3B 参数模型: 在所有基准测试中优于 Llama 2 13B在许多基准测试中优于 Llama 1 34B接近 CodeLlama 7B 的代码性能,同时保持擅长英语任务使用分组查询注意力 (GQA) 加快推理速度使用滑动窗口注意力 (SWA) 以更低的成本处…...

【JUC】三、集合的线程安全

文章目录 1、ArrayList集合线程安全问题分析2、解决方式一&#xff1a;Vector或synchronizedList( )3、解决方式二&#xff1a;CopyOnWriteArrayList 写时复制4、HashSet集合线程不安全的分析与解决5、HashMap集合线程不安全的分析与解决 1、ArrayList集合线程安全问题分析 对…...

使用 Redis 实现生成分布式全局唯一ID(使用SpringBoot环境实现)

目录 一、前言二、如何通过Redis设计一个分布式全局唯一ID生成工具2.1、使用 Redis 计数器实现2.2、使用 Redis Hash结构实现 三、通过代码实现分布式全局唯一ID工具3.1、编写获取工具3.2、测试获取工具 四、总结 一、前言 在很多项目中生成类似订单编号、用户编号等有唯一性数…...

Pytorch CUDA CPP简易教程,在Windows上操作

文章目录 前言一、使用的工具二、学习资源分享三、libtorch环境配置1.配置CUDA、nvcc、cudnn2.下载libtorch3.CLion配置libtorch4.CMake Application指定Environment variables5.测试libtorch 四、PyTorch CUDA CPP项目流程1.使用CLion结合torch extension编写可以调用cuda的C代…...

服务器怎么连接

服务器怎么连接 服务器可以通过多种方式连接&#xff0c;主要取决于服务器的操作系统、网络配置和连接方式等因素。 1. SSH连接&#xff1a;如果服务器使用的是Linux操作系统&#xff0c;可以通过SSH协议连接。需要使用SSH客户端工具&#xff0c;例如PuTTY&#xff0c;在登录页…...

LINUX 69 FTP 客服管理系统 man 5 /etc/vsftpd/vsftpd.conf

FTP 客服管理系统 实现kefu123登录&#xff0c;不允许匿名访问&#xff0c;kefu只能访问/data/kefu目录&#xff0c;不能查看其他目录 创建账号密码 useradd kefu echo 123|passwd -stdin kefu [rootcode caozx26420]# echo 123|passwd --stdin kefu 更改用户 kefu 的密码…...

深度学习水论文:mamba+图像增强

&#x1f9c0;当前视觉领域对高效长序列建模需求激增&#xff0c;对Mamba图像增强这方向的研究自然也逐渐火热。原因在于其高效长程建模&#xff0c;以及动态计算优势&#xff0c;在图像质量提升和细节恢复方面有难以替代的作用。 &#x1f9c0;因此短时间内&#xff0c;就有不…...

Java数值运算常见陷阱与规避方法

整数除法中的舍入问题 问题现象 当开发者预期进行浮点除法却误用整数除法时,会出现小数部分被截断的情况。典型错误模式如下: void process(int value) {double half = value / 2; // 整数除法导致截断// 使用half变量 }此时...

Go语言多线程问题

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

逻辑回归暴力训练预测金融欺诈

简述 「使用逻辑回归暴力预测金融欺诈&#xff0c;并不断增加特征维度持续测试」的做法&#xff0c;体现了一种逐步建模与迭代验证的实验思路&#xff0c;在金融欺诈检测中非常有价值&#xff0c;本文作为一篇回顾性记录了早年间公司给某行做反欺诈预测用到的技术和思路。百度…...

如何应对敏捷转型中的团队阻力

应对敏捷转型中的团队阻力需要明确沟通敏捷转型目的、提升团队参与感、提供充分的培训与支持、逐步推进敏捷实践、建立清晰的奖励和反馈机制。其中&#xff0c;明确沟通敏捷转型目的尤为关键&#xff0c;团队成员只有清晰理解转型背后的原因和利益&#xff0c;才能降低对变化的…...

elementUI点击浏览table所选行数据查看文档

项目场景&#xff1a; table按照要求特定的数据变成按钮可以点击 解决方案&#xff1a; <el-table-columnprop"mlname"label"名称"align"center"width"180"><template slot-scope"scope"><el-buttonv-if&qu…...

小木的算法日记-多叉树的递归/层序遍历

&#x1f332; 从二叉树到森林&#xff1a;一文彻底搞懂多叉树遍历的艺术 &#x1f680; 引言 你好&#xff0c;未来的算法大神&#xff01; 在数据结构的世界里&#xff0c;“树”无疑是最核心、最迷人的概念之一。我们中的大多数人都是从 二叉树 开始入门的&#xff0c;它…...

在Spring Boot中集成RabbitMQ的完整指南

前言 在现代微服务架构中&#xff0c;消息队列&#xff08;Message Queue&#xff09;是实现异步通信、解耦系统组件的重要工具。RabbitMQ 是一个流行的消息中间件&#xff0c;支持多种消息协议&#xff0c;具有高可靠性和可扩展性。 本博客将详细介绍如何在 Spring Boot 项目…...

CppCon 2015 学习:Simple, Extensible Pattern Matching in C++14

什么是 Pattern Matching&#xff08;模式匹配&#xff09; ❝ 模式匹配就是一种“描述式”的写法&#xff0c;不需要你手动判断、提取数据&#xff0c;而是直接描述你希望的数据结构是什么样子&#xff0c;系统自动判断并提取。❞ 你给的定义拆解&#xff1a; ✴ Instead of …...