最新要闻
- 【世界聚看点】特斯拉不好惹!网红车评人“蔡老板”被判道歉赔10万后:还没饶了他
- 天天微头条丨豆瓣仅4分!《三体》动画宣布延播两周:3月4日恢复
- 全球新消息丨等待16年!好莱坞8.1分末日科幻大片《我是传奇》续集定了:“史皇”出演
- 【时快讯】罗永浩交个朋友公司被曝欠薪 员工:遭到暴力裁员
- 天天短讯!二次元真香升级!13代游戏本华硕天选4开启预约
- 大宇获恐怖电影《咒》IP授权:由《轩辕剑柒》主创张蓁元主导开发
- 全球观点:02月16日09时广东珠海疫情数据 阳了以后为什么会腰疼?应该怎么办?
- 快看:联发科一夜回到两年前:大家都不换新手机了
- 弟弟陪姐姐看病:双双确诊甲状腺癌
- 环球观点:RNG拖欠奖金再上热搜!前俱乐部选手站队喊话还钱
- 报道:父母高度近视:1岁婴儿近视600度
- 每日播报!Win10/11后:Linux启动AMD处理器fTPM出现同款间歇性卡顿
- 项羽墓在哪个地方?项羽墓为什么在山东?
- 卖惨是什么意思?卖惨的人是什么心理?
- 保龄球有几个孔?保龄球设备多少钱一套?
- 长安是唐朝的首都吗?长安是现在的哪个城市?
广告
手机
iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?
警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案
- iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?
- 警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案
- 男子被关545天申国赔:获赔18万多 驳回精神抚慰金
- 3天内26名本土感染者,辽宁确诊人数已超安徽
- 广西柳州一男子因纠纷杀害三人后自首
- 洱海坠机4名机组人员被批准为烈士 数千干部群众悼念
家电
环球快资讯丨使用docker部署Python-Flask实现ChatGPT的使用
首先说下背景:
自从申请ChatGPT到现在也有个把月了,余额一直还很多,想想三月下旬就过期了,还是计划把里面的18美刀用掉,于是结合着之前做的Django简单cv一个"简易网站"。
简单说一下实现原理:
(资料图片)
先写界面,计划半天,由于没有VUE上云的经验,还是用最基础的超文本标记语言吧(主要是简单轻松,哈)HTML+css
后台用Flask,解释器Python3.9,官网给好的框架可轻松实现一个简易网站的搭建
部署的时候用docker,写好Dockerfile,直接在容器里面把环境码好了
一、创建环境
1、flask插件2、Python依赖的模块 openAI, Flask, render_template, request, flash, jsonify
二、代码部分
2.1、功能代码
# -*- coding:utf-8 -*-# !/usr/bin/python3###################################################################### Author : zhoujt# Tel : 186xxxxxxxx# Date : 2023-02-14# FileName : openaigpt.py# Description: web requests#####################################################################import jsonimport timeimport openaiimport requestsfrom flask import Flask, render_template, request, flash, jsonifyimport reapp = Flask(__name__)app.secret_key = "security-guard"def zhoujt_chatgpt(userinfo): # 获取当前时间 now = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()) result = "[%s] %s\n" % (now, userinfo) headers = { "Content-Type": "application/json" } # msg_info = result msg_info = str(result).replace("\n", "") payload = { "msgtype": "text", "text": { "content": msg_info } } requests.post("https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=4478aey3dea-2c8e-4d6e-acc7-1c1n3n39ty47", data=json.dumps(payload), headers=headers)# Answer the last piece of informationdef answer_meg(question): openai.api_key = "sk-tPYjaksdhf23e3ccJ4uSaT3BlbkFJ2U40tFsz9EzmhfuqeyY87Z" completion = openai.Completion.create( engine="text-davinci-003", prompt=question, max_tokens=1024, temperature=1 ) an_info = completion.choices[0].text return an_info# 路由@app.route("/", methods=["GET", "POST"])def index(): if request.method == "POST": ip_req = request.form.get("requestivr") print(ip_req) try: shell = answer_meg(question=ip_req) print(shell) shell = list(shell) resultsh = "".join(shell) flash(u"Q: %s\t" % ip_req) flash(u"%s\n" % resultsh) zhoujt_chatgpt(userinfo=ip_req) zhoujt_chatgpt(userinfo=resultsh) except Exception as e: flash(u"Q: %s\t\t" % ip_req) flash(u"\t抱歉,ChatGPT负载过高,请稍后重试\t%s" % e) zhoujt_chatgpt(userinfo=e) return render_template("send.html")if __name__ == "__main__": app.run(host="0.0.0.0",port=6666, debug=True)
2.2、前端页面
ChatGPT
2.3、css调试代码
可见有两个 @media 其功能是为了区分手机端和PC端
@media only screen and (max-width: 767px) { input[type="text"] { outline: none; padding: 1em; width: 88%; margin: 2em 1em auto; text-align: center; border-radius: 10px; } input[type="submit"] { font-size: 1em; color: #fff; background: #007bff; outline: none; border: none; cursor: pointer; padding: 1em; -webkit-appearance: none; width: 88%; margin: 2em 1em auto; border-radius: 10px; } input[type="submit"]:hover { background: #0000FF; -webkit-transform: translateY(8px); -ms-transform: translateY(8px); -o-transform: translateY(8px); transform: translateY(8px); -webkit-box-shadow: 0 3px 3px 0 rgba(0, 0, 0, 0.58); -moz-box-shadow: 0 3px 3px 0 rgba(0, 0, 0, 0.58); box-shadow: 0 3px 3px 0 rgba(0, 0, 0, 0.58); -webkit-transition: .5s all; -moz-transition: .5s all; -o-transition: .5s all; transition: .5s all; } .clear { clear: both; } .w3copyright-agile { margin: 2em 0 1em; text-align: center; } /*两个最下面提示黑白*/ .w3copyright-agile p { font-size: 1em; color: #0f6a18; line-height: 1.8em; /*background: #007bff;*/ } .w3copyright-agile p a { color: #9e3a18; } .w3copyright-agile p a:hover { color: #343a40; transition: 0.5s all; -webkit-transition: 0.5s all; -moz-transition: 0.5s all; -o-transition: 0.5s all; -ms-transition: 0.5s all; } .w3copyright-zhoujt { outline: none; padding: 1em; width: 85%; margin: 2em 1em auto; text-align: center; border-radius: 10px; }}@media only screen and (min-width: 768px) { input[type="text"] { font-size: 1em; margin: 1em 35%; padding: 1em; width: 28%; border-radius: 10px; } input[type="submit"] { font-size: 1em; color: #fff; background: #007bff; outline: none; border: none; cursor: pointer; padding: 1em; -webkit-appearance: none; width: 30%; margin: 2em 35%; border-radius: 10px; } input[type="submit"]:hover { background: #0000FF; -webkit-transform: translateY(8px); -ms-transform: translateY(8px); -o-transform: translateY(8px); transform: translateY(8px); -webkit-box-shadow: 0 3px 3px 0 rgba(0, 0, 0, 0.58); -moz-box-shadow: 0 3px 3px 0 rgba(0, 0, 0, 0.58); box-shadow: 0 3px 3px 0 rgba(0, 0, 0, 0.58); -webkit-transition: .5s all; -moz-transition: .5s all; -o-transition: .5s all; transition: .5s all; } .clear { clear: both; } .w3copyright-agile { margin: 2em 0 1em; text-align: center; } /*两个最下面提示黑白*/ .w3copyright-agile p { font-size: 1em; color: #343a40; line-height: 1.8em; } .w3copyright-agile p a { color: #343a40; } .w3copyright-agile p a:hover { color: #343a40; transition: 0.5s all; -webkit-transition: 0.5s all; -moz-transition: 0.5s all; -o-transition: 0.5s all; -ms-transition: 0.5s all; }}
2.4、打包代码
目录结构[root@Huawei ~/chatgpt/chatGPT]# tree ././|-- app.py|-- Dockerfile|-- __pycache__| `-- prod.cpython-39.pyc|-- requirements.txt|-- static| `-- style.css`-- templates `-- send.html3 directories, 7 files
三、部署项目
3.1、传统方式部署
安装虚拟环境 pip3 install virtualenv创建虚拟环境 virtualenv win_adduser进入虚拟环境 source /data/csweb/bin/activate退出虚拟环境 deactivate[root@windowsop-tx-9208 bin]# source /data/csweb/bin/activate(csgpt) [root@windowsop-tx-9208 bin]# 将Python3和pip3安装到此虚拟环境(csgpt) [root@Huawei ~/chatgpt]# which python3/data/wds/bin/python3(csgpt) [root@Huawei ~/chatgpt]# which pip3/data/wds/bin/pip3(csgpt) [root@Huawei ~/chatgpt]# 虚拟环境安装所需的包pip3 install -r requirement.txt创建虚拟环境启动的服务[root@Huawei ~/chatgpt]# cat /etc/systemd/system/csgpt_test.service[Unit]Description=csgpt test environmentAfter=syslog.target network.target[Service]User=rootGroup=rootType=simpleRestart=alwaysWorkingDirectory=/data/csgpt # 工作目录ExecStart=/data/csgpt/bin/python3 app.py runserver 0.0.0.0:6666 # 启动命令ExecStop=/bin/kill -15 $MAINPID # 安全模式杀进程StandardOutput=syslogStandardError=syslog#SyslogIdentifier=csgpt.comSyslogFacility=local0SyslogLevel=info[Install]WantedBy=multi-user.target[root@Huawei ~/chatgpt]#
3.2、docker部署
docker部署方便的很,下载docker就成,力荐docker
3.2.1、写好Dockerfile,用于构建编译
[root@Huawei ~/chatgpt/chatGPT]# cat Dockerfile FROM python:3.9WORKDIR /root/chatgpt/chatGPTCOPY requirements.txt ./RUN pip install --no-cache-dir -r requirements.txt -i https://pypi.douban.com/simple/COPY . .CMD [ "python", "./prod.py" ][root@Huawei ~/chatgpt/chatGPT]#
3.2.2、打包上传运行
# docker构建镜像docker build -t chatgpt:1.3 .# 查看镜像[root@Huawei ~/chatgpt/chatGPT]# docker images REPOSITORY TAG IMAGE ID CREATED SIZEchatgpt 1.3 933455e34545 26 hours ago 932 MB# 测试环境docker run -it --rm -p 8888:6666 chatgpt:0.1# 生产环境docker run -d -p 8888:6666 --name chatgpt2.3 chatgpt:1.3 # -d :使容器在后台运行 # -p :端口映射,即访问本机的前者(8888)相当于访问docker容器中的后者(6666)# 查看容器[root@Huawei ~/chatgpt/chatGPT]# docker psCONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMESaef043d82ddd chatgpt:1.3 "python ./prod.py" 26 hours ago Up 26 hours 0.0.0.0:6201->8888/tcp chatgpt2.3# docker查看镜像日志docker logs -f --since 30m aef043d82ddd# 删除测试后无用的容器docker ps -a | grep chatgpt1. | awk -F " " "{print $13}" | xargs docker rm# 停止类似Java的其他服务docker ps | grep java | awk -F " " "{print $NF}" | xargs docker stop# 进入docker镜像环境docker run -it chatgpt2.3 /bin/bashdocker exec -it e621d1e639b1 bash # 运行中的容器# docker查看镜像日志docker logs -f --since 30m aef043d82ddd
四、查看效果
除了机器人,整个这个还算是不错的
完活手工~
-
环球快资讯丨使用docker部署Python-Flask实现ChatGPT的使用
首先说下背景:自从申请ChatGPT到现在也有个把月了,余额一直还很多,想想三月下旬就过期了,还是计划把...
来源: -
今日要闻!关于nfs服务启动messages日志中报错-Unable to watch /proc/fs/nfsd/clients: No such file
操作系统环境:RedHatEnterpriseLinuxrelease8 xnfs-utils版本:nfs-utils-2 3 3-57 el8 x86_64最近笔者在服务器中安装了nf
来源: 环球快资讯丨使用docker部署Python-Flask实现ChatGPT的使用
今日要闻!关于nfs服务启动messages日志中报错-Unable to watch /proc/fs/nfsd/clients: No such file
【世界聚看点】特斯拉不好惹!网红车评人“蔡老板”被判道歉赔10万后:还没饶了他
环球热点评!阿里一面:你做过哪些代码优化?来一个人人可以用的极品案例
天天微头条丨豆瓣仅4分!《三体》动画宣布延播两周:3月4日恢复
全球新消息丨等待16年!好莱坞8.1分末日科幻大片《我是传奇》续集定了:“史皇”出演
【时快讯】罗永浩交个朋友公司被曝欠薪 员工:遭到暴力裁员
天天短讯!二次元真香升级!13代游戏本华硕天选4开启预约
大宇获恐怖电影《咒》IP授权:由《轩辕剑柒》主创张蓁元主导开发
全球观点:02月16日09时广东珠海疫情数据 阳了以后为什么会腰疼?应该怎么办?
树的子结构之先序遍历+二叉树的镜像+对称二叉树
快资讯丨一口气说出 6 种实现延时消息的方案,还有谁不会?!
快看:联发科一夜回到两年前:大家都不换新手机了
弟弟陪姐姐看病:双双确诊甲状腺癌
环球观点:RNG拖欠奖金再上热搜!前俱乐部选手站队喊话还钱
报道:父母高度近视:1岁婴儿近视600度
每日播报!Win10/11后:Linux启动AMD处理器fTPM出现同款间歇性卡顿
tplink路由器怎么重新设置密码?Tplink路由器如何桥接?
mbti哪个脾气最差?哪个mbti最容易抑郁症?
显卡驱动需要更新吗?显卡驱动怎么更新?
项羽墓在哪个地方?项羽墓为什么在山东?
卖惨是什么意思?卖惨的人是什么心理?
保龄球有几个孔?保龄球设备多少钱一套?
长安是唐朝的首都吗?长安是现在的哪个城市?
每日消息!【并查集】连通块中的数量
【热闻】(数据库系统概论|王珊)第三章关系数据库标准语言SQL:习题
Vue 组件之间传递参数
【世界聚看点】关于 layui 弹出一个 DOM 表单的问题
艾斯死的那一集是多少集?艾斯复活是哪一集?
世界最新:马斯克做出重要“交易”:开放北美全部特斯拉超充桩 换取补贴
【全球独家】5月上映!迪士尼《小美人鱼》真人电影新预告发布:特效惊艳
突破事业线
环球观天下!3000元以下唯一的16G内存手机!真我GT Neo5获得天猫京东销量冠军
死磕竞争对手ChatGPT!谷歌要求员工每天花2至4小时测试自家Bard AI
全球球精选!房地产市场支持政策需更精准
安卓导出已安装app的apk
模型预处理层介绍(2) - Hashing
世界信息:男子借朋友12万 1小时后借条变成白纸!网友:防不胜防
顶级富豪果然都惜命 扎克伯格个人安保费一年超1亿元
环球要闻:今起可提前预约个税办税:每天6-22点可在App预约
要闻:接棒年销26万台扫地机器人爆款单品!石头G10S Pure即将正式亮相
天天通讯!吉利中高端新能源系列定名“吉利银河”:每个人都仰望
全球信息:快速搭建一个网关服务,动态路由、鉴权,一网打尽!(含流程图)
全球播报:再有人问你抽象工厂设计模式,把这篇文章丢给他
环球观天下!时间是什么?时间同步是什么?GPS北斗卫星授时又是什么?
世界要闻:《分布式技术原理与算法解析》学习笔记Day13
诺如病毒进入高发期 学校、家庭如何做好预防?一文了解
你怕失业吗?马斯克炮轰人工智能:比核弹头更危险
巴菲特“黄金搭档”芒格盛赞:比亚迪在中国遥遥领先于特斯拉
40岁男子报复10岁小孩连划7车引围观:结局舒适了 网友点赞
《霍格沃茨之遗》更新后PC优化更差!玩家:游戏卡顿问题解决一下
快资讯丨再下一城!百度地图红绿灯倒计时上线兰州:实时读秒
最资讯丨下行5000兆 跟上行同速!谷歌美国推5Gbps光纤:每月850元
全球要闻:读Java实战(第二版)笔记11_语言特性和类库更新
片仔癀珍珠霜的功效
天天热头条丨HEU KMS Activator 28.0.0全能系统数字许可激活工具
CentOS7.9安装K8S高可用集群(三主三从)
Android JetPack~ LiveData (一) 介绍与使用
环球观热点:SDK多项目开发与联调
全球快看:期末复习——线程
环球热点评!5年前就已杀青 周星驰《美人鱼2》进入后期制作
谨慎升级 等了2个月的AMD新驱动疑似翻车:系统崩了
世界热议:央广网:“暴雪式”傲慢引众怒 或终将致其失去中国市场
要闻速递:中国移动:加速千兆网络全面普及 建成全球最大规模光网络
中国快递卷了15年:死死困住了一个50岁的老快递员
纽约黄金期货周三收跌1.1% 创五周来最低收盘价
1998年属虎的人2012年运程
今日聚焦!qq情侣网名 〈談情》**/|(說爰)ⅱ,
80年代的零食大全怀旧辣条_80年代的零食大全怀旧
【保姆级】Python最新版3.11.1开发环境搭建,看这一篇就够了(适用于Python3.11.2安装)
【天天新要闻】day10-1-中文乱码处理
实时焦点:一次学俩Vue&Blazor:1.4基础-响应式数据
数论模板
世界微速讯:2023年春运收官:40天发送旅客近16亿人次 大涨50%
【环球报资讯】数据结构刷题2023.02.15小记
给我两分钟的时间:微博风格九宫格:UICollectionView实现
《分布式技术原理与算法解析》学习笔记Day12
【算法训练营day45】LeetCode70. 爬楼梯(进阶) LeetCode322. 零钱兑换 LeetCode279. 完全平方数
香港2022年暴力罪案同比下降7.9%
观天下!探险的好处辩论赛,正方_探险的好处
全球播报:AMD RX 7600S游戏本显卡首测:远不如RTX 3060!高端弃疗了
世界速讯:10道恋爱送命题灵魂拷问ChatGPT:它的回答让我陷入沉思
马斯克向往每周只工作80小时!网友:驴都不敢这么用
每日速读!中国内地特供!Intel i5-13490F处理器图赏
天天快看:002. html篇之《表格》
当前视讯!力扣---3. 无重复字符的最长子串
今日热文:轻薄长续航!小新Air14超极本2023发布:标配13代酷睿+1TB SSD
普及1TB 联想小新2023笔记本、一体机价格汇总:最贵才8999元
每日资讯:8999元 联想小新Pro 27一体机发布:13代酷睿i9搭配Arc独显
环球微头条丨4199元起 小新14/16轻薄本2023发布:酷睿i5-1340P、高配1TB SSD
播报:三星Galaxy S23 Ultra发布 老外怒赞:安卓阵营老大
最资讯丨【LeetCode栈与队列#05】滑动窗口最大值
如何优雅的在 Word 中添加漂亮的代码?
今日热文:2023.02.15.差分
热头条丨公积金月汇缴额是什么意思
当前热讯:用微信传播盗版电影被查:向两百多人分享《流浪地球2》《满江红》链接
新资讯:日本独居雌长臂猿突然产崽!孩子的父亲竟还是自己的“爷爷”
环球最新:Lady Gaga《小丑2》剧照首曝:疯狂的小丑女登场!
环球速讯:联想小新官宣接入百度“文心一言”:可在桌面一键直达
当前通讯!新能源车企现最大跌幅背后:涨价、营销、刺激消费的“国补退坡游戏”