这么好看的客服组件,还是觉得接入ChatGPT,把它放在博客中那就完美了

编程知识 更新时间:2023-04-25 16:09:50

我们在使用ChatGPT时,它的返回方式是采用流式回复。感觉这个效果不错。之前做的全都是的等全部结果请求完成,再一次性返回给用户。今天就通过流式回复的效果重写之前的程序。

前端

前端采用一个网页版的客服组件,整体的效果如下:

前端的样式的这里就不过多介绍,主要看看关键的JS代码。

writeMessage方法主要的作用是,把输入框的内容在发送出去时,把内容渲染到消息框中,关键代码如下:

autoReply方法主要的作用是,构造自动回复的消息内容,然后把回复的消息内容渲染到消息框中,关键代码如下:

后端

后端我们采用fastapi框架,通过调用OpenAI的接口返回请求的接口,而这次改用数据流的方式返回,关键代码如下:

上述方法是定义了请求OpenAI接口获取返回结果,stream=True是开启流式回复。

fastapi构造请求接口,关键代码如下:

接口方式采用GET,并接收一个路径参数question。到此,后端的代码已经完成了。

那问题来了,如何把这个客服组件接入ChatGPT呢?

回到前端代码中autoReply方法进行修改即可。采用EventSource去请求接口,并把结果渲染。

::: block-1

什么是 EventSource?

javascript EventSource 是一个内置在现代浏览器中的 API,它允许服务器向客户端发送实时事件。该 API 建立一个持久化的连接,通过该连接,服务器可以随时向客户端推送数据。该 API 建立的连接基于 HTTP 协议,而不是 WebSocket,因此不需要使用其他库或框架,即可在应用程序中使用它。
:::

好了,了解什么是 EventSource,我们看看它是如何用的,关键代码如下:

代码的13-19行就是通过EventSource请求后端接口,当返回的结果为[DONE]就关闭流。否则就往消息框渲染数据。guid()方法是生成一个uuid,这样就可以通过uuid获取到页面上的dom元素进行消息的渲染。

这样就完成了客服组件与chatGPT的整合了。来看看整体的效果吧。

今天的内容就分享到这里,如果觉得内容对你有所帮助,请点赞和关注吧。

更多推荐

这么好看的客服组件,还是觉得接入ChatGPT,把它放在博客中那就完美了

本文发布于:2023-04-19 10:09:00,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/6f0598f83676bc68be5c070945aebc0a.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:放在   那就   客服   把它   组件

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!

  • 87665文章数
  • 20272阅读数
  • 0评论数