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

这篇具有很好参考价值的文章主要介绍了python+flask+eventSource打造流式chatGPT生成式API接口。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

后端用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、HTML、jquery 的 openAI 的 chatGPT API。

介绍

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

问题

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

方法

1、安装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","<br>")  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://www.toymoban.com/news/detail-444142.html

到了这里,关于python+flask+eventSource打造流式chatGPT生成式API接口的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

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

    vue2写法 vue3 setup写法

    2024年01月21日
    浏览(33)
  • 【GPT,Flask】用Python Flask结合OpenAI的GPT API构建一个可自主搭建的内容生成应用网站

    自己构建模型并进行训练需要很高的知识,技能和资源门槛。如今,通过OpenAI提供的API,则可以快速通过GPT能力构建可以提供内容生成服务的在线网站。这套框架可以提供给用户,用户可以利用该框架在自己的环境(比如自己的公司内)构建内容生成服务。你也可以自己上线

    2024年02月11日
    浏览(47)
  • 使用OkHttp流式请求OpenAI API(GPT API)接口

    因为 GPT 流式请求的出色交互体验,我们打算做一个开源基础应用,方便开发者快速集成项目。 本应用集成 ChatGPT API,使用模型为 gpt-3.5-turbo,项目代码为 Kotlin 语言开发的安卓应用。 人机交互的趋势已经到来,本应用框架也希望能帮助更多开发者快速集成 ChatGPT 体验到人机

    2024年02月11日
    浏览(30)
  • ChatGPT流式传输(stream=True)的实现-OpenAI API 流式传输

    默认情况下,当请求OpenAI的API时,整个响应将在生成后一次性发送回来。如果需要的响应比较复杂,就会需要很长时间来等待响应。 为了更快地获得响应,可以在请求API时选择“流式传输”。 要使用流式传输,调用API时设置 stream=True 。这将返回一个对象,以 data-only server-

    2024年02月08日
    浏览(61)
  • python flask生成被控服务端 开放接口 可以调用本地程序启动D盘的app.py文件,并生成一个前端文件,有一个启动按钮

    要创建一个使用 Flask 的被控服务端,开放接口以调用本地程序并启动 D 盘的  app.py  文件,以及生成一个带有启动按钮的前端文件,你需要做以下几个步骤: 设置 Flask 服务端 :创建一个 Flask 应用,并定义一个 API 接口来接收请求。 执行本地程序 :在 Flask 应用中,使用 

    2024年04月15日
    浏览(43)
  • OpenAI ChatGPT API + FaskAPI SSE Stream 流式周转技术 以及前端Fetch 流式请求获取案例

    这篇文章当时写得比较匆忙,这里进行一下更深入的补充 SSE 技术不是什么新鲜东西,就是一个 HTTP 请求和响应,关键就是响应这个环节,原始的响应都是一次性的,普通的响应是这样的: Nginx 是一个静态服务器,所谓静态服务器,就是将一个静态文件按照大小不同情况选择

    2024年02月08日
    浏览(38)
  • ASP.NET Core Web API 流式返回,实现ChatGPT逐字显示

    🏆作者:科技、互联网行业优质创作者 🏆专注领域:.Net技术、软件架构、人工智能、数字化转型、DeveloperSharp、微服务、工业互联网、智能制造 🏆欢迎关注我(Net数字智慧化基地),里面有很多 高价值 技术文章, 是你刻苦努力也积累不到的经验 ,能助你快速成长。升职

    2024年02月22日
    浏览(44)
  • 使用小程序的wx.request()请求chatGpt流式接口的实现

    使用小程序的中wx.request()请求chatGpt流式接口的实现 可以成功接收到数据,但是遇到了下面的问题,就是在接收的数据如果是中文会出现乱码,英文没有问题,可以正常解析出来。 大家有遇到这个问题吗,求解,求解…

    2024年02月12日
    浏览(30)
  • ChatGPT垂直行业私有数据知识库功能-咨询接口采用流式响应输出-JS和Golang实现流式响应

    近期开发私有数据知识库功能,想要实现和ChatGPT聊天效果类似的逐字流式输出展示效果。 GPT3.5本身就有流式聊天补全接口,后端Golang对接后,也需要能流式输出。下面就介绍下前端JS后端Golang来实现这种输出效果   大部分介绍是使用EventStream来实现,我现在不使用EventStream也

    2023年04月10日
    浏览(31)
  • 在Flask中构建API接口

    斜杠 以下两个路由的不同之处在于是否使用尾部的斜杠。 第一个路由的URL尾部有一个斜杠,看起来就像一个文件夹,访问一个没有斜杠结尾的URL时,Flask会自动进行重定向,在结尾加上一个斜杠。 第二个路由的URL没有尾部斜杠,因此其行为表现与一个文件类似,如果访问这

    2024年02月07日
    浏览(34)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包