当前位置: 首页 > news >正文

小说在线阅读网站怎么做网络营销推广方案案例分析

小说在线阅读网站怎么做,网络营销推广方案案例分析,wordpress视频缩略图不显示,文件包上传的网站怎么做1、引言随着AI技术的崛起,我们也开始接触开发AI项目了。比如我使用的是springAI来调用大模型,通过一些定制化内容,得到比较有个性化的智能体。而调用大模型是我们后端的工作,那么如何将AI响应的内容返回给前端呢?我们当…

1、引言

        随着AI技术的崛起,我们也开始接触开发AI项目了。比如我使用的是springAI来调用大模型,通过一些定制化内容,得到比较有个性化的智能体。

        而调用大模型是我们后端的工作,那么如何将AI响应的内容返回给前端呢?我们当然可以直接调用完大模型后,等大模型响应完内容给我们的后端,然后后端再统一把消息返回给前端。这种方法虽然可行,但是在用户体验上就差很多了,如果后端要等大模型完整地返回内容的话,就要阻塞很久,那么用户端是无感知的,反而会觉得这个系统很差,要等这么久才能响应。

        所以我们就要达到现有较流行的打字机效果,就是AI响应一点内容,就给用户返回一些内容,要达到这种效果,就要用到SSE流式输出了。


2、包装AI响应的内容

本章节不对如何调用大模型重点讲解,后续会考虑发布相关博客,本章节之针对流式输出做讲解。所以对调用AI大模型的代码如果看不懂不需要太在意,只要知道AI输出的内容也是可以通过stream方法流式输出的即可。

    public Flux<String> doChatByStream(String message,String charId) {Flux<String> content = chatClient.prompt().user(message)//这里的advisors是单词发送执行的拦截器,指定了.advisors(advisor -> advisor.param(CHAT_MEMORY_CONVERSATION_ID_KEY, charId)//指定会话房间.param(CHAT_MEMORY_RETRIEVE_SIZE_KEY, 20))//指定记忆多少轮对话.stream()//使用流式输出.content();return content;}

代码解释:AI响应的内容是String类型的,通过调用一些函数,让Flux包装,这种其实就是响应式编程。


3、控制内容流式响应

在controller层执行,有三种方式:

@RestController
@RequestMapping("/ai/love_app")
@Slf4j
public class AiController {@Resourceprivate LoveApp loveApp;@GetMapping(value = "/doChat/sse", produces = MediaType.TEXT_EVENT_STREAM_VALUE)public Flux<String> chat(String message, String charId) {Flux<String> stringFlux = loveApp.doChatByStream(message, charId);// 返回响应return stringFlux;}@GetMapping("/doChat/sse2")public Flux<ServerSentEvent<String>> chatBySse2(String message, String charId) {Flux<ServerSentEvent<String>> serverSentEventFlux =loveApp.doChatByStream(message, charId).map(chunk -> {ServerSentEvent<String> result = ServerSentEvent.<String>builder().data(chunk).build();return result;});return serverSentEventFlux;}@GetMapping("/doChat/sse3")public SseEmitter chatBySseEmitter(String message, String charId) {SseEmitter sseEmitter = new SseEmitter(180000L);//超时时间loveApp.doChatByStream(message, charId).subscribe(chunk -> {   // 订阅数据流try {sseEmitter.send(chunk);// 发送数据到客户端} catch (Exception e) {sseEmitter.completeWithError(e);// 发送异常时,执行异常完成函数(手动关闭)log.error("发送异常:{}",e);}}, sseEmitter::completeWithError,sseEmitter::complete);return sseEmitter;}}

 (1)直接返回Flux对象,并添加请求头

(2)在Flux对象里面的具体响应数据再用一层ServerSentEvent包裹,不需要再加请求头


(3)专门用于SSE推流的类:SseEmitter(推荐,简单更灵活)

调用它的send函数主动向前端推送数据

 

http://www.dtcms.com/a/473263.html

相关文章:

  • 邵阳做网站建设优秀营销网站设计
  • 本溪 网站建设 做网站建地方门户网站
  • 制作一个网站需要多少小时如何建设本地网站
  • 做网站讯息制作h5的基本流程
  • 河南城乡建设部网站一定要用c 做网站吗
  • wordpress 插件 留言seo推广分析
  • 做家装壁纸的网站宇泽佛山网站建设
  • 创建一个网站的项目体现项目完成速度因素的网架厂家
  • 泰安网站开发公司cms视频系统大全
  • 太原网站优化怎么做网络seo优化公司
  • 网站全屏宽度是多少合适seo基础课程
  • 用手机建网站世界优秀摄影作品网站
  • php模板建站百度做网站续费费用
  • 专业做网站排名的人北京搜索引擎推广服务
  • wordpress适合下载站的主题国外购物网站app
  • php网站开发实例教程简介寮步做网站公司
  • 营销网站建设推广安徽省工程建设信息网职称查询
  • 摄影网站网址大全app电商网站
  • 信阳网站建设找汉狮建筑网站大全免费
  • 北京建设工程网站小程序软件开发制作
  • 下载网站备案的核验单网站历史快照
  • 2018年公司网站建设费分录国外的设计网站app吗
  • 网站怎么建立视频网站商城开发公司
  • 舟山网站建设重庆做企业网站设计的公司
  • 易做文学网站的logo网站功能定制合同
  • 铁岭做网站一般多少钱优良的网站邮箱服务器提供商isp
  • 单位网站建设要求手机版oa办公软件
  • 国外网站加速器小仙女12777 coon域名查询
  • 海南省住房城乡建设厅网站首页苏州网页设计培训
  • wordpress主题整站wordpress重定向seo