当前位置: 首页 > news >正文

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接口

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

相关文章:

  • 网络运维与网络安全 学习笔记2023.11.22
  • 使用websocket获取thingsboard设备的实时数据
  • 贪心:leetcode2216 美化数组的最少删除数
  • Pickcode:教孩子们编码的新视觉语言
  • Python 使用SQLAlchemy数据库模块
  • logic-flow 使用过程中遇到的bug - 拖动节点到画布的时候,鼠标松开,节点不落在画布,仍旧跟着鼠标走
  • 【23真题】最后一套两电一邮,纸老虎偏多!
  • go sync.map源码解读
  • UDP网络套接字编程
  • JS——日期字符串yyyymmdd转yyyy-mm-dd的两种方法
  • TS是什么、为什么、怎么办
  • git代码提交命令(如何提交代码)
  • 装饰器设计模式是什么?什么是 Decorator 装饰器设计模式?Python 装饰器设计模式示例代码
  • Spark---基于Standalone模式提交任务
  • 三十分钟学会Shell(上)
  • SegmentFault for Android 3.0 发布
  • js递归,无限分级树形折叠菜单
  • Markdown 语法简单说明
  • PHP CLI应用的调试原理
  • Python 使用 Tornado 框架实现 WebHook 自动部署 Git 项目
  • Rancher如何对接Ceph-RBD块存储
  • vue自定义指令实现v-tap插件
  • Vultr 教程目录
  • 欢迎参加第二届中国游戏开发者大会
  • 前端存储 - localStorage
  • 异常机制详解
  • 在GitHub多个账号上使用不同的SSH的配置方法
  • 字符串匹配基础上
  • Java数据解析之JSON
  • mysql 慢查询分析工具:pt-query-digest 在mac 上的安装使用 ...
  • 大数据全解:定义、价值及挑战
  • ​插件化DPI在商用WIFI中的价值
  • # Swust 12th acm 邀请赛# [ E ] 01 String [题解]
  • ###项目技术发展史
  • #QT项目实战(天气预报)
  • #Z2294. 打印树的直径
  • (js)循环条件满足时终止循环
  • (第一天)包装对象、作用域、创建对象
  • (分布式缓存)Redis分片集群
  • (附源码)springboot宠物医疗服务网站 毕业设计688413
  • (附源码)springboot工单管理系统 毕业设计 964158
  • (十一)JAVA springboot ssm b2b2c多用户商城系统源码:服务网关Zuul高级篇
  • (五)MySQL的备份及恢复
  • (学习日记)2024.03.12:UCOSIII第十四节:时基列表
  • (一)Linux+Windows下安装ffmpeg
  • .360、.halo勒索病毒的最新威胁:如何恢复您的数据?
  • .cn根服务器被攻击之后
  • .NET Core MongoDB数据仓储和工作单元模式封装
  • .NET/C# 中你可以在代码中写多个 Main 函数,然后按需要随时切换
  • .NET简谈设计模式之(单件模式)
  • /dev下添加设备节点的方法步骤(通过device_create)
  • @31省区市高考时间表来了,祝考试成功
  • [ C++ ] template 模板进阶 (特化,分离编译)
  • [ 攻防演练演示篇 ] 利用通达OA 文件上传漏洞上传webshell获取主机权限
  • [【JSON2WEB】 13 基于REST2SQL 和 Amis 的 SQL 查询分析器