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

Flask在线部署ChatGLM2大模型

1、 拉取镜像

docker pull swr.cn-central-221.ovaijisuan.com/mindformers/mindformers_dev_mindspore_2_0:mindformers_0.6.0dev_20230616_py39_37

2、 新建docker.sh

-p 8000:8000 是宿主机映射到镜像8000端口

如果添加–ipc=host --net=host 会和-p冲突

# --device用于控制指定容器的运行NPU卡号和范围# -v 用于映射容器外的目录# --name 用于自定义容器名称docker run -it -u root -p 8080:8080 \--device=/dev/davinci0 \--device=/dev/davinci1 \--device=/dev/davinci2 \--device=/dev/davinci3 \--device=/dev/davinci4 \--device=/dev/davinci5 \--device=/dev/davinci6 \--device=/dev/davinci7 \--device=/dev/davinci_manager \--device=/dev/devmm_svm \--device=/dev/hisi_hdc \-v /etc/localtime:/etc/localtime \-v /usr/local/Ascend/driver:/usr/local/Ascend/driver \-v /var/log/npu/:/usr/slog \-v /usr/local/bin/npu-smi:/usr/local/bin/npu-smi \--name 8080-test \-v /home/:/home/ \swr.cn-central-221.ovaijisuan.com/mindformers/mindformers_dev_mindspore_2_0:mindformers_0.6.0dev_20230616_py39_37 \/bin/bash

然后启动该sh文件后

docker ps查看,映射镜像8080端口供外网访问

编写api调用代码,并开放flask8080端口

from flask import Flask, request
import jsonapp = Flask(__name__)from mindformers import AutoConfig, AutoModel, AutoTokenizer
import mindspore as msms.set_context(mode=ms.GRAPH_MODE, device_target="Ascend", device_id=0)
config = AutoConfig.from_pretrained("glm2_6b")
config.checkpoint_name_or_path = "../mindformers/checkpoint_download/glm2/glm2_6b.ckpt"
model = AutoModel.from_config(config)
tokenizer = AutoTokenizer.from_pretrained("glm2_6b")@app.route('/glm2_bot', methods=['POST'])
def say_hello_func():print("----------- in hello func ----------")data = json.loads(request.get_data(as_text=True))text = data['text']inputs = tokenizer(tokenizer.build_prompt(text))["input_ids"]print(tokenizer.decode(inputs))outputs = model.generate(inputs, max_length=14096)outputs_text = tokenizer.decode(outputs)return json.dumps({"response":outputs_text}, ensure_ascii=False,indent=4)@app.route('/goodbye', methods=['GET'])
def say_goodbye_func():print("----------- in goodbye func ----------")return '\nGoodbye!\n'@app.route('/', methods=['POST'])
def default_func():print("----------- in default func ----------")data = json.loads(request.get_data(as_text=True))return '\n called default func !\n {} \n'.format(str(data))# host must be "0.0.0.0", port must be 8080
if __name__ == '__main__':app.run(host="0.0.0.0", port=8080)

本地curl调用:

curl -i -k -H 'Accept:application/json' -H 'Content-Type:application/json;charset=utf8' -
X POST -d'{"text":"你好"}' http://172.17.0.2:8080/glm2_bot

Tips:
在服务端开放默认8080常规接口会遭受到扫描攻击,建议修改该端口或者添加ip白名单限制访问

相关文章:

Flask在线部署ChatGLM2大模型

1、 拉取镜像 docker pull swr.cn-central-221.ovaijisuan.com/mindformers/mindformers_dev_mindspore_2_0:mindformers_0.6.0dev_20230616_py39_372、 新建docker.sh -p 8000:8000 是宿主机映射到镜像8000端口 如果添加–ipchost --nethost 会和-p冲突 # --device用于控制…...

浅谈Vue3——父子组件传值

引言 Vue.js是一款流行的JavaScript框架,用于构建用户界面。它提供了一种简洁、灵活的方式来管理和渲染数据。在Vue3中,父子组件之间的数据传递是一个常见的需求。本文将介绍如何在Vue3中传递对象,并且在子组件中访问和修改父组件对象中的属…...

Wolfram语言之父:ChatGPT到底能做什么? | 阿Q送书第六期

文章目录 那么,ChatGPT到底在做什么?它为什么能做到这些?前方的路为ChatGPT赋予“思想”留言提前获赠书 人类语言及其背后的思维模式在结构上比我们想象的更简单、更“符合规律”。 ChatGPT大火,甚至已经开始改变人类的工作和思考…...

antd a-list 添加分页

会分为三部分 template <a-list item-layout"horizontal" :data-source"localData" :pagination"{...paginationProps,current:currentPage}"><a-list-item slot"renderItem" slot-scope"item"><a-list-ite…...

MySQL注入绕安全狗脚本 -- MySQLByPassForSafeDog,以及端口爆破工具 -- PortBrute配置使用

工具介绍 此Tamper仅仅适用于MySQL数据库&#xff0c;在SQLMap使用过程中添加参数–tamperMySQLByPassForSafeDog。 安装与使用 1、安装网站安全狗Apache最新版 2、启用安全狗&#xff0c;不加MySQLByPassForSafeDog绕狗Tamper: python sqlmap.py -u "http://192.168.…...

