【LLM】-05-提示工程-部署Langchain-Chat
目录
1、软硬件要求
1.1、软件要求
1.2、硬件要求
1.3、个人配置参考
2、创建cuda环境
3、下载源码及模型
4、配置文件修改
5、初始化知识库
5.1、训练自己的知识库
6、启动
7、API接口调用
7.1、使用openai
参考官方wiki,本文以Ubuntu20.04_x64,RTX4090,chatglm3-6b 模型为基础
1、软硬件要求
1.1、软件要求
- Linux Ubuntu 22.04.5 kernel version 6.7
开发者在以下环境下进行代码调试,在该环境下能够避免最多环境问题。
- Python 版本 == 3.11.7
- CUDA 版本: == 12.1
1.2、硬件要求
在GPU运行本地模型的 FP16 版本
- ChatGLM3-6B & LLaMA-7B-Chat 等 7B模型
- 最低显存要求: 14GB
- 推荐显卡: RTX 4080
- Qwen-14B-Chat 等 14B模型
- 最低显存要求: 30GB
- 推荐显卡: V100
- Yi-34B-Chat 等 34B模型
- 最低显存要求: 69GB
- 推荐显卡: A100
- Qwen-72B-Chat 等 72B模型
- 最低显存要求: 145GB
- 推荐显卡:多卡 A100 以上
一种简单的估算方式为:
FP16: 显存占用(GB) = 模型量级 x 2
Int4: 显存占用(GB) = 模型量级 x 0.75
1.3、个人配置参考
处理器: Intel® Core™ i9 processor 14900K
内存: 256 GB DDR5
显卡组: NVIDIA RTX4090 X 1 / NVIDIA RTXA6000 X 1
硬盘: 1 TB
操作系统: Ubuntu 22.04 LTS / Arch Linux, Linux Kernel 6.6.7
显卡驱动版本: 545.29.06
Cuda版本: 12.3 Update 1
Python版本: 3.11.7
2、创建cuda环境
# 创建chatchat 环境
conda create -n chatchat python=3.11.8# 激活环境
conda activate chatchat
3、下载源码及模型
cd /home/chatchat
git clone --recursive https://github.com/chatchat-space/Langchain-Chatchat.git# 进入目录
cd Langchain-Chatchat# 安装全部依赖
pip install -r requirements.txt# 模型下载 chatglm3-6b
# 需要在hugging face中下载,依赖lfs 插件, 并且需要借助VPN
cd /home/chatchat/models
git lfs install
git clone https://huggingface.co/THUDM/chatglm3-6bgit clone https://huggingface.co/BAAI/bge-large-zh-v1.5# git clone https://huggingface.co/THUDM/chatglm2-6b
# git clone https://huggingface.co/moka-ai/m3e-base
4、配置文件修改
1、在/home/chatchat/Langchain-Chatchat/configs目录下面找到model_config.py修改其中模型配置
我的目录结构
- Langchain-Chatchat
- models
--bge-large-zh
--chatglm3-6b

2、服务和端口配置项 server_config.py
通常,这个页面并不需要进行大量的修改,仅需确保对应的端口打开,并不互相冲突即可。
如果你是Linux系统推荐设置
DEFAULT_BIND_HOST ="0.0.0.0"
5、初始化知识库
当前项目的知识库信息存储在数据库中,在正式运行项目之前请先初始化数据库(我们强烈建议您在执行操作前备份您的知识文件)。
5.1、训练自己的知识库
cd /home/chatchat/models
# 文字转向量模型
git clone https://huggingface.co/BAAI/bge-large-zh
- 如果您是第一次运行本项目,知识库尚未建立,或者之前使用的是低于最新master分支版本的框架,或者配置文件中的知识库类型、嵌入模型发生变化,或者之前的向量库没有开启
normalize_L2,需要以下命令初始化或重建知识库:
cd /home/chatchat/Langchain-Chatchat
python init_database.py --recreate-vs
-
如果您已经有创建过知识库,可以先执行以下命令创建或更新数据库表:
cd /home/chatchat/Langchain-Chatchat
python init_database.py --create-tables
如果可以正常运行,则无需再重建知识库。
6、启动
python startup.py -a

