备忘: 踩坑linux环境部署轻量化的Langchain-Chatchat集成通义千问

news2024/11/19 3:25:56

看了许多材料,为了利用大模型构建以对话方式驱动的本地应用程序需要使用LangChain-chatchat,其基本介绍参考Langchain-Chatchat项目

通过查询资料,查到win上安装流程使用免费的通义千问 api 最轻量化部署Langchain-Chatchat,原以为在信创Linux系统上非常简单,但实践下来一堆坑,记录备忘吧…

需要解决几个问题
1 什么是轻量化部署
我理解是就是仅利用远程大模型,而不是调用本地大模型,根据这个思路,并检查requirement_x系列文件的实际依赖,如果需要轻量化部署需要安装
pip install -r requirements_lite.txt (全量安装则需要安装 pip install -r requirements.txt)
pip install -r requirements_api.txt
pip install -r requirements_webui.txt

1* 因为安装的过程中涉及多个较大安装包,可能会把空间不够,例如报错“No space left on device”,这是临时文件夹太小了,可以尝试自定义临时文件夹
pip install -b $HOME/AI/tmp -r requirements_lite.txt

2 关于linux适配,把requirement_x系列文件中,把python-magic-bin; sys_platform == 'win32’这行去掉,因为这仅仅是适配Win系统的选项


unstructured[all-docs] # ==0.11.8
# python-magic-bin; sys_platform == 'win32'   这行去掉
SQLAlchemy==2.0.25

3 执行python 中文报错的问题
如果按python startup.py -a --lite 执行,回报一个中文乱码的错 “… /xe3 …” 代码中中文不是用ascII编码,单个python文件很简单,每个文件头部加上 #coding=utf8就行,但是这里涉及到一连串文件,因此改为 python3 startup.py -a --lite python3会自动按uft8解释执行

4 关于sqlite3的依赖问题,
在启动时,因涉及SQLAlchemy==2.0.25,要用到sqlite3数据库,虽然大部分linux操作系统都安装了sqlite3,但python3不一定能调用,主要是缺少相关的so文件,需要安装sqlite3开发库ibsqlite3-dev。用root用户安装
sudo apt-get install libsqlite3-dev
安装成功后
找到 $HOME/python/python3.10.6/setup.py文件
然后核对该文件,以下sqlite include path是否包含了sqlite3ext.h sqlite3.h 头文件,我在下面加黑的目录里找到
sqlite_inc_paths = [ ‘/usr/include’,
‘/usr/include/sqlite’,
‘/usr/include/sqlite3’,
‘/usr/local/include’,
‘/usr/local/include/sqlite’,
‘/usr/local/include/sqlite3’,
]

然后按下列步骤重新编译
cd $HOME/python/python3.10.6/
make clean
./configure
make && make install

如果发现权限不够

sudo make clean
./configure
sudo make && sudo make install

编译成功后,在当前目录下用 find . -name _sqlite3.cpython-310-x86_64-linux-gnu.so 可以找到这个so
然后把这个so复制到python lib目录/usr/local/lib/python3.10/lib-dynload/的目录下

5 最新的langchain-chatchat已经继承了qwen 文言一心等模型配置
配置相应的 api-key即可

启动python3 startup.py -a --lite

启动日志
在这里插入图片描述
自动出现界面,0.0.0.0:8501 然后可以测试对话

在这里插入图片描述

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

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

相关文章

MM01/MM02/MM03物料主数据增强

1.屏幕增强 -在主表中附加结构(判断数据的主表,如MARA,MARC) 增强字段数据元素勾选更改文档以后,会记录字段变更历史 -SPRO-->物流-常规-->物料主数据-->配置物料主记录-->创建定制子屏幕的程序 会生成对应的函数组--里面会包含两个屏幕(0001,0002) 这里的0001屏…

2024年华为HCIA-DATACOM新增题库(H12-811)

801、[单选题]178/832、在系统视图下键入什么命令可以切换到用户视图? A quit B souter C system-view D user-view 试题答案:A 试题解析:在系统视图下键入quit命令退出到用户视图。因此答案选A。 802、[单选题]“网络管理员在三层交换机上创建了V…

【联邦学习综述:概念、技术】

