chatglm3部署使用

chatglm3部署使用

  • 1.部署
  • 2.使用
  • 3.接入微信
  • 4.vue前端

1.部署

1.首先去github下载chatglm3代码。Huggingface下载模型一直失败,所以用阿里的魔塔社区下载。

git clone https://github.com/THUDM/ChatGLM3.git
git clone https://www.modelscope.cn/ZhipuAI/chatglm3-6b.git

2.创建虚拟环境并运行

conda create -n glm3 python=3.10
conda activate glm3
pip install -r requirements.txt -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com
conda install pytorch torchvision torchaudio pytorch-cuda=12.1 -c pytorch -c nvidia#避免之后的错误,torch还是去官网下载自己cuda版本的(我的是12.2)

2.使用

这里我主要试试代码解释器Code Interpreter。
1.使用 Code Interpreter 还需要安装 Jupyter 内核,所以

conda install ipykernel
conda install jupyter
python -m ipykernel install --name “环境名称” --display-name "环境的显示名称"#新创建的python环境写入Jupyter的kernel中
jupyter kernelspec list#查看已添加至Jupyter内核中的环境列表
jupyter kernelspec remove “环境名称”#删除已添加至Jupyter内核中的环境

2.定义模型文件地址

set MODEL_PATH=D:/ChatGLM3-main/model/chatglm3-6b
echo %MODEL_PATH%
set IPYKERNEL=glm3#自定义 Jupyter 内核用glm3环境配置的jupyter

3.运行官网的示例

cd D:\ChatGLM3-main\composite_demo
streamlit run main.py

4.效果
这里我踩的一个坑是没有自定义jupyter内核用glm3环境设置的,所以一直是有代码没图像。
在这里插入图片描述

3.接入微信

修改https://github.com/zhayujie/chatgpt-on-wechat项目,模型地址换成本地的glm3,运行app文件即可,这里主要是环境的问题配了好久,之后会把环境文件导出附上。
在这里插入图片描述

4.vue前端

利用https://github.com/LemonQu-GIT/ChatGLM-6B-Engineering项目,这里面有连接互联网,查询天气和思维导图等很多功能,这里面遇到的问题是把前端vue里的process.env.VUE_APP_API替换成"http://127.0.0.1:8000",前端是8080端口;
api用的8000端口,所以在front_end.py最后一行改为uvicorn.run(app, host="0.0.0.0", port=8000)
然后后端模型用的8001端口;所以后端工程里面的config文件里面修改:

"API_host": "http://0.0.0.0",
"model": "D:/ChatGLM3_main/model/chatglm3_6b",
"port": 8001,
"host": "http://127.0.0.1"

然后还有一个问题是requests异步访问有问题,所以用了httpx,修改front_end.py里面的@app.get(“/api/chat”)

url = f"{get_config()['basic']['host']}:{get_config()['basic']['port']}/stream"
async with httpx.AsyncClient() as client:
	try:
		response = await client.post(url, json=payload, timeout=30)
		async for chunk in response.aiter_text():
			await asyncio.sleep(0.1)
			yield chunk
		# 处理正常响应
	except httpx.ReadTimeout:
		# 处理超时异常,可以进行重试或返回适当的错误消息
		print("Request timed out. Please try again.")
return StreamingResponse(chat(prompt), media_type="text/event-stream")

最后运行文件

npm run dev#运行前端vue
python api.py#运行后端模型的chat接口
python front_end.py#运行后端和前端连接的api接口

效果如下:
在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

SpringMVC 基础知识

学习目标 掌握基于 SpringMVC 获取请求参数与响应 json 数据操作熟练应用基于 REST 风格的请求路径设置与参数传递能够根据实际业务建立前后端开发通信协议并进行实现基于 SSM 整合技术开发任意业务模块功能 1 SpringMVC 简介 1.1 概述 1.1.1 web程序开发流程 【执行过程】…

Hook+jsdom 解决cookie逆向

前言 记录下如何破cookie逆向 目标 目标网址:https://q.10jqka.com.cn/ 目标接口:http://q.10jqka.com.cn/index/index/board/all/field/zdf/order/desc/page/2/ajax/1/ 对抗:cookie反爬虫处理,关键字v,如图 解决步骤 1、JS中关键字查找 如上,我们找到了关键字 v,…

etoken是什么意思,有什么作用?

EToken是一种数字货币,它是由以太坊区块链平台发行的智能合约,旨在为以太坊生态系统提供一种安全、可靠、去中心化的交易媒介。EToken具有多种作用,下面将详细介绍。 一、EToken的定义和发行 EToken是由以太坊智能合约创建的数字货币&#xf…

交易宝订单系统使用心得

简介 交易宝是管理订单支付的软件系统,可对多个应用的支付业务进行统一管理和运营,为你节省时间和精力,让你专注于核心业务,实现更高的效率和利润。 特点:无需开发,开箱即用,统一管理支付订单…

【运动规划】191 自适应跟踪kinodynamicrrt的路径

分层法: two layer approach 自适应控制,跟随轨迹。运动规划:扩展自由空间(基于速度约束缩小自由空间)为控制部分留余量,确保安全。 控制设计: 考虑平移和旋转,速度环控制&#xff…

什么是多要素自动气象监测设备?

