美文网首页
这么好看的客服组件,还是觉得接入ChatGPT,把它放在博客中那

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

作者: cf6d95617c55 | 来源:发表于2023-04-13 17:57 被阅读0次

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

前端

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


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

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

writeMessage方法

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

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的整合了。来看看整体的效果吧。

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

本文由mdnice多平台发布

相关文章

  • 小程序客服接入

    最近接入了小程序客服,源码放在这里以备后用

  • element 源码学习二 —— 简单组件学习

    上一篇博客中学习了项目的结构,这篇博客来学几个简单的组件的实现。 在上一篇博客中我们提到了组件的源码都是存放在 p...

  • ChatGPT教程之深入了解魔术背后的技术

    解开谜团:深入探索 ChatGPT 的技术奇迹。 ChatGpt 无处不在,无论是在播客、博客、YouTube 还...

  • 学习一下markdown

    想让博客的排版好看点 以前用新浪博客觉得它的排版不好看,也没去研究有什么改进的办法。现在觉得以后可能会经常写数学公...

  • 我把它放在

    整个一天 我让自己归于平静 因为 我已把想念挥霍 一丝不剩 我把它放在早安里 随着清晨的第一缕阳光 把它放在晚安里...

  • 微信限制 ChatGPT 小程序,谷歌以“声誉风险”为由宣布不推

    ChatGPT 走红后,微信也出现了不少相关小程序,甚至还有用户将 ChatGPT 接入微信。但据报道,目前微信似...

  • chatGPT为什么能快速出圈?

    为什么chatGPT能够这么火?现在全网都在谈chatGPT,不管是科技界,财经界,还是自媒体人,职场人,都在谈,...

  • 关于把引用的组件不要放在render中

    我们拿ant design的form表单来举例 如果你把const写在这里,那么每次redux跟新组件的时候,re...

  • 微信支付

    如何成为微信支付商户的方法: 腾讯客服-微信支付商户申请接入信息汇总:腾讯客服-微信支付商户申请接入信息汇总 腾讯...

  • iOS 组件化开发--初识

    初识组件化开发 公司最近在做的工程采用组件化开发的架构模式,那什么是组件化开发呢?顾名思义,组件就是把之前都放在主...

网友评论

      本文标题:这么好看的客服组件,还是觉得接入ChatGPT,把它放在博客中那

      本文链接:https://www.haomeiwen.com/subject/arzaddtx.html