使用清华智谱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. 问题概述 最近忙着写论文很久没更新了,趁现在有时间简单记录一下最近遇到的一个坑。 对于Java中的List<>类型的对象,按我以前理解是引用传递,但有一点要注…...
律师咨询小程序搭建流程
一、需求分析 在律师咨询小程序的开发过程中,需求分析是至关重要的一步。首先,我们需要明确小程序的定位和目标用户,了解用户的需求和痛点。在此基础上,我们需要细化功能需求,如在线咨询、案件查询、文书生成等。同时…...
怎么在uni-app中使用Vuex 深度解刨
本文深入研究Vuex,一个Vue.js状态管理库。我们将介绍创建它是为了解决的问题、其背后的核心概念、如何设置它,当然,还将在每一步中使用代码示例。 Vuex是一个由Vue团队构建的状态管理库,用于管理Vue.js应用程序中的数据。它提供了一种集中管理跨应用程序使用的数据的方式,…...
兼容iphone(ios)圆角(border-radius)不起作用的问题
一、出现场景:使用mosowe-swiper:适用于uni-app的轮播图插件,圆弧无效 ios手机会在transform的时候导致border-radius失效解决方法:在使用动画效果带transform的元素的上一级div元素的css加上下面语句: transform: rot…...
车间部署MES管理系统后有哪些变化
随着智能制造技术的飞速发展,工厂车间正经历着一场由数字化管理和智能化协调优化驱动的变革。这场变革的核心便是MES管理系统。实施MES管理系统在提升生产效率、降低成本、提高产品质量和优化资源投入方面发挥着重要作用,助力工厂实现整体运作的协作管理…...
19C进入数据库出现问号
问题情况如图所示: 解决方法: 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、解决方式一:Vector或synchronizedList( )3、解决方式二: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代…...
服务器怎么连接
服务器怎么连接 服务器可以通过多种方式连接,主要取决于服务器的操作系统、网络配置和连接方式等因素。 1. SSH连接:如果服务器使用的是Linux操作系统,可以通过SSH协议连接。需要使用SSH客户端工具,例如PuTTY,在登录页…...
业务系统对接大模型的基础方案:架构设计与关键步骤
业务系统对接大模型:架构设计与关键步骤 在当今数字化转型的浪潮中,大语言模型(LLM)已成为企业提升业务效率和创新能力的关键技术之一。将大模型集成到业务系统中,不仅可以优化用户体验,还能为业务决策提供…...
TDengine 快速体验(Docker 镜像方式)
简介 TDengine 可以通过安装包、Docker 镜像 及云服务快速体验 TDengine 的功能,本节首先介绍如何通过 Docker 快速体验 TDengine,然后介绍如何在 Docker 环境下体验 TDengine 的写入和查询功能。如果你不熟悉 Docker,请使用 安装包的方式快…...
浅谈不同二分算法的查找情况
二分算法原理比较简单,但是实际的算法模板却有很多,这一切都源于二分查找问题中的复杂情况和二分算法的边界处理,以下是博主对一些二分算法查找的情况分析。 需要说明的是,以下二分算法都是基于有序序列为升序有序的情况…...
机器学习的数学基础:线性模型
线性模型 线性模型的基本形式为: f ( x ) ω T x b f\left(\boldsymbol{x}\right)\boldsymbol{\omega}^\text{T}\boldsymbol{x}b f(x)ωTxb 回归问题 利用最小二乘法,得到 ω \boldsymbol{\omega} ω和 b b b的参数估计$ \boldsymbol{\hat{\omega}}…...
[拓扑优化] 1.概述
常见的拓扑优化方法有:均匀化法、变密度法、渐进结构优化法、水平集法、移动可变形组件法等。 常见的数值计算方法有:有限元法、有限差分法、边界元法、离散元法、无网格法、扩展有限元法、等几何分析等。 将上述数值计算方法与拓扑优化方法结合&#…...
Java并发编程实战 Day 11:并发设计模式
【Java并发编程实战 Day 11】并发设计模式 开篇 这是"Java并发编程实战"系列的第11天,今天我们聚焦于并发设计模式。并发设计模式是解决多线程环境下常见问题的经典解决方案,它们不仅提供了优雅的设计思路,还能显著提升系统的性能…...
Docker、Wsl 打包迁移环境
电脑需要开启wsl2 可以使用wsl -v 查看当前的版本 wsl -v WSL 版本: 2.2.4.0 内核版本: 5.15.153.1-2 WSLg 版本: 1.0.61 MSRDC 版本: 1.2.5326 Direct3D 版本: 1.611.1-81528511 DXCore 版本: 10.0.2609…...
C# WPF 左右布局实现学习笔记(1)
开发流程视频: https://www.youtube.com/watch?vCkHyDYeImjY&ab_channelC%23DesignPro Git源码: GitHub - CSharpDesignPro/Page-Navigation-using-MVVM: WPF - Page Navigation using MVVM 1. 新建工程 新建WPF应用(.NET Framework) 2.…...
npm安装electron下载太慢,导致报错
npm安装electron下载太慢,导致报错 背景 想学习electron框架做个桌面应用,卡在了安装依赖(无语了)。。。一开始以为node版本或者npm版本太低问题,调整版本后还是报错。偶尔执行install命令后,可以开始下载…...
Linux入门课的思维导图
耗时两周,终于把慕课网上的Linux的基础入门课实操、总结完了! 第一次以Blog的形式做学习记录,过程很有意思,但也很耗时。 课程时长5h,涉及到很多专有名词,要去逐个查找,以前接触过的概念因为时…...
