SpringBoot 讯飞星火AI WebFlux流式接口返回 异步返回 对接AI大模型 人工智能接口返回

介绍

用于构建基于 WebFlux 的响应式 Web 应用程序。集成了 Spring WebFlux 模块,支持响应式编程模型,构建非阻塞、异步的 Web 应用。WebFlux 使用了非阻塞的异步模型,能够更好地处理高并发请求。适合需要实时数据推送的应用场景。

WebClient 是 Spring WebFlux 中用于创建 WebClient 实例的构建器方法。用于发起 HTTP 请求的非阻塞、响应式的客户端,可以与 Web 服务进行交互,支持异步和响应式编程模型。

讯飞星火

官方文档:https://www.xfyun.cn/doc/spark/X1http.html
接口地址:https://spark-api-open.xf-yun.com/v2/chat/completions
在这里插入图片描述
在这里插入图片描述

效果图

流式异步返回数据
在这里插入图片描述

依赖

<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-webflux</artifactId>
</dependency>

构建请求体

/*** 构建消息体* @param userId 用户的唯一id,表示一个用户,user_123456* @param text 问题内容* @return*/
private JSONObject builderBody(String userId,String text){// 创建最外层的JSON对象并填充字段JSONObject jsonObject = new JSONObject();jsonObject.put("user", userId);jsonObject.put("model", "x1");jsonObject.put("stream", true);jsonObject.put("max_tokens", 4096);// 创建单个消息的JSON对象JSONObject messageObject = new JSONObject();messageObject.put("role", "user");messageObject.put("content", text);messageObject.put("temperature", "0.5");// 历史记录JSONObject test = new JSONObject();test.put("role", "user");test.put("content", "梅州城市为背景");test.put("temperature", "0.5");// 创建messages数组并将消息对象添加到数组中JSONArray messagesArray = new JSONArray();messagesArray.add(messageObject);messagesArray.add(test);// 将messages数组添加到最外层的JSON对象中jsonObject.put("messages", messagesArray);return jsonObject;
}

控制器

