返回顶部
首页 > 资讯 > 后端开发 > Python >python+flask+eventSource打造流式chatGPT生成式API接口
  • 506
分享到

python+flask+eventSource打造流式chatGPT生成式API接口

flaskpython后端 2023-09-02 07:09:20 506人浏览 八月长安

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

摘要

后端用python,前端用WEB,怎么打通chatGPT api连接? 如果你遇到这样的情况: 科学上网登chat.openai.com开启一个新聊天,总是出现网页错误,刷新几次就没有对话的想法了。 获取了chatGPT的APIkey,

后端python前端WEB,怎么打通chatGPT api连接?

如果你遇到这样的情况:

科学上网登chat.openai.com开启一个新聊天,总是出现网页错误,刷新几次就没有对话的想法了。

获取了chatGPT的APIkey,用网上一大堆PHP/JSP/CURL的代码去试,效果很差,不是反应慢,就是兼容性不好。

用python安装了openai模块,调用没问题,但自己的网站怎么调用呢?

准备工作:

科学上网此处省略一万字(有问题私信)

获取一个openai的apikey(点击这里)

python3.7+环境安装openai,flask,render_template,flask_cores

准备一个编辑器,推荐vs code

实现目标:

用自己的openai apikey,通过Python+flask+web,打造一套跨域的api外围接口

聊天GPTFlaskWebAPI

这是一个使用 python flask、htmlJquery 的 openAI 的 chatGPT API。

介绍

本代码实现任意前端web静态页面调用python版chatGPT API,方便网站将相关应用集成到自己的业务中。大致的需求是这样的:我有一个网站,但是在chatGPT无法访问的区域,我需要向代理服务器提交本地数据请求,得到答案,完成业务逻辑。

问题

当我们调用openAI API 时会发生以下情况:1、问题会等待很长时间。2、不稳定。3、存在封号危险。4、只能在本地使用,不能远程调用。5.PHP或其他请求版本存在各种问题。

方法

安装openAI的python版本,使用原模块调用,速度更快,兼容性更好,不会被阻塞。2、使用flask等python模块发布端口web服务。3、自己制作静态网页。可以使用html+jquery和eventSource从服务器向网页输出流信息。4、使用stream方式获取openAI的数据。

一个FLASK的基本架构

from flask import Flask, render_template, request, sessionimport flaskimport osimport openaiapp = Flask(__name__)app.config['SECRET_KEY'] = os.urandom(24)@app.route("/chatgpt",methods=["POST","GET"])

在网站前端使用的html+js,运用eventSource从S->B端的通信方式,基本的请求示例:

var source = new EventSource("Http://xxx.xxx.xxx:port/chatgpt?question="+q);source.onmessage = function(event){    if(event.data == "[DONE]"){       //do something..        source.close()    }else{        //show in some divs innerHTML    } }

在flask-web后端程序中,加入openai通信(聊天)的这一部分程序,进行调用,注意要使用流式操作,stream=true

def stream():  openai.api_key = "YOUR API-KEY"  response = openai.ChatCompletion.create(      model="gpt-3.5-turbo",      messages=[      {"role": "user", "content": question}      ],      temperature=0,      #max_tokens=1000,      stream=True,      #top_p=1,      #frequency_penalty=0,      #presence_penalty=0,      #user='Wemio机器人'  )  for trunk in response:      if trunk['choices'][0]['finish_reason'] is not None:          data = '[DONE]'      else:          data = trunk['choices'][0]['delta'].get('content','')      yield "data: %s\n\n" % data.replace("\n","
")
return flask.Response(stream(),mimetype="text/event-stream")

加入模板调用:

return render_template('chatpgt.html')#PAT:the page is in directory of "templates/"

最后运行这个应用:

app.run(host="0.0.0.0", port=5000, debug=True)

完整代码:

第一版在GitHub上,写得比较粗糙,第二版放在朋友的小工具箱web-tool里,可以测试使用

github GitHub - wemio/chatGPTFlaskwebapi: This a chatGPT API of openAI using python flask, HTML,jquery.

https://github.com/wemio/chatGPTFlaskWebAPI

web-tool

来源地址:https://blog.csdn.net/time_forgotten/article/details/130437413

--结束END--

本文标题: python+flask+eventSource打造流式chatGPT生成式API接口

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

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

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

  • 微信公众号

  • 商务合作