可视化页面
注意左侧的温度参数:Temperature。对回答结果有影响

启动参数
--all-webui为一键启动 WebUI 所有依赖服务;--all-api为一键启动 API 所有依赖服务;--llm-api为一键启动 Fastchat 所有依赖的 LLM 服务;--openai-api为仅启动 FastChat 的 controller 和 openai-api-server 服务;- 其他为单独服务启动选项。
若想指定非默认模型,需要用 --model-name 选项,示例:
python startup.py --all-webui --model-name Qwen-7B-Chat
更多信息可通过 查看。
python startup.py -h

7、API接口调用
7.1、使用openai
# 需要安装openai 依赖,如果报错,安装指定版本,
# pip install openai==0.28
import openai
openai.api_key = "EMPTY"
openai.api_base = "http://192.168.1.1:20000/v1"model = "chatglm3-6b"# create a chat completion
completion = openai.ChatCompletion.create(model=model,messages=[{"role": "user", "content": "你好"}]
)
print(completion.choices[0].message.content)
相关文章:
【LLM】-05-提示工程-部署Langchain-Chat
目录 1、软硬件要求 1.1、软件要求 1.2、硬件要求 1.3、个人配置参考 2、创建cuda环境 3、下载源码及模型 4、配置文件修改 5、初始化知识库 5.1、训练自己的知识库 6、启动 7、API接口调用 7.1、使用openai 参考官方wiki,本文以Ubuntu20.04_x64…...
【漏洞复现】Next.js框架存在SSRF漏洞(CVE-2024-34351)
0x01 产品简介 ZEIT Next.js是ZEIT公司的一款基于Vue.js、Node.js、Webpack和Babel.js的开源Web应用框架。 0x02 漏洞概述 ZEIT Next.js 13.4版本至14.1.1之前版本存在代码问题漏洞,该漏洞源于存在服务器端请求伪造 (SSRF) 漏洞 0x03 搜索引擎 body"/_nex…...
【2024最新华为OD-C/D卷试题汇总】[支持在线评测] 小区小朋友统计(100分) - 三语言AC题解(Python/Java/Cpp)
🍭 大家好这里是清隆学长 ,一枚热爱算法的程序员 ✨ 本系列打算持续跟新华为OD-C/D卷的三语言AC题解 💻 ACM银牌🥈| 多次AK大厂笔试 | 编程一对一辅导 👏 感谢大家的订阅➕ 和 喜欢💗 🍿 最新华为OD机试D卷目录,全、新、准,题目覆盖率达 95% 以上,支持题目在线…...
Vuex看这一篇就够了
💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 非常期待和您一起在这个小…...
Kafka集群创建
这样就创建好了docker4个镜像,三个node,一个manager。 其中,浏览器访问的是manager对应的那个url,直接在里面加Cluster...
2024.7.22 作业
1.将双向链表和循环链表自己实现一遍,至少要实现创建、增、删、改、查、销毁工作 循环链表 looplinklist.h #ifndef LOOPLINKLIST_H #define LOOPLINKLIST_H#include <myhead.h>typedef int datatype;typedef struct Node {union {int len;datatype data;}…...
如何使用aiohttp或requests-async等库并发地执行多个HTTP请求
在Python中,要并发地执行多个HTTP请求,可以使用aiohttp这样的异步HTTP客户端库,因为它支持异步编程,能够显著提高IO密集型任务的性能,比如网络请求。requests-async并不是一个广泛认知的库(虽然可能存在类似…...
Golang | Leetcode Golang题解之第257题二叉树的所有路径
题目: 题解: func binaryTreePaths(root *TreeNode) []string {paths : []string{}if root nil {return paths}nodeQueue : []*TreeNode{}pathQueue : []string{}nodeQueue append(nodeQueue, root)pathQueue append(pathQueue, strconv.Itoa(root.V…...
关于css中flex布局垂直居中失效问题的原因
项目中遇到用flex进行页面布局后,使用上下居中设置:align-item: center; 目标效果如下: 但是失效,不起作用,如下图所示: 各种排查过后发现设置了子模块 align-self 属性,这会覆盖容器上的 al…...
用Redisson写一个库存扣减的方法
使用Redisson来处理库存操作可以确保在高并发环境下库存数据的一致性和完整性。以下是使用Redisson实现库存管理的一些通用方法,包括获取库存、扣减库存、设置库存等。我们将使用Redisson的ReentrantLock来确保并发安全。 首先,确保你已经正确设置了Red…...
第2节课:文本内容与格式化——HTML中的文本处理技巧
目录 文本内容与格式化:段落和标题:构建文本基础段落 <p>标题 <h1> 到 <h6> 格式化:强调和样式加粗 <b>斜体 <i>下划线 <u> 列表:组织内容无序列表 <ul>有序列表 <ol>定义列表 &…...
temu平台电池/锂电池UN38.3资质合规解析
UN38.3资质合规解析 为满足相关法律法规和商品运输安全需求含锂电池商品需要提供对应的UN38.3资质。截至7月29日,相关类目下UN38.3资质待上传或上传失败的商品可能面临下架。 -01什么是UN38.3- 1)UN38.3是指由联合国危险货物运输专家委员会编写的《试验…...
Huawei、Cisco 路由中 RIP 协议 summary 的用法
华为路由中 RIP summary summary用来使能 RIP 有类聚合,聚合后的路由以使用自然掩码的路由形式发布。undo summary用来取消有类聚合以便在子网之间进行路由,此时,子网的路由信息就会被发布出去。路由聚合降低了路由表中路由信息量。说明 有类…...
智能图像信息提取(飞桨OCR+ERNIE-Layout)
嘿,技术大佬们,今天我要分享的是一个超级棒的OCR技术方案,它结合了飞桨OCR和ERNIE-Layout,绝对是图像信息提取的利器! 线上体验地址:智能图像信息提取(飞桨OCRERNIE-Layout) 它基于ERNIE -Layout和多版本Pa…...
Ubuntu 24.04 LTS Noble安装 FileZilla Server
FileZilla Server 是一款使用图形用户界面快速创建 FTP 服务器的软件。它有助于测试需要 FTP 服务器功能的各种项目。虽然早期的 FileZilla FTP 服务器仅适用于 Windows 和 macOS,但现在我们也可以在 Linux(例如 Ubuntu 24.04)上安装 FileZil…...
【关于使用swoole的知识点整理】
目录 (1)Swoole 如何理解,能解决你项目中的哪些痛点? (2)Swoole里的协程是什么,怎么用?为什么协程可以提高并发? (3)简述Swoole有哪些优点&…...
迁移学习:目标检测的加速器
迁移学习:目标检测的加速器 在深度学习领域,目标检测是一项至关重要的任务,广泛应用于从视频监控到自动驾驶等众多领域。然而,训练一个高性能的目标检测模型不仅需要大量的标注数据,还需要大量的计算资源和时间。迁移…...
gitee的怎么上传项目
前提 1.先下载Git Bash (如果没有下载的宝子们下载连接如下: 链接: link ) 项目上传到Gitee步骤 1.在Gitee上建立远程仓库 2.填写相关信息 3.进入本地你想要上传的文件目录下,右键单击空白处,点击Git Bash Here 4.配置你的用户名和邮箱 git con…...
【HarmonyOS4学习笔记】《HarmonyOS4+NEXT星河版入门到企业级实战教程》课程学习笔记(二十三)
课程地址: 黑马程序员HarmonyOS4NEXT星河版入门到企业级实战教程,一套精通鸿蒙应用开发 (本篇笔记对应课程第 33 节) P33《32.通知-进度条通知》 下载按钮对应的逻辑: 取消按钮对应的逻辑: 暂停按钮对应的…...
.NET C# 配置 Options
.NET C# 配置 Options 使用 options 模式可以带来许多好处,包括清晰的配置管理、类型安全、易于测试和灵活性。但在使用过程中,也需要注意配置复杂性、性能开销和依赖框架等问题。通过合理设计和使用,可以充分发挥 options 模式的优势&#…...
springboot 百货中心供应链管理系统小程序
一、前言 随着我国经济迅速发展,人们对手机的需求越来越大,各种手机软件也都在被广泛应用,但是对于手机进行数据信息管理,对于手机的各种软件也是备受用户的喜爱,百货中心供应链管理系统被用户普遍使用,为方…...
【入坑系列】TiDB 强制索引在不同库下不生效问题
文章目录 背景SQL 优化情况线上SQL运行情况分析怀疑1:执行计划绑定问题?尝试:SHOW WARNINGS 查看警告探索 TiDB 的 USE_INDEX 写法Hint 不生效问题排查解决参考背景 项目中使用 TiDB 数据库,并对 SQL 进行优化了,添加了强制索引。 UAT 环境已经生效,但 PROD 环境强制索…...
《从零掌握MIPI CSI-2: 协议精解与FPGA摄像头开发实战》-- CSI-2 协议详细解析 (一)
CSI-2 协议详细解析 (一) 1. CSI-2层定义(CSI-2 Layer Definitions) 分层结构 :CSI-2协议分为6层: 物理层(PHY Layer) : 定义电气特性、时钟机制和传输介质(导线&#…...
解决Ubuntu22.04 VMware失败的问题 ubuntu入门之二十八
现象1 打开VMware失败 Ubuntu升级之后打开VMware上报需要安装vmmon和vmnet,点击确认后如下提示 最终上报fail 解决方法 内核升级导致,需要在新内核下重新下载编译安装 查看版本 $ vmware -v VMware Workstation 17.5.1 build-23298084$ lsb_release…...
渗透实战PortSwigger靶场-XSS Lab 14:大多数标签和属性被阻止
<script>标签被拦截 我们需要把全部可用的 tag 和 event 进行暴力破解 XSS cheat sheet: https://portswigger.net/web-security/cross-site-scripting/cheat-sheet 通过爆破发现body可以用 再把全部 events 放进去爆破 这些 event 全部可用 <body onres…...
Ascend NPU上适配Step-Audio模型
1 概述 1.1 简述 Step-Audio 是业界首个集语音理解与生成控制一体化的产品级开源实时语音对话系统,支持多语言对话(如 中文,英文,日语),语音情感(如 开心,悲伤)&#x…...
Spring AI 入门:Java 开发者的生成式 AI 实践之路
一、Spring AI 简介 在人工智能技术快速迭代的今天,Spring AI 作为 Spring 生态系统的新生力量,正在成为 Java 开发者拥抱生成式 AI 的最佳选择。该框架通过模块化设计实现了与主流 AI 服务(如 OpenAI、Anthropic)的无缝对接&…...
爬虫基础学习day2
# 爬虫设计领域 工商:企查查、天眼查短视频:抖音、快手、西瓜 ---> 飞瓜电商:京东、淘宝、聚美优品、亚马逊 ---> 分析店铺经营决策标题、排名航空:抓取所有航空公司价格 ---> 去哪儿自媒体:采集自媒体数据进…...
Android Bitmap治理全解析:从加载优化到泄漏防控的全生命周期管理
引言 Bitmap(位图)是Android应用内存占用的“头号杀手”。一张1080P(1920x1080)的图片以ARGB_8888格式加载时,内存占用高达8MB(192010804字节)。据统计,超过60%的应用OOM崩溃与Bitm…...
C++八股 —— 单例模式
文章目录 1. 基本概念2. 设计要点3. 实现方式4. 详解懒汉模式 1. 基本概念 线程安全(Thread Safety) 线程安全是指在多线程环境下,某个函数、类或代码片段能够被多个线程同时调用时,仍能保证数据的一致性和逻辑的正确性…...