WX-CQ12 随着科技的发展,我们对天气的预测和监测能力也在不断提高。其中,多要素自动气象监测设备正成为一种革命性的工具,帮助我们更好地理解和预测天气变化。 一、什么是多要素自动气象监测设备? 多要素自动气象监测设备是一种…

查看sql语句执行计划并重建索引

晚上cpu报警显示当前cpu使用率达到90%以上,不到10%的空闲 先查询当前sql: #(ORACLE) SQL > set line 200 pages 1000 col event for a30 col program for a30 col username for a12 col sql_id for a15 col INST_ID for 9999 …

【数据结构初阶(4)】栈的基本操作实现

文章目录 Ⅰ 概念及结构1. 栈的概念2. 栈的操作 Ⅱ 基本操作实现1. 栈的定义2. 初始化栈3. 元素入栈4. 元素出栈5. 获取栈顶元素6. 获取栈中有效元素个数7. 判断栈空8. 销毁栈 Ⅰ 概念及结构 1. 栈的概念 栈:栈是一种特殊的线性表,其只允许在固定的一端…

SAP QA11/QA32质检放行时,如何处理产生记账更改通知单时

前提:启用SAP wms仓库管理 场景: 当做移动类型321质检放行的时候,有时候会产生记账更改通知单,这个时候怎么处理? 解决办法: 使用事务码LU04,查看未清的记账更改通知单,进入清单列表之后&…

【深度学习】卷积神经网络(CNN)的参数优化方法

著名: 本文是从 Michael Nielsen的电子书Neural Network and Deep Learning的深度学习那一章的卷积神经网络的参数优化方法的一些总结和摘录,并不是我自己的结论和做实验所得到的结果。我想Michael的实验结果更有说服力一些。本书在github上有中文翻译的…

蓝桥杯每日一题2023.11.23

题目描述 题目分析 本题使用递归模拟即可,将每一个大格子都可以拆分看成几个小格子,先将最开始的数字进行填入,使每一个对应小格子的值都为大格子对应的数,搜索找到符合要求的即可 (答案:50 33 30 41&am…

分布式篇---第二篇

系列文章目录 文章目录 系列文章目录前言一、你知道哪些分布式事务解决方案?二、什么是二阶段提交?三、什么是三阶段提交?前言 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站,这篇文章男女通用,看懂了就去分享给你…

第十七章:数据库操作

数据库基础 SQL语言 1、select 语句 select 语句用于从数据中检索数据。语法如下: SELECT 搜选字段列表 FROM 数据表名 WHERE 条件表达式 GROUP BY 字段名 HAVING 条件表达式(指定分组的条件) ORDER BY 字段名[ASC|DESC] 2、insert 语句 insert 语句用于向表中插入…

PTA-用天平找小球

三个球A、B、C,大小形状相同且其中有一个球与其他球重量不同。要求找出这个不一样的球。 输入格式: 输入在一行中给出3个正整数,顺序对应球A、B、C的重量。 输出格式: 在一行中输出唯一的那个不一样的球。 输入样例&#xff…

【8】Spring Boot 3 集成组件:安全组件 spring security【官网概念篇】

目录 【8】Spring Boot 3 集成组件:安全组件 spring securitySpring Security 简介先决条件引入依赖身份验证密码存储密码存储历史DelegatingPasswordEncoder密码存储格式密码加解密类自定义密码存储 体系结构 ArchitectureServlet 过滤器DelegatingFilterProxyFilt…

基于element-plus定义表单配置化扩展表单按钮

文章目录 前言一、新增btn.vue组件二、使用总结如有启发&#xff0c;可点赞收藏哟~ 前言 在后台管理系统一般都存在列表查询&#xff0c;且可输入数据进行查询 基于element-plus定义表单配置化 新增按钮配置化 一、新增btn.vue组件 <template><template v-for&qu…

java协程操作mysql数据库

我的项目&#xff1a; nanshaws/nettyWeb: 复习一下netty&#xff0c;并打算做一个web项目出来 (github.com) 最近在项目中分别添加了虚拟线程操作mysql数据库&#xff0c;和用协程操作mysql数据库 同理先跟我这个博客操作一下前面的&#xff1a;就单纯代码的时候进行修改&a…

2014年12月22日 Go生态洞察:Go语言中的代码生成

&#x1f337;&#x1f341; 博主猫头虎&#xff08;&#x1f405;&#x1f43e;&#xff09;带您 Go to New World✨&#x1f341; &#x1f984; 博客首页——&#x1f405;&#x1f43e;猫头虎的博客&#x1f390; &#x1f433; 《面试题大全专栏》 &#x1f995; 文章图文…

Sui第七轮资助:八个项目共获得超过50万美元的资助

今日&#xff0c;Sui基金会宣布了本月获得资助的项目方&#xff0c;他们将获得超过50万美元的资助金&#xff0c;用于构建项目&#xff0c;推动Sui的采用和发展。要获得资助&#xff0c;项目必须提交提案&#xff0c;详细说明他们正在构建的内容、预算明细、关键里程碑、团队经…

Vue环境的搭建

1.Vue开发的两种方式 &#xff08;1&#xff09;核心包传统开发模式 基于html/css/js文件&#xff0c;直接引入和辛堡&#xff0c;开发Vue。 &#xff08;2&#xff09;工程化开发模式&#xff1a; 主要是基于构建工具&#xff08;例如,webpack&#xff09;的环境中开发Vue…