R语言绘制热图

1、初步绘图 rm(listls())#clear Global Environment setwd(D:/Desktop/0000/code-main/热图)#设置工作路径#加载R包 library (pheatmap) #读取数据 df <- read.table(file"data.txt",sep"\t",row.names 1, headerT,check.namesFALSE) #查看前3行 hea…...

jmeter线程组 bzm - Concurrency Thread Group 阶梯式压测

简介 bzm - Concurrency Thread Group 不是JMeter的官方插件&#xff0c;而是一种由Blazemeter提供的高级线程组插件&#xff0c;它提供了更灵活的并发性能测试设置。它可以在不同的时间内并发执行不同数量的线程&#xff0c;模拟不同的负载场景。 插件下载地址&#xff08;jme…...

计算即时订单比例-首单使用开窗函数row_number()

1 需求 即时订单和计划订单 订单配送中&#xff0c;如果期望配送日期和下单日期相同&#xff0c;称为即时订单&#xff0c;如果期望配送日期和下单日期不同&#xff0c;称为计划订单。 请从配送信息表&#xff08;delivery_info&#xff09;中求出每个用户的首单&#xff08;用…...

flink集群与资源@k8s源码分析-集群

0 介绍 本文是flink集群与资源@k8s源码分析系列的第二篇-集群 1 场景 下面详细分析各用例 2 启动k8s集群 k8s集群支持session和application模式,job模式将会被废弃,本文分析session模式集群 Configuration作为配置容器,几乎所有的构建需要从配置类获取配置项,这里不显示…...

商城开发:商城系统的哪些功能值得企业去关注?

电子商务行业的快速发展&#xff0c;企业们越来越重视建设自己的在线商城。选择一个功能强大的商城系统对于企业的成功至关重要。那么&#xff0c;有哪些商城系统的功能值得企业去关注呢&#xff1f; 一、用户体验提升 ①. 响应式设计 移动设备的普及&#xff0c;大部分用户通…...

calibre和cpolar搭建一个私有的网络书库

Kindle中国电子书店停运不要慌&#xff0c;十分钟搭建自己的在线书库随时随地看小说&#xff01; 文章目录 Kindle中国电子书店停运不要慌&#xff0c;十分钟搭建自己的在线书库随时随地看小说&#xff01;1.网络书库软件下载安装2.网络书库服务器设置3.内网穿透工具设置4.公网…...

c++ nlohmann::json 中文支持

c nlohmann::json 是当前排名第一人库&#xff0c;但是在解析中文时会有问题 std::string to_utf8(std::wstring& wide_string) {static std::wstring_convert<std::codecvt_utf8<wchar_t>> utf8_conv;return utf8_conv.to_bytes(wide_string); }void test_nl…...

vue3 | defineExpose的使用

简介 使用<script setup>的组件是默认关闭的————即通过模板引用或者$parent链获取到的组件的公开实例&#xff0c;不会暴露在任何在<script setup>中声明的绑定 换句话说&#xff0c;如果一个子组件使用的是选项式 API 或没有使用 <script setup>&…...

PaddleSeg学习3——使用PP-LiteSeg模型对道路进行分割

使用PP-LiteSeg模型对道路进行分割 1 准备环境2 样本3 准备config文件4 模型训练5 模型预测5.1 python预测5.2 C++预测5.3 预测结果展示1 准备环境 参考上一篇:Windows PaddleSeg c++部署 2 样本 车道线分割实战的智能车数据集 #标签 背景:0, 0.05 单实线-黄...

时序数据库的关键技术点总结

总结时序数据库的关键技术点 内存 SQL解析LSM Tree&#xff08;WAL&#xff09;skiplist内存合并&#xff0c;有序落盘LRU 时序文件索引缓存 存储层 时间分区设备分区 索引文件 时间戳范围索引布隆过滤器索引brin 索引btree 索引多层索引 数据文件&#xff08;tskv&#xf…...

【ROS】机器人使用Nomachine进行远程控制

官网&#xff1a;NoMachine - Free Remote Desktop for Everybody 支持的系统&#xff1a; WindowsMacLinux 树莓派其他ARM板IOSAndroid 由于网速问题&#xff0c;可以使用我下载好的&#xff1a;&#xff08;8.8.1_1&#xff09; 链接&#xff1a;https://pan.baidu.com/s/…...

Jmeter系列-定时器Timers的基本介绍(11)

简介 JMeter中的定时器&#xff08;Timer&#xff09;是一种重要的元件&#xff0c;用于模拟用户在不同时间间隔内发送请求的场景。通过使用定时器&#xff0c;可以模拟负载、并发和容量等不同情况下的请求发送频率。 使用定时器 可以在取样器下添加定时器&#xff0c;这样定…...

【华为OD机试python】求满足条件的最长子串的长度【2023 B卷|100分】

