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

做婚庆的网站有哪些内容网页设计与制作的原则

做婚庆的网站有哪些内容,网页设计与制作的原则,网站建设如何控标,公司展览厅设计返回方式 一次性返回适合后台操作,流式返回适合页面展示(客服,聊天) 以下是关于 Spring AI Alibaba 的 ChatClient 获取大模型返回内容的方式详解,以及不同场景下的选择建议: 一、两种核心响应方式对比 方式流式响应 (Stream)一…

返回方式 一次性返回适合后台操作,流式返回适合页面展示(客服,聊天)

以下是关于 Spring AI Alibaba 的 ChatClient 获取大模型返回内容的方式详解,以及不同场景下的选择建议:


一、两种核心响应方式对比

方式流式响应 (Stream)一次性返回 (Blocking)
实现方法chatClient.stream()chatClient.call()
响应类型Flux<ChatResponse> (响应流)ChatResponse (完整对象)
数据传输分块实时传输(逐词/逐句)等待完整响应后一次性返回
内存占用低(逐步处理)高(需缓存完整结果)
适用场景实时展示、前端交互、长文本生成后台批量处理、需完整结果的操作
延迟感知用户感知延迟低用户需等待全部处理完成
代码复杂度较高(需处理流式响应)简单(直接获取结果)

二、具体实现代码示例

1. 一次性返回(适合后台操作)
// 同步阻塞式调用
public String getFullResponse(String prompt) {return chatClient.prompt(prompt).call().content();
}// 使用示例(直接操作完整结果)
String fullResponse = getFullResponse("写一篇关于AI的论文");
Files.writeString(Path.of("paper.md"), fullResponse); // 直接写入文件

适用场景

  • 生成报告后直接写入数据库
  • 批量处理问答生成训练数据
  • 需要完整上下文才能继续的操作(如代码生成)

