让你的Chatgpt飞起来

本文介绍了如何通过优化PythonFlask中的Server-SentEvents流处理,结合Redis发布订阅机制提高ChatGPT响应速度。后续引入GunicornHTTP服务器,显著提升了性能,实测响应时间从30秒降低至1秒以内。
摘要由CSDN通过智能技术生成

图片

最近一直在想怎么优化chatgpt在猫说AI的响应速度,参考了很多开源项目在流式对话的处理,对比我的项目进行了优化,下面说说优化的思路:

以下是一个简单的Python Flask应用程序,用于实现SSE(Server-Sent Events)流式对话的例子:

 

python复制代码

from flask import Flask, Response, render_template
import time

app = Flask(__name__)

@app.route('/')
def index():
return render_template('index.html')

@app.route('/stream')
def stream():
def generate():
while True:
yield "data: {}\n\n".format("Hello, client!")
time.sleep(1)

return Response(generate(), mimetype='text/event-stream')

if __name__ == '__main__':
app.run(debug=True)

在这个例子中,我们创建了一个简单的Flask应用程序,包含两个路由。/路由用于渲染一个HTML模板,/stream路由用于实现SSE流式对话。

这是对话的最初版,我们发现这里有个问题,time.sleep(1)每输出一次,就要睡眠,不管你这里是毫秒还是1秒,只要这儿不改,那基本没法优化,实测响应很慢,而且是一段或者一个字一个字输出,用户可能需要等待半天才能得到响应的结果。

那怎么去解决这个问题呢,看了不少开源项目的实现,发现一个很不错的方案,就是redis!没错,乍一看,哎这货不是做缓存的么,但他还有一个发布订阅机制!

这里我们可以创建一个channel去订阅它,然后在返回消息里面去监听它!

这样就省去了time.sleep的时间。

这样修改完毕后效果很哇塞,刚开始生成全部文字需要30多秒,现在直接省去一半的耗时!这样在用户体验方面就会好很多。

第一步优化就结束了。

由于是python flask应用,一直觉得python慢,但其实对于chatgpt而言更多的耗时在网络IO方面。但默认的flask应用用于开发是可以,但是用于生产它的性能和稳定性就会差很多,固又继续探索。

紧接着又发现了一个好用的pythonHTTP服务器,它叫Gunicorn,首先我们让chatgpt给我们介绍一下它:

图片

说白了就是它性能很高,且它配合gevent 可以实现轻量级的线程,极少的资源消耗,但是给大家说个坑,这货只能在linux下使用。

历尽千辛万苦终于全部优化完了,最后尽量减少线程间变量的传递来进一步减少耗时和内存占用。最后直接上实测结果:

图片

最初的效果得30秒,现在一对比,一个天上一个地下。得到响应最多只需要两秒,全部响应完实测最低1秒,最多不到10秒

猫说AI现在注册即送300积分,每日签到免费用chatgpt,手机电脑都能用哦

  • 11
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值