【华为OD机试】-真题 !!点这里!! 【华为OD机试】真题考点分类 !!点这里 !! 题目描述 给定一个字符串,只包含字母和数字,按要求找出字符串中的最长(连续)子串的长度, 字符串本身是其最长的子串,子串要求: 1、 只包含1个字母(a~z, A~Z),其余必须是数字; 2、 字母可以…...

iOS技术博主指南:填写苹果应用上架中的隐私政策信息

摘要&#xff1a;本文将详细介绍iOS技术博主在苹果应用上架过程中如何填写隐私政策信息。博主可以通过App Store Connect为应用程序提供隐私政策网址和用户隐私选项网址&#xff0c;并了解如何填写隐私政策文本。本文将提供步骤和注意事项&#xff0c;帮助博主顺利完成隐私政策…...

Spring事件机制之ApplicationEvent

博主介绍&#xff1a;✌全网粉丝4W&#xff0c;全栈开发工程师&#xff0c;从事多年软件开发&#xff0c;在大厂呆过。持有软件中级、六级等证书。可提供微服务项目搭建与毕业项目实战&#xff0c;博主也曾写过优秀论文&#xff0c;查重率极低&#xff0c;在这方面有丰富的经验…...

深度学习中的优化器:原理与实践

深度学习中的优化器&#xff1a;原理与实践 一、背景与动机 在深度学习中&#xff0c;优化器是模型训练的核心组件&#xff0c;它决定了模型参数如何根据损失函数的梯度进行更新。选择合适的优化器对于模型的训练速度和最终性能至关重要。本文将深入探讨各种优化器的核心原理、…...

STM32实现智能酒驾监测系统设计

基于STM32的酒后驾车监测报警系统设计与实现1. 项目概述1.1 系统背景酒后驾车是全球交通事故的主要诱因之一&#xff0c;传统的人工检测方法存在效率低、覆盖范围有限等问题。随着嵌入式系统和物联网技术的发展&#xff0c;智能化的酒精监测系统成为解决这一问题的有效方案。1.…...

设计师必看:Photoshop混合模式实战指南,5分钟搞定光影合成与氛围感调色

Photoshop混合模式实战指南&#xff1a;5分钟掌握光影合成与氛围调色 当你在深夜赶稿时&#xff0c;突然发现人物照片缺乏立体感&#xff0c;或是产品静物图需要增强戏剧性光影——这就是混合模式大显身手的时刻。不同于繁琐的曲线调整和复杂的蒙版操作&#xff0c;混合模式就像…...

MX28智能舵机RS485底层驱动开发实战

1. MX28智能舵机底层驱动技术解析&#xff1a;基于RS485总线的嵌入式控制实现1.1 技术定位与工程价值MX28是Robotis公司推出的第二代高精度智能舵机&#xff08;Smart Actuator&#xff09;&#xff0c;采用RS485半双工差分总线通信&#xff0c;支持位置、速度、扭矩闭环控制及…...

x265帧内预测实战:从35种模式到MPM优化的效率提升技巧

x265帧内预测深度优化&#xff1a;从35种模式到MPM的工程实践 在视频编码领域&#xff0c;HEVC标准相比前代H.264引入了更复杂的帧内预测机制&#xff0c;其中x265作为开源编码器实现&#xff0c;其帧内预测模块的优化直接影响编码效率。本文将深入剖析x265帧内预测的核心技术…...

二进制入门及其运算

二进制,十进制以及它们之间的转换- 十进制:我们日常生活中最常用的计数系统是\它的基数是10,使用0 - 9这十个数字来表示数。每个数位的权重是10的幂次方,从右往左依次是10⁰、10、10等。例如,数字234可以表示为210 310 410⁰。- 二进制:是计算机科学中广泛使用的计数系统。它的…...

python基于微信小程序的智慧社区娱乐服务管理平台

目录需求分析与规划技术架构设计功能模块开发实时交互实现数据可视化测试与部署安全与优化迭代计划项目技术支持源码获取详细视频演示 &#xff1a;文章底部获取博主联系方式&#xff01;同行可合作需求分析与规划 明确平台核心功能&#xff1a;居民活动报名、场地预约、社区公…...

OpenCV4编译后pkg-config失效?教你如何正确生成opencv4.pc文件(附完整CMake参数)

OpenCV4编译实战&#xff1a;从源码构建到pkg-config配置全解析 在Linux环境下从源码编译OpenCV4是许多计算机视觉开发者的必经之路&#xff0c;但不少人在成功编译后却发现pkg-config --modversion opencv命令报错"找不到opencv包"。这并非你的操作失误&#xff0c;…...

背包问题Ⅱ与二分问题

今天我对背包问题有了更深的理解&#xff0c;我一定要写下来&#xff0c;巩固自己的思路并且&#xff0c;遇到新的难题二分&#xff0c;不管了&#xff0c;干就完了&#xff01;&#xff01;&#xff01;完全背包以今天写的代码展开详细描述与解释,并附上题目#define N 1001 in…...

3月17枚举

package com.fangfa.day05.Enum;public class EnurmerDemo1 {public static void main(String[] args) {//为什么其他类里可以类名.对象名 因为这个对象名被static修饰了//若不修饰不行System.out.println(Season.SPRING);} } class Season{/*** Description* author Mao Ree…...