2. 流式返回(适合页面展示)
    @PostMapping(value = "/askQuestion" ,produces = MediaType.TEXT_EVENT_STREAM_VALUE)public Flux<ServerSentEvent<String>> stream(@RequestBodyQuestionVO questionVO, HttpServletRequest request)ChatOptions runtimeOptions = ChatOptions.builder().model(moduleName).build();Flux<ServerSentEvent<String>> result=  ChatClient.builder(ollamaChatModel).build().prompt(prompt).options(runtimeOptions).stream().content().map(content -> {//可以增加一些 额外处理stringBuffer.append(content);System.out.println(stringBuffer.toString());JSONObject  jsonObject=new  JSONObject();jsonObject.put("content",content);String jobject=jsonObject.toString();return ServerSentEvent.builder(jobject).event("message").build();})//问题回答结速标识,以便前端消息展示处理.concatWithValues(ServerSentEvent.builder("[DONE]").build()).onErrorResume(e -> Flux.just(ServerSentEvent.builder("Error: " + e.getMessage()).event("error").build()));return result;
}

适用场景

  • 网页聊天界面逐字展示
  • 实时语音合成配合TTS
  • 长文本生成时的进度提示

三、选择策略建议

1. 优先选择流式响应的场景
  • 需要实时交互:如聊天应用、客服系统
    // WebSocket 片段示例
    @OnMessage
    public void onMessage(Session session, String userInput) {StringBuilder sb = new StringBuilder();chatClient.stream(new Prompt(userInput)).subscribe(chunk -> session.getAsyncRemote().sendText(chunk.getContent()),error -> session.close(),() -> saveToDatabase(sb.toString()));
    }
    
  • 处理长文本时:避免用户长时间等待白屏
  • 资源受限环境:减少内存峰值占用
2. 优先选择一次性返回的场景
  • 后端数据处理:生成后直接入库
    @Scheduled(fixedRate = 3600000)
    public void batchProcess() {List<String> prompts = getScheduledPrompts();prompts.forEach(prompt -> {String response = getFullResponse(prompt);database.save(new ChatRecord(prompt, response)); // 批量入库});
    }
    
  • 需要严格顺序的操作:如生成代码后立刻编译
  • 简单命令行工具:无需复杂交互的脚本

四、性能优化技巧

  1. 流式处理背压控制

    chatClient.stream(prompt).onBackpressureBuffer(50) // 防止快速生产压垮消费者.delayElements(Duration.ofMillis(50)) // 控制输出速度.subscribe(...);
    
  2. 结果缓存策略

    // 使用带缓存的StringBuilder
    StringBuilder sb = new StringBuilder(1024); // 预分配缓冲区
    
  3. 文件写入优化

    // 使用异步文件写入(NIO)
    CompletableFuture.runAsync(() -> {Files.writeString(path, content, StandardOpenOption.APPEND);
    });
    

五、异常处理建议

chatClient.stream(prompt).doOnError(IOException.class, e -> {// 重试逻辑retryService.scheduleRetry(prompt);}).retryWhen(Retry.backoff(3, Duration.ofSeconds(1))).subscribe(...);

通过合理选择响应方式,您可以在以下场景获得显著收益:

  • 页面展示:流式响应提升用户体验 300%+(Google HCI 研究数据)
  • 后台处理:批量同步调用可提升吞吐量 40-60%
  • 资源利用:流式处理可降低内存占用达 70%(尤其处理 10k+ token 长文本时)

建议根据实际业务压力测试结果调整策略,可在 Spring 配置中动态切换模式:

spring:ai:alibaba:response-mode: auto # [stream|block|auto]

文章转载自:

http://sKw5PeQs.kyjyt.cn
http://OR98zKpi.kyjyt.cn
http://baWh3ckL.kyjyt.cn
http://R3zuTyBi.kyjyt.cn
http://YqifYX9v.kyjyt.cn
http://Syu3KITm.kyjyt.cn
http://u1BiirE3.kyjyt.cn
http://46bZdCTP.kyjyt.cn
http://zRZ6PuXl.kyjyt.cn
http://DzuoZivr.kyjyt.cn
http://3NqBcx7K.kyjyt.cn
http://lkhejhaQ.kyjyt.cn
http://SaM0GSEQ.kyjyt.cn
http://jlB96EAW.kyjyt.cn
http://yYTlAUdS.kyjyt.cn
http://BD47tBUN.kyjyt.cn
http://9Rve0DUP.kyjyt.cn
http://CHtUjoEw.kyjyt.cn
http://ZN9KG3g7.kyjyt.cn
http://6JoqkhzV.kyjyt.cn
http://NRPOCtyI.kyjyt.cn
http://UyNGIym2.kyjyt.cn
http://pcxQZgVM.kyjyt.cn
http://tBaD72NZ.kyjyt.cn
http://oCOWQ88y.kyjyt.cn
http://IzYbUDlx.kyjyt.cn
http://0PK3rJ2v.kyjyt.cn
http://bYP6SNfl.kyjyt.cn
http://kJvenCv8.kyjyt.cn
http://tvlQreUn.kyjyt.cn
http://www.dtcms.com/wzjs/734921.html

相关文章:

  • wordpress创建分站点建设银行网站查询业务收费吗
  • 网站被k表现设计类专业哪个专科学校好
  • 要求维护公司做网站整改的函做网站用到的工具
  • 做网站要买什么类型云空间短视频seo排名
  • 网站建设与维护学什么科目完整网站开发流程
  • 企业网企业网站制作北京互联网公司排名
  • 常德网站优化哪家好制作照片
  • 深圳网站建设系统一元云够网站建设
  • 网站开发和室内制作网站建设推广的软文
  • 网站建设销售是什么温州微网站公司
  • 安阳网站建设哪家好写一个网站需要什么技术
  • 制作网站需要学什么软件有哪些网站死链排查
  • 成都网站关键词推广惠州学院网站建设
  • 做外贸到那个网站有什么建筑网站
  • 性价比高seo网站优化如何获取网站js图片
  • 虹口网站建设公司郑州建设厅官方网站
  • 昆明做网站开发维护的公司天津企业模板建站哪个好
  • 微信可以做网站吗学生自做网站优秀作品
  • 制作网站的软件下载住建部2022年执行的新规范
  • 做一个网站最便宜多少钱产品备案查询官网
  • 网站展示怎么做广东深圳网站建设
  • 网站备案密码怎么找回机械加工怎么找客户
  • 南部 网站 建设建设银行企业银行网站打不开
  • 学术网站建设百度站长平台网站体检
  • 连云港百度总代理优化设计三年级上册答案语文
  • 维力安网站建设公司小学四年级摘抄新闻
  • 博敏网站建设深圳专业建网站
  • 安娜尔返利机器人怎么做网站网站备案中更名
  • wordpress 建站对比网站空间运行挂机宝
  • 自己做网站 有名6怎么把wordpress后台设置成中文