出自——联邦学习综述:概念、技术、应用与挑战。梁天恺 1*,曾 碧 2,陈 光 1 从两个方面保护隐私数据 硬件层面 可 信 执 行 环 境 (Trusted Execution Environment,TEE)边 缘 计 算(Edge Com…

如何成为一名优秀的项目管理者?

如何成为一名优秀的项目管理者? 在一个项目团队里,经常会有很多不同的声音: 有人说:“好的项目管理者就要做打杂的,什么都不用干,什么杂事他都能干”;有人说:“项目管理者经常受到…

vue ui Starting GUI 图形化配置web新项目

前言:在vue框架里面, 以往大家都是习惯用命令行 vue create 、vue init webpack创建新前端项目,而vue ui是一个可视化的图形界面,对于新手来说更加友好了,不但可以创建、管理、还可以更新vue项目,也可以下载…

mabatis 中

手动实现MaBatis底层机制 实现任务阶段一🍍完成读取配置文件, 得到数据库连接🥦分析 代码实现🥦完成测试 实现任务阶段二🍍编写执行器, 输入SQL语句, 完成操作🥦分析 代码实现🥦完成测试 实现任务阶段三&…

基于PHP的餐厅管理系统APP设计与实现

目 录 摘 要 I Abstract II 引 言 1 1 相关技术 3 1.1 MVC 3 1.2 ThinkPHP 3 1.3 MySQL数据库 3 1.4 uni-app 4 1.5 本章小结 4 2 系统分析 5 2.1 功能需求 5 2.2 用例分析 7 2.3 非功能需求 8 2.4 本章小结 8 3 系统设计 9 3.1 系统总体设计 9 3.2 系统详细设计 10 3.3 本章小…

数字图像处理—python

pycahem终端也可以下载库,我只会用终端下载,用的镜像网站 pip install torch -i https://pypi.tuna.tsinghua.edu.cn/simple pip install scikit-image -i https://pypi.tuna.tsinghua.edu.cn/simple. pip install matplotlib -i https://pypi.tuna.tsinghua.edu.c…

超标量与多发射和超长指令字设计

前言 大家好我是jiantaoyab,这是我所总结作为学习的笔记第11篇,在这里分享给大家,这篇文章讲超标量与多发射和超长指令字设计,前面文章提到的书籍的pdf大家没有的话可以私信找我要! 《计算机组成与设计:硬件 / 软件接口》中4.10…

什么是PLC设备数据采集?

在当今工业4.0和智能制造的大背景下,数据的价值日益凸显。特别是对于PLC(可编程逻辑控制器)这类核心工业设备,数据采集显得尤为重要。那么,究竟什么是PLC设备数据采集?它又有何价值呢?今天&…

Python打印Linux系统中最常用的linux命令之示例

一、Linux中的~/.bash_history文件说明: 该文件保存了linux系统中运行过的命令的历史。使用该文件来获取命令的列表,并统计命令的执行次数。统计时,只统计命令的名称,以不同参数调用相同的命令也视为同一命令。 二、示例代码&am…

一篇搞定mysql数据库基础

目录 一、MySQL具体的特点 1.关系型数据库(RDBMS): 2.MySQL是一个“客户端-服务器”结构的程序 Q1:服务器能不能知道客户端什么时候发请求?? Q2:服务器是只给一个客户端提供服务吗?? 二、M…

靶场:sql-less-18——sqlmap爆库的操作

本文操作环境:KaLi-Linux 靶场链接:Less-18 Header Injection- Error Based- string 1、打开靶场,挂好代理,使用bp抓包 2、复制抓包的数据内容,在kali-Linux中新建文档复制保存 3、打开命令窗口:确定注入点…

【更新】数字金融与企业ESG表现:效应、机制与“漂绿”检验数据集(2011-2022年)

参照温亚东(2024)的做法,本团队对来自统计与决策《数字金融与企业ESG表现:效应、机制与"漂绿"检验》一文中的基准回归部分进行复刻 一、数据介绍 数据名称:数字金融与企业ESG表现 参考期刊:《统…

Linux--编译链接的过程

一.gcc,g,gdb安装 命令行写gcc,g,gdb根据提示安装: sudo apt install gcc/g/gdb 二.gcc分布编译链接 编译链接的过程:(面试过程一个大的问题) (1)预编译: gcc -E main.c -o main.i 用gcc预编译main.c输出main.i(2)编译: gcc -S main.i -o main.s(3)汇编…

Java学习笔记(10)

学生管理系统项目 package exercise;import java.util.ArrayList; import java.util.Scanner;public class StudentProgramme {public static void main(String[] args) {ArrayList<Student> studentArrayList new ArrayList<>();Student newStudent new Student…

Linux——文件标识符

目录 一、文件基础 二、常见的C语言文件接口 三、系统文件接口 四、理解语言与系统文件操作的关系 五、如何理解一切皆文件 六、文件标识符再理解 一、文件基础 一个空文件&#xff0c;也会占用磁盘空间&#xff0c;这是因为文件不仅仅有存放在里面的内容&#xff0c;还…

医学图像分析算法的原理

医学图像分析算法的实现原理涉及数据准备、特征提取、模型选择与训练、模型评估与优化以及部署与应用等多个步骤和技术。通过这些步骤&#xff0c;可以利用机器学习和深度学习技术来帮助医生更准确、更高效地进行医学图像诊断和分析。北京木奇移动技术有限公司&#xff0c;专业…

LeetCode 1315.祖父节点值为偶数的节点和

给你一棵二叉树&#xff0c;请你返回满足以下条件的所有节点的值之和&#xff1a; 该节点的祖父节点的值为偶数。&#xff08;一个节点的祖父节点是指该节点的父节点的父节点。&#xff09; 如果不存在祖父节点值为偶数的节点&#xff0c;那么返回 0 。 示例&#xff1a; 输入…

面试官:MySQL的七种日志

哪七种日志日志&#xff1f; 错误日志&#xff08;error log&#xff09; error log主要记录MySQL在启动、关闭或者运行过程中的错误信息&#xff0c;在MySQL的配置文件my.cnf中&#xff0c; 可以通过log-error/var/log/mysqld.log 执行mysql错误日志的位置。 慢查询日志&a…