private final static  String APIPassword="gQnwqGhbiifKUgtxhQrXnb:JdDduuVNXTxduGIvwtorNjw";@GetMapping("/chat")
public Flux<String> chat(String text) {return   WebClient.builder().defaultHeader("Content-Type", "application/json; charset=UTF-8")  // 明确指定UTF-8.defaultHeader("Authorization","Bearer" + APIPassword).baseUrl("https://spark-api-open.xf-yun.com/v2/chat/completions").build().post() //post请求.accept(MediaType.TEXT_EVENT_STREAM)// 设置接受的响应类型.bodyValue(builderBody("123",text).toString()) //请求体内容.retrieve()  // 执行请求.bodyToFlux(String.class)  // 响应体转换成 String.map(s->s).timeout(Duration.ofSeconds(10))  // 设置请求超时时间,10秒.retry(3)  // 如果发生错误,最多重试3次.onErrorResume(WebClientRequestException.class, ex ->Flux.just(ex.getLocalizedMessage()))  // 处理 WebClient 请求错误.doOnTerminate(() -> {// 终止流时执行的操作,可能用于清理资源等}).doOnCancel(() -> {// 流取消时执行的操作}).doFinally(signalType -> {// 在流结束时执行的操作,包括正常完成、取消或出错等情况});
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/78995.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

模拟Sch LVS Sch 方法

Step1&#xff1a;打开calibre 打开一个terminal&#xff0c;进到想要做lvs的路径&#xff1a; 在terminal 敲入calibre -gui&#xff0c;产生calibre 界面 点击nmLVS&#xff0c;产生calibre LVS界面 Step2&#xff1a;LVS 界面设置1 LVS rules file&#xff1a;加载lvs规…

注解的定义

一、理论说明 1. 注解的定义 Java 注解是从 JDK 5.0 开始引入的一种元数据机制&#xff0c;它可以为代码添加额外的信息&#xff0c;这些信息不影响程序的运行逻辑&#xff0c;但可以在编译期、类加载期或运行期被读取和处理。注解本质上是一种特殊的接口&#xff0c;所有注解…

面试实践AND面经热点题目总结

1、对于Rocketmq消息积压、丢失如何解决&#xff1f; 消息积压原因以及解决方案 &#x1f3af; 产生原因&#xff1a; 消费者处理能力弱&#xff0c;消费速度远低于生产速度&#xff1b; 网络不稳定&#xff0c;消费者拉取消息失败&#xff1b; 消费端异常&#xff08;如处理…

【KWDB 创作者计划】使用Docker实现KWDB数据库的快速部署与配置

【KWDB 创作者计划】使用Docker实现KWDB数据库的快速部署与配置 前言一、KWDB介绍1.1 KWDB简介1.2 主要特点1.3 典型应用场景 二、环境介绍2.1 部署环境要求2.2 本地环境规划2.3 部署模式 三、部署Docker环境3.1 安装相关工具3.2 配置Docker软件源3.3 更新软件源3.4 安装Docker…

JWT深度解析:现代Web身份验证的通行证-优雅草卓伊凡

# JWT深度解析&#xff1a;现代Web身份验证的通行证 ## 一、JWT的本质与构成 ### 1.1 JWT的定义解析 JWT&#xff08;JSON Web Token&#xff09;是一种**开放标准&#xff08;RFC 7519&#xff09;**&#xff0c;用于在各方之间安全地传输信息作为JSON对象。这种信息可以被…

前端缓存踩坑指南:如何优雅地解决浏览器缓存问题?

浏览器缓存&#xff0c;配置得当&#xff0c;它能让页面飞起来&#xff1b;配置错了&#xff0c;一次小小的上线&#xff0c;就能把你扔进线上 bug 的坑里。你可能遇到过这些情况&#xff1a; 部署上线了&#xff0c;结果用户还在加载旧的 JS&#xff1b;接口数据改了&#xf…

2022年8月,​韩先超对中移信息进行微服务架构原理(Docker+k8s+DevOps+Go等)培训

2022年8月&#xff0c;​韩先超对中移信息进行微服务架构原理&#xff08;Dockerk8sDevOpsGo等&#xff09;培训 2022年8月&#xff0c;在企业数字化转型和云原生架构加速演进的背景下&#xff0c; 中移信息技术有限公司特别邀请云原生与DevOps领域专家 韩先超老师&#xff0c…

ComfyUI 学习笔记,案例 6 :FLUX 模型文生图

背景 刚开始了解 Comfy UI 的时候&#xff0c;随便找了一个资料&#xff0c;对着这篇 《Flux在ComfyUI里的下载与安装》 进行操作的&#xff0c;下载了这里面的模型到本机。 玩了几天&#xff0c;大概对 ComfyUI 有了一点了解&#xff0c;知道了 Flux 这是一个模型&#xff0…

Docker + Watchtower 实现容器自动更新:高效运维的终极方案

文章目录 前言一、Watchtower 简介二、Watchtower 安装与基本使用1. 快速安装 Watchtower2. 监控特定容器 三、Watchtower 高级配置1. 设置检查间隔2. 配置更新策略3. 清理旧镜像4. 通知设置 四、生产环境最佳实践1. 使用标签控制更新2. 更新前执行健康检查3. 结合CI/CD流水线 …

从易发性分析到灾后规划,AI大模型如何颠覆传统地质灾害防治?

地质灾害是指全球地壳自然地质演化过程中&#xff0c;由于地球内动力、外动力或者人为地质动力作用下导致的自然地质和人类的自然灾害突发事件。在降水、地震等自然诱因的作用下&#xff0c;地质灾害在全球范围内频繁发生。我国不仅常见滑坡灾害&#xff0c;还包括崩塌、泥石流…

第37次CCF第三题--模板展开--stringstream读取字符串

1 a hello 1 b world 2 c $a $b 1 d good $c 1 a hi 1 e good $c1 a hello 1 b world 2 c $a $b 3 c 1 a hi 3 c将会输出&#xff1a;10 和 7&#xff0c;对应的变量的值为&#xff1a; helloworld hiworld 需要注意的是&#xff0c;在使用间接赋值语句时&#xff0c;在变量的…

深度学习:智能车牌识别系统(python)

这是一个基于opencv的智能车牌识别系统,有GUI界面。程序能自动识别图片中的车牌号码,并支持中文和英文字符识别,支持选择本地图片文件,支持多种图片格式(jpg、jpeg、png、bmp、gif)。 下面,我将按模块功能对代码进行分段说明: 1. 导入模块部分 import tkinter as tk…

Missashe考研日记-day35

Missashe考研日记-day35 1 专业课408 学习时间&#xff1a;3h学习内容&#xff1a; 完结撒花&#xff01;&#xff01;今天把OS最后一节的内容学完了&#xff0c;操作系统也算是告一段落了&#xff0c;接下来是计网时间&#xff01;不过计网我是上学期才学过的&#xff0c;当…

【Bootstrap V4系列】学习入门教程之 组件-下拉菜单(Dropdowns)

Bootstrap V4系列 学习入门教程之 组件-下拉菜单&#xff08;Dropdowns&#xff09; 下拉菜单&#xff08;Dropdowns&#xff09;一、Overview 概述二、Accessibility 可访问性三、Examples3.1 Single button 单按钮3.2 Split button 分割按钮 四、Sizing 尺寸 下拉菜单&#x…

红外遥控与NEC编码协议详解

在我们日常生活中&#xff0c;电视遥控器、空调遥控器、风扇遥控器&#xff0c;几乎都离不开“红外遥控”这项技术。虽然我们每天都在用&#xff0c;但你知道里面是怎么通信的吗&#xff1f;本篇文章将带你了解红外遥控的工作原理&#xff0c;重点解析目前应用最广泛的红外编码…

深入剖析 I/O 复用之 select 机制

深入剖析 I/O 复用之 select 机制 在网络编程中&#xff0c;I/O 复用是一项关键技术&#xff0c;它允许程序同时监控多个文件描述符的状态变化&#xff0c;从而高效地处理多个 I/O 操作。select 作为 I/O 复用的经典实现方式&#xff0c;在众多网络应用中扮演着重要角色。本文…

【Linux系列】目录大小查看

&#x1f49d;&#x1f49d;&#x1f49d;欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…

《AI大模型应知应会100篇》第48篇:构建企业级大模型应用的架构设计

第48篇&#xff1a;构建企业级大模型应用的架构设计 摘要&#xff1a;本文将提供企业级大模型应用的端到端架构设计方案&#xff0c;从系统设计原则到技术栈选择&#xff0c;从高可用保障到安全合规&#xff0c;全面覆盖构建稳健、可扩展、安全的大模型应用所需的工程实践。适合…

人协同的自动化需求分析

多人协同的自动化需求分析是指通过技术工具和协作流程&#xff0c;让多个参与者&#xff08;如产品经理、开发人员、测试人员等&#xff09;在需求分析阶段高效协作&#xff0c;并借助自动化手段提升需求收集、整理、验证和管理的效率与质量。以下是其核心要点&#xff1a; 1. …

【战略合作】开封大学_阀门产业学院+智橙PLM

12月20日&#xff0c;在核电厂阀门系列团体标准启动会上&#xff0c;开封大学阀门产业学院与橙色云互联网设计有限公司达成战略合作。 以平台赋能行业&#xff0c;让阀门教育“有的放矢” 会议与会者包括&#xff1a; 开封大学副校长 李治 中国国际科技促进会标准化工作委员…