跟月影学前端智能体开发
月影
波波熊科技联合创始人
2361 人已学习
新⼈⾸单¥59
登录后,你可以任选4讲全文学习
课程目录
已更新 30 讲/共 40 讲
跟月影学前端智能体开发
15
15
1.0x
00:00/00:00
登录|注册

24|多轮对话:API 读写分离设计

你好,我是月影。
接下来我们继续实现复杂的多轮对话。在这一讲里,我们在深入业务前,需要解决一个技术难题。
还记得我们在使用 Ling 的时候,推荐大家用 Server-Sent Events 模式,因为 Server-Sent Event 是现代浏览器支持的协议,前端处理比较简单。
但是,Server-Sent Events 有个弊端,那就是根据规范,它只支持 GET 请求。这是因为,SSE 的设计初衷就是客户端建立一个单向连接从服务器接收事件,而这个连接只能通过 GET 请求发起,因为它是用来“获取资源”的,服务器通过流式传输的方式持续返回数据。
对于前面的波波熊学伴产品而言,由于孩子问的问题内容通常比较简单,所以用 GET 请求的问题不大。因为简单的参数我们完全可以通过浏览器的 URL 查询传递参数。
然而对于面试官这种需求,因为我们提交回答的内容可能会很长,甚至未来有可能提交图片之类非文本的内容,所以通过 GET 的方式就不再合适,我们需要采用 POST 方法提交数据。
那么我们这个时候就要做一个读写分离的处理,通过 POST 请求提交数据,建立 EventSource 通道,然后再通过通道来读取流式数据。
在 AI 应用的技术架构中,这实际上是非常常用的一种接口设计范式。因为通常 GET 请求处理 AI 的流式推理的时间,远比 POST 提交用户请求和数据的时间要长。这么设计之后,我们可以让读取数据不会阻塞整个业务流程,也就意味着用户可以提交数据后离开页面,等待 server 的更新,server 更新完成后,再通过轮询或者浏览器自身的消息机制告诉用户。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
  • 解释
  • 总结

1. API 读写分离设计解决多轮对话中的技术难题,处理 GET 和 POST 请求的数据提交和读取。 2. 采用读写分离的设计范式在AI应用的技术架构中是常用的,可以提高用户体验,避免阻塞整个业务流程。 3. 通过读写分离设计,用户可以提交数据后离开页面,等待服务器的更新,提高了系统的效率和用户体验. 4. EventChannel 类的设计包括 init 方法和 getStream 方法,用于处理异步读取和存储流数据。 5. 服务端通过 /chat 方法接收消息并创建 EventChannel,通过 /event 方法实现流式 GET 方法,将内容发送给前端。 6. 读写分离设计在多轮对话中的应用,通过 EventChannel 实现异步读取和存储流数据,提高系统效率和用户体验. 7. ChatDisplay 组件用于显示聊天记录,监听消息变化,自动滚动到底部并在首次变化时触发内容变化事件. 8. MessageInput 组件实现了发送消息的功能,提供了简洁的用户界面和交互体验.

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《跟月影学前端智能体开发》
新⼈⾸单¥59
立即购买
登录 后留言

精选留言

由作者筛选后的优质留言将会公开显示,欢迎踊跃留言。
收起评论
显示
设置
留言
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部