LangChain-Chatchat本地部署(非docker)-亲测有效全网最新

文章目录

      • 1.相关参数
      • 2.下载安装xinference推理框架
      • 3.启动xinference下载GLM模型和模型编码器
      • 4.模型和编码器下载完成后进行检查
      • 5.创建新的虚拟环境chatchat
      • 6.将LangChain-chatchat项目拉到本地
      • 7.下载langchain-chatchat的包`清华源镜像`
      • 8.创建一个chatchat配置文件存储路径
      • 9.查看与修改Langchain-Chatchat配置
      • 10.启动项目
      • 11.封装启动脚本,方便后续使用
      • 12.正确启动

官网:https://github.com/chatchat-space/Langchain-Chatchat

部署版本:0.3.1

1.相关参数

  • Linux操作系统(Ubuntu22.04)
  • anaconda虚拟环境
  • 4090显卡1张即可
  • xinference模型接入框架,模型推理框架,编码器加载框架等
  • langchain-chatchat知识库构建框架
  • glm4-chat大模型
  • bge-large-zh-v1.5编码器

2.下载安装xinference推理框架

  • 创建一个xinference环境,并激活
conda create --name xinference python==3.11
conda activate /home/zhoushuren/anaconda3/envs/xinference

注:请小心此处的conda环境路径,请仔细检查

  • 使用清华源镜像下载xinference[transformers]
pip install "xinference[transformers]"  -i https://pypi.tuna.tsinghua.edu.cn/simple

3.启动xinference下载GLM模型和模型编码器

  • 启动xinference,设置xinference_home,modelscope的model_source
XINFERENCE_HOME=opt/module/xinference XINFERENCE_MODEL_SRC=modelscope xinference-local --host 0.0.0.0 --port 9997 

在这里插入图片描述

  • 接着安装模型与编码器需要长时间等待

请新开一个窗口执行此命令(上一步xinference是边监听边运行)

xinference launch --model-engine vllm --model-name glm4-chat --size-in-billions 9 --model-format pytorch --quantization none
xinference launch --model-name bge-large-zh-v1.5 --model-type embedding

在这里插入图片描述

4.模型和编码器下载完成后进行检查

xinference list

模型和编码器的UID是否同时存在

在这里插入图片描述

5.创建新的虚拟环境chatchat

Xinference完成大模型接入,编码器加载等

Langchatchat构建本地知识库

接下来的步骤完成Langchatchat的部署

conda create --name chatchat python==3.11
conda activate chatchat

6.将LangChain-chatchat项目拉到本地

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

在这里插入图片描述

7.下载langchain-chatchat的包清华源镜像

pip install langchain-chatchat -U  -i https://pypi.tuna.tsinghua.edu.cn/simple

继续执行,下载xinference兼容的依赖库

pip install langchain-chatchat[xinference] -U  -i https://pypi.tuna.tsinghua.edu.cn/simple

8.创建一个chatchat配置文件存储路径

  • 创建目录,请手动更改你自己的目录位置
sudo mkdir opt/module/Langchain-Chatchat/langchainchatchat_data
  • 设置 Chatchat 存储配置文件和数据文件的根目录
# on linux or macos	本教程仅针对linux
export CHATCHAT_ROOT=opt/module/Langchain-Chatchat/langchainchatchat_data

9.查看与修改Langchain-Chatchat配置

  • 切换chatchat虚拟环境,在启动项目之前确保首先进行模型推理框架的运行,并加载所需使用的模型,查看与修改 Langchain-Chatchat 配置
chatchat-config --help
  • 该命令会返回如下
Usage: chatchat-config [OPTIONS] COMMAND [ARGS]...指令` chatchat-config` 工作空间配置Options:--help  Show this message and exit.Commands:basic   基础配置kb      知识库配置model   模型配置server  服务配置
  • 可根据上述配置命令选择需要查看或修改的配置类型,以基础配置为例,想要进行基础配置查看或修改时可以输入以下命令获取帮助信息:
chatchat-config basic --help
  • 会得到如下
Usage: chatchat-config basic [OPTIONS]基础配置Options:--verbose [true|false]  是否开启详细日志--data TEXT             初始化数据存放路径,注意:目录会清空重建--format TEXT           日志格式--clear                 清除配置--show                  显示配置--help                  Show this message and exit.
  • 使用 chatchat-config 查看对应配置参数以基础配置为例,可根据上述命令帮助内容确认,需要查看基础配置的配置参数,可直接输入:
chatchat-config basic --show
  • 未修改的内容如下所示
{"log_verbose": false,"CHATCHAT_ROOT": "/root/anaconda3/envs/chatchat/lib/python3.11/site-packages/chatchat","DATA_PATH": "/root/anaconda3/envs/chatchat/lib/python3.11/site-packages/chatchat/data","IMG_DIR": "/root/anaconda3/envs/chatchat/lib/python3.11/site-packages/chatchat/img","NLTK_DATA_PATH": "/root/anaconda3/envs/chatchat/lib/python3.11/site-packages/chatchat/data/nltk_data","LOG_FORMAT": "%(asctime)s - %(filename)s[line:%(lineno)d] - %(levelname)s: %(message)s","LOG_PATH": "/root/anaconda3/envs/chatchat/lib/python3.11/site-packages/chatchat/data/logs","MEDIA_PATH": "/root/anaconda3/envs/chatchat/lib/python3.11/site-packages/chatchat/data/media","BASE_TEMP_DIR": "/root/anaconda3/envs/chatchat/lib/python3.11/site-packages/chatchat/data/temp","class_name": "ConfigBasic"
}
  • 使用 chatchat-config 修改对应配置参数,以修改模型配置中默认llm模型为例,可以执行以下命令行查看配置项名称:
chatchat-config model --help
  • 这时会得到
Usage: chatchat-config model [OPTIONS]模型配置Options:--default_llm_model TEXT        默认llm模型--default_embedding_model TEXT  默认embedding模型--agent_model TEXT              agent模型--history_len INTEGER           历史长度--max_tokens INTEGER            最大tokens--temperature FLOAT             温度--support_agent_models TEXT     支持的agent模型--set_model_platforms TEXT      模型平台配置 as a JSON string.--set_tool_config TEXT          工具配置项  as a JSON string.--clear                         清除配置--show                          显示配置--help                          Show this message and exit.
  • 可首先查看当前模型配置的配置项:
chatchat-config model --show
  • 这时会得到
{"DEFAULT_LLM_MODEL": "glm4-chat","DEFAULT_EMBEDDING_MODEL": "bge-large-zh-v1.5","Agent_MODEL": null,"HISTORY_LEN": 3,"MAX_TOKENS": null,"TEMPERATURE": 0.7,..."class_name": "ConfigModel"
}
  • 需要修改默认llm模型为qwen2-instruct时,可执行:
chatchat-config model --default_llm_model qwen2-instruct
  • 初始化知识库
chatchat-kb -r
  • 初始化知识库最常见的报错信息是
