广告
返回顶部
首页 > 资讯 > 后端开发 > Python >Python Flask 封装ChatGPT流式输出接口
  • 359
分享到

Python Flask 封装ChatGPT流式输出接口

pythonflaskchatgpt 2023-09-08 10:09:40 359人浏览 泡泡鱼

Python 官方文档:入门教程 => 点击学习

摘要

首先, 恭喜你搜到了这篇文章, 因为, 我解决这个问题时, 也搜了很久的博客, 结果都无法正确实现 截至今日, 快有半年博客没有更新了, 今天忙里偷闲, 将最近在忙的事情做一个总结 之前搞了个域名,

首先, 恭喜你搜到了这篇文章, 因为, 我解决这个问题时, 也搜了很久的博客, 结果都无法正确实现

截至今日, 快有半年博客没有更新了, 今天忙里偷闲, 将最近在忙的事情做一个总结

之前搞了个域名, 做了个chatgpt的工具站, 欢迎大家体验, 可以评论区留下宝贵建议: www.ktatom.com

封装chatgpt的流式输出时, 碰到不少问题, 长话短说, 使用flask封装的代码如下:

        @self.blue_print.route('/tool/chatgpt/stream_qa', methods=['POST'])        def chatgpt_stream_qa():        from flask import request, Response            '''ChatGPT Prompt'''            logger.info('ChatGPT Prompt')            openai.api_key = "自己的key"            messages = request.JSON.get('messages', [])            response = openai.ChatCompletion.create(                model="gpt-3.5-turbo",                messages=messages,                temperature=0.7,                stream=True,                timeout=20            )            def generate():                for trunk in response:                    yield json.dumps(trunk) + '\n'            headers = {                'Content-Type': 'text/event-stream',                'Cache-Control': 'no-cache',                'X-Accel-Buffering': 'no',            }            return Response(generate(), mimetype="text/event-stream", headers=headers)

起初没有加headers参数, 结果是一段一段输出, 各位可以试一下不传headers的效果

header参数解析(来自ChatGPT):

1、'Content-Type': 'text/event-stream'这个参数指定了请求的内容类型。在这种情况下,'text/event-stream' 表示请求的内容是事件流(event stream)。事件流是一种在Http连接上持续发送事件的机制,通常用于服务器向客户端推送实时数据或事件。通过设置为 'text/event-stream',服务器可以告知客户端响应的内容遵循事件流的格式。2、'Cache-Control': 'no-cache'这个参数控制缓存的行为。'no-cache' 告诉客户端不要缓存响应,每次都要从服务器获取最新的内容。这可以确保客户端获得实时更新的事件流数据,而不是使用缓存的旧数据。3、'X-Accel-Buffering': 'no'这个参数是非标准的自定义头部,通常用于特定的服务器配置。在这种情况下,'X-Accel-Buffering' 设置为 'no' 表示服务器禁用了加速缓冲(accelerated buffering)。加速缓冲是一种在服务器和客户端之间缓冲响应数据的机制,以提高性能和吞吐量。通过禁用加速缓冲,服务器可以实现更实时的事件流传输,避免数据在缓冲区中滞留。这些参数的设置可以根据具体需求进行调整,上述设置适用于需要实时推送事件流的情况,并确保客户端获得最新数据而不受缓存或缓冲的影响。

此处特别感谢@临枫541同学, 前端代码都是由该同学完成, 目前大二, 实力十分强悍, 手动打call👍

总结

多用ChatGPT
2、不会科学上网, 可以用我的, 直达链接: www.ktatom.com
3、看了博客还是不会的, 评论区留下联系方式, 我加你, 主打真实可靠

来源地址:https://blog.csdn.net/qq_44193969/article/details/130813808

--结束END--

本文标题: Python Flask 封装ChatGPT流式输出接口

本文链接: https://www.lsjlt.com/news/399746.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作