Python Flask 封装ChatGPT流式输出接口

这篇具有很好参考价值的文章主要介绍了Python Flask 封装ChatGPT流式输出接口。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

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

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

之前搞了个域名, 做了个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👍

总结

1、多用ChatGPT
2、不会科学上网, 可以用我的, 直达链接: www.ktatom.com
3、看了博客还是不会的, 评论区留下联系方式, 我加你, 主打真实可靠文章来源地址https://www.toymoban.com/news/detail-508538.html

到了这里,关于Python Flask 封装ChatGPT流式输出接口的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 后端flask,前端vue,实现post请求chatgpt流式响应

    vue2写法 vue3 setup写法

    2024年01月21日
    浏览(41)
  • chatGPT流式输出的几种方式

    前言 chatGPT是一款高效强大的语言模型,能够给我们的生活带来极大的改变。无论是学习知识还是工作效率,chatGPT都能为我们提供有力的帮助。它可以帮助我们快速获取所需的知识,同时可以帮助我们提高工作效率,包括写文章、文案、推荐策略、生成代码、写周报,流程图

    2024年02月06日
    浏览(42)
  • chatGPT流式输出前端实现fetch、SSE、websocket

    fetch 本身不直接支持流式输出,但你可以使用 ReadableStream 和 TextDecoder 等 Web Streams API 来实现类似的效果。 在 SSE 中,浏览器通过发送 HTTP GET 请求到服务器上特定的 SSE 端点(endpoint),然后服务器通过该连接发送事件(event)和相关数据到客户端,故SSE 主要使用 GET 请求。E

    2024年02月04日
    浏览(39)
  • 使用SSE技术调用OPENAI接口并实现流式输出,用PHP语言实现

    作为AI语言模型服务提供商,OpenAI 提供了一系列的 API 接口,其中大部分需要通过 HTTP 请求访问。对于大量数据的请求,传统的同步请求会导致网络响应变慢,无法满足实时数据处理和分析的需求。因此,为了优化这些接口的调用效率,我们可以利用 SSE(Server Sent Events) 技术来

    2024年02月11日
    浏览(45)
  • chatgpt 逐字输出 使用fetch/eventSource/fetchEventSouce进行sse流式处理

    前端使用vue 先贴最后成功使用的 使用fetchEventSource方法 参考代码:https://blog.csdn.net/cuiyuchen111/article/details/129468291 参考/下载文档:https://www.npmjs.com/package/@microsoft/fetch-event-source?activeTab=readme 以下为后端接口要求 前端代码 遇到的问题: 1.只调用一次事件 但fetch请求发送了两次或

    2024年02月07日
    浏览(41)
  • Java调用ChatGPT(基于SpringBoot和Vue)实现可连续对话和流式输出

    源码及更详细的介绍说明参见Git上的 README.md 文档 https://github.com/asleepyfish/chatgpt 本文Demo(SpringBoot和Main方法Demo均包括)的Git地址:https://github.com/asleepyfish/chatgpt-demo 流式输出结合Vue前端的Demo的Git地址:https://github.com/asleepyfish/chatgpt-vue 后续使用方法和api版本更新均在Github的READM

    2024年02月09日
    浏览(48)
  • Server-Sent Events(SSE) 入门、原理、介绍、类ChatGpt流式输出实现

    一、引言 在现代Web应用程序中,实时数据传输和实时通信变得越来越重要。为了实现这种实时通信,多种技术应运而生,如WebSocket、长轮询和Server-Sent Events(SSE)。在本文中,我们将重点探讨Server-Sent Events,一种基于HTTP的实时通信协议。 二、技术背景 Server-Sent Events(SSE)它

    2024年02月08日
    浏览(50)
  • PHP实现chatGPT流式输出代码,OpenAI对接,支持GPT3.5/GPT4

     源码下载地址:https://gitee.com/haoyachengge/chatgpt-speed.git 本文是sse实现方式,非常的简单。当然也可以用websocket方式实现,我也会继续更新

    2024年02月14日
    浏览(38)
  • Java调用ChatGPT(基于SpringBoot),实现可连续对话和流式输出的ChatGPT API(可自定义实现AI助手)

    源码及更详细的介绍说明参见Git上的 README.md 文档 https://github.com/asleepyfish/chatgpt 本文Demo(SpringBoot和Main方法Demo均包括)的Git地址:https://github.com/asleepyfish/chatgpt-demo 流式输出结合Vue前端的Demo的Git地址:https://github.com/asleepyfish/chatgpt-vue 后续使用方法和api版本更新均在Github的READM

    2023年04月13日
    浏览(51)
  • Java调用ChatGPT(基于SpringBoot和Vue)实现连续对话、流式输出和自定义baseUrl

    源码及更详细的介绍说明参见Git上的 README.md 文档 https://github.com/asleepyfish/chatgpt 本文Demo(SpringBoot和Main方法Demo均包括)的Git地址:https://github.com/asleepyfish/chatgpt-demo 流式输出结合Vue前端的Demo的Git地址:https://github.com/asleepyfish/chatgpt-vue 后续使用方法和api版本更新均在Github的READM

    2024年02月16日
    浏览(37)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包