Traceback (most recent call last):File "/Users/hkk/Amap/ai/Langchain-Chatchat/myenv/lib/python3.8/site-packages/chatchat/init_database.py", line 156, in mainfolder2db(kb_names=args.kb_name, mode="recreate_vs", embed_model=args.embed_model)File "/Users/hkk/Amap/ai/Langchain-Chatchat/myenv/lib/python3.8/site-packages/chatchat/server/knowledge_base/migrate.py", line 130, in folder2dbkb.create_kb()File "/Users/hkk/Amap/ai/Langchain-Chatchat/myenv/lib/python3.8/site-packages/chatchat/server/knowledge_base/kb_service/base.py", line 80, in create_kbself.do_create_kb()File "/Users/hkk/Amap/ai/Langchain-Chatchat/myenv/lib/python3.8/site-packages/chatchat/server/knowledge_base/kb_service/faiss_kb_service.py", line 51, in do_create_kbself.load_vector_store()File "/Users/hkk/Amap/ai/Langchain-Chatchat/myenv/lib/python3.8/site-packages/chatchat/server/knowledge_base/kb_service/faiss_kb_service.py", line 28, in load_vector_storereturn kb_faiss_pool.load_vector_store(kb_name=self.kb_name,File "/Users/hkk/Amap/ai/Langchain-Chatchat/myenv/lib/python3.8/site-packages/chatchat/server/knowledge_base/kb_cache/faiss_cache.py", line 132, in load_vector_storeraise RuntimeError(f"向量库 {kb_name} 加载失败。")
RuntimeError: 向量库 samples 加载失败。
  • 遇到类似加载向量库失败的报错,缺少一个faiss这个包,这个时候需要再安装一个faiss的包
pip install faiss-cpu==1.7.4
pip install rank_bm25 -i https://mirrors.aliyun.com/pypi/simple
  • 出现以下日志即为成功:

----------------------------------------------------------------------------------------------------
知识库名称      :samples
知识库类型      :faiss
向量模型:      :bge-large-zh-v1.5
知识库路径      :/root/anaconda3/envs/chatchat/lib/python3.11/site-packages/chatchat/data/knowledge_base/samples
文件总数量      :47
入库文件数      :42
知识条目数      :740
用时            :0:02:29.701002
----------------------------------------------------------------------------------------------------总计用时        :0:02:33.414425

10.启动项目

chatchat start -a
  • 至此恭喜您,模型启动成功

在这里插入图片描述

  • 打开浏览器127.0.0.1:8501即可查看

在这里插入图片描述

11.封装启动脚本,方便后续使用

恭喜你完成了Langchain-chatchat知识库从0到1的 部署

前11步从0-1的过程中需要

  • 启动xinference

  • xinference加载模型,加载编码器

  • 启动langchain-chatchat知识库

每一步都需要执行一条指令,非常长,我们将其封装成脚本,方便我们后续启动服务

在opt/module下撰写脚本

  • 撰写xinference启动脚本
vim xinference_start.sh
  • 内容如下
#!/bin/bash
XINFERENCE_HOME=xinference XINFERENCE_MODEL_SRC=modelscope xinference-local --host 0.0.0.0 --port 9997
  • 撰写xinference_model.sh
vim xinference_model.sh
#!/bin/bash
xinference launch --model-engine transformers --model-name glm4-chat --size-in-billions 9 --model-format pytorch --quantization none
  • 撰写xinference_model_emb.sh
#!/bin/bash
xinference launch --model-name bge-large-zh-v1.5 --model-type embedding
  • 修改三个脚本权限
sudo chmod 777   xinference_start.sh
sudo chmod 777   xinference_model.sh
sudo chmod 777   xinference_model_emb.sh

12.正确启动

至此恭喜你完成了脚本封装,接下来每逢想用的时候启动它即可

  • 到达脚本文件目录opt/module为例
cd opt/module
  • 切换conda环境
conda activate ~/.anaconda3/envs/xinference
  • 执行脚本
./xinference_start.sh
  • 继续开一个端口

继续开一个窗口实现,左边监听xinference,右边监听chatcaht如下效果所示。

在这里插入图片描述

#切到chatchat环境
conda activate ~/.anaconda3/envs/chatchat
  • 分别执行模型加载
./xinference_model.sh
./xinference_model_emb.sh
  • 最终启动
chatchat start -a

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

【第33章】Spring Cloud之SkyWalking服务链路追踪

文章目录 前言一、介绍1. 架构图2. SkyWalking APM 二、服务端和控制台1. 下载2. 解压3. 初始化数据库4. 增加驱动5. 修改后端配置6. 启动7. 访问控制台8. 数据库表 三、客户端1. 下载2. 设置java代理3. idea配置3.1 环境变量3.2 JVM参数3.3 启动日志 4. 启用网关插件 四、链路…

传送带异物破损裂缝检测数据集 2300张 带标注voc yolo

传送带异物破损裂缝检测数据集 2300张 带标注voc yolo 2 传送带异物破损裂缝检测数据集 数据集描述 该数据集旨在用于传送带上的异物、破损、裂缝等缺陷的检测任务。数据集包含大量的图像及其对应的标注信息,可用于训练计算机视觉模型,以识别和定位传…

求Huffman树及其matlab程序详解

#################本文为学习《图论算法及其MATLAB实现》的学习笔记################# 算法用途 求Haffman树 算法思想 根据定理4.17,给出求Huffman树的算法步骤如下: ①对给出的所要求的叶子顶点的权进行从小到大排序,写出的权重向量 ; ②根据定理4.17,写出兄弟的权重分别为…

通过iFIX在ARMxy边缘计算网关上实现维护管理

在当今快速发展的工业环境中,维护管理的有效性直接影响到生产效率和设备可靠性。随着物联网和边缘计算的兴起,传统的维护方式正在被更智能和高效的解决方案所替代。ARMxy系列的BL340控制器,凭借其灵活的IO配置和强大的处理能力,成…

OpenCV特征检测(1)检测图像中的线段的类LineSegmentDe()的使用

操作系统:ubuntu22.04 OpenCV版本:OpenCV4.9 IDE:Visual Studio Code 编程语言:C11 算法描述 检测图像中线段的类.。 遵循在 285中描述的算法。 函数原型1 绘制两组线,一组用蓝色,一组用红色,并计算非重…

Java语言程序设计基础篇_编程练习题**18.30 (找出单词)

题目:**18.30 (找出单词) 编写一个程序,递归地找出某个目录下的所有文件中某个单词出现的次数。从命令行如下传递参数: java Exercise18_30 dirName word 习题思路 (读取路径方法)和18.28题差不多,把找…

【趣学Python算法100例】百钱百鸡

问题描述 中国古代数学家张丘建在他的《算经》中提出了一个著名的“百钱百鸡问题”:一只公鸡值五钱,一只母鸡值三钱,三只小鸡值一钱,现在要用百钱买百鸡,请问公鸡、母鸡、小鸡各多少只? 问题分析 用百钱如…

.Net网络通信组件 - TouchSocket

文章目录 .Net网络通信组件 - TouchSocket1、新建.Net8控制台项目2、Nuget安装TouchSocket组件3、编写服务端代码4、编写客户端代码5、编写Program代码6、运行效果7、日志组件(NLog)参考我的另一篇博客 .Net网络通信组件 - TouchSocket 1、新建.Net8控制…

图像处理软件,常用于照片编辑和修饰

一、简介 1、一款功能强大的图像处理软件,常用于照片编辑和修饰。它提供多种工具和特效,允许用户调整照片的亮度、对比度、色彩、锐化等 二、下载 1、文末有下载链接,不明白可以私聊我哈(麻烦咚咚咚,动动小手给个关注收藏小三连&a…

Apache的ab压力测试工具与性能监控

【图书介绍】《软件性能测试、分析与调优实践之路(第2版)》_软件性能测试分析与调优实践之路-CSDN博客《软件性能测试、分析与调优实践之路(第2版)》(张永清)【摘要 书评 试读】- 京东图书 (jd.com) Apache的ab压力测试工具 A…

分布式Redis(14)哈希槽

文章目录 一致性哈希算法理论普通哈希的问题一致性hash算法 Redis 使用哈希槽Redis Cluster集群 为什么Redis是使用哈希槽而不是一致性哈希呢?为什么Redis Cluster哈希槽数量是16384? 关键词:一致性 Hash,哈希槽, 带着…

react的组件的概念和使用

文章目录 1. **组件的定义****函数组件****类组件** 2. **组件的生命周期**3. **状态管理****类组件中的状态管理****函数组件中的状态管理** 4. **组件之间的通信****通过 Props 传递数据****上下文(Context)** 5. **组件的样式**6. **处理表单**7. **错…

51单片机-AD(模拟信号转数字信号)-实验()

介绍AD AD转换(Analog to Digital Conversion,模数转换)是将连续的模拟信号转换为离散的数字信号的过程。这个过程在各种电子设备中都非常重要,特别是在涉及传感器、音频信号、视频信号等需要进行数字化处理的领域。 个人理解&a…

正也科技-辖区与指标管理系统 强化决策支持

正也科技的“辖区与指标管理系统”设计理念先进,旨在通过科学合理的组织架构和精细化的指标管理,帮助企业实现更高效的市场布局、人员配置及业绩监控。以下是对该系统核心功能的进一步阐述及其对企业运营带来的优势: 正也科技辖区管理 1. 组…

最新PyCharm安装详细教程及pycharm配置

目录 一、PyCharm简介及其下载网站 二、单击网站的Downloads,进入二级页面,选择对应的操作系统下载PyCharm 三、PyCharm的安装程序的安装及其配置(configuration) 1、运行PyCharm Setup 2、安装位置设置 3、安装选项设置 4、开始菜单中PyCharm快捷方式的…

【Git使用】删除Github仓库中的指定文件/文件夹

前言: 上篇文章带大家上传了第一个项目至github,那要是想删除仓库中的指定文件夹怎么办?在Github中 仓库是无法通过鼠标操作直接删除文件和文件夹的,那只能通过 git 命令来执行删除操作。接下来就带大家进行操作。 详细步骤: 一…

AI大语言模型的全面解读

大语言模型(Large Language Models, LLMs)无疑是近年来最耀眼的星辰之一。他们以惊人的语言生成能力、上下文理解能力以及对复杂任务的泛化能力,正在深刻改变着自然语言处理(NLP)乃至整个AI领域的格局。 本文将从专业角…

C++速通LeetCode中等第10题-轮转数组(四种方法)

方法一&#xff1a;巧用deque双向队列容器 class Solution { public:void rotate(vector<int>& nums, int k) {deque<int> q;int tmp;if(nums.size() > 1){for(auto num:nums) q.push_back(num);for(int i 0;i < k;i){tmp q.back();q.pop_back();q.pu…

基于YOLOv8+LSTM的商超扶梯场景下行人安全行为姿态检测识别

基于YOLOv8LSTM的商超扶梯场景下行人安全行为姿态检测识别 手扶电梯 行为识别 可检测有人正常行走&#xff0c;有人 跌倒&#xff0c;有人逆行三种行为 跌倒检测 电梯跌倒 扶梯跌倒 人体行为检测 YOLOv8LSTM。 基于YOLOv8LSTM的商超扶梯场景下行人安全行为姿态检测识别&#xf…

Qt 状态机编程,双层状态机,实现暂停恢复

流程设计状态图 #ifndef WORKMACHINE_H #define WORKMACHINE_H#include <QObject> #include <QStateMachine> #include <QHistoryState> #include <QFinalState>#include "WorkThread.h"class WorkMachine : public QObject {Q_OBJECT publ…