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

JAVA连接FastGPT实现流式请求SSE效果

FastGPT 是一个基于 LLM 大语言模型的知识库问答系统,提供开箱即用的数据处理、模型调用等能力。同时可以通过 Flow 可视化进行工作流编排,从而实现复杂的问答场景!

一、先看效果

真正实流式请求,SSE效果,SSE解释:SSE(Server-Sent Events)是一种用于实现服务器主动向客户端推送数据的技术,也被称为“事件流”(Event Stream)。它基于 HTTP 协议,利用了其长连接特性,在客户端与服务器之间建立一条持久化连接,并通过这条连接实现服务器向客户端的实时数据推送。

二环境搭建:

在使用JAVA连接FastGPT之前,需要有FastGPT环境,FastGPT环境搭建可以参考如下文章:

FastGTP环境搭建,可直接使用在项目上

二、JAVA连接FastGPT关键代码

Flux<String> response = webClient.post().uri("/chat/completions")//请求uri.header("Authorization", "Bearer fastgpt-bfjg4AUxE2ocCUXXeT91proKcnc0t86y9mmPBraOp8waDnPZpQMrw")//设置成自己的key,获得key的方式可以在下文查看.header(HttpHeaders.ACCEPT, MediaType.TEXT_EVENT_STREAM_VALUE)//设置流式响应.contentType(MediaType.APPLICATION_JSON).body(BodyInserters.fromValue(paramJson)).retrieve().bodyToFlux(String.class).flatMap(res->{if (StrUtil.equals("[DONE]",res)){//[DONE]是消息结束标识return Flux.empty();}ObjectMapper objectMapper = new ObjectMapper();try {//System.out.println(res);JsonNode jsonNode = objectMapper.readTree(res);Answer aiAnswer = objectMapper.treeToValue(jsonNode, Answer.class);List<Choices> choicesList = aiAnswer.getChoices();Choices choices = choicesList.get(0);Delta delta = choices.getDelta();String json = objectMapper.writeValueAsString(delta);System.out.println(json);return Flux.just(json);} catch (JsonProcessingException e) {e.printStackTrace();}return Flux.empty();});

四、测试

服务启运之后,访问:http://localhost:8080/ck/chat?message=马云是谁

五:源代码下载

下载地址:链接:https://pan.baidu.com/s/1o9TPXNliZMYIqZHxGFK1FQ?pwd=2chg 
提取码:2chg

http://www.lryc.cn/news/389579.html

相关文章:

  • 二分查找1
  • 什么美业门店管理系统好用?2024美业收银系统软件排名分享
  • 【文件上传】
  • Golang 单引号、双引号和反引号的概念、用法以及区别
  • linux和mysql基础指令
  • JDK 为什么需要配置环境变量
  • ViewBinding的使用(因为kotlin-android-extensions插件的淘汰)
  • IOS Swift 从入门到精通:ios 连接数据库 安装 Firebase 和 Firestore
  • QT4-QT5(6)-const char* QString 乱码转换
  • 报错:RuntimeError_ cuDNN error_ CUDNN_STATUS_EXECUTION_FAILED
  • 黑马点评项目总结1-使用Session发送验证码和登录login和 使用Redis存储验证码和Redis的token登录
  • 【大模型】Vllm基础学习
  • 使用vue动态给同一个a标签添加内容 并给a标签设置hover,悬浮文字变色,结果鼠标悬浮有的字上面不变色
  • 【ajax实战06】进行文章发布
  • Codeforces Round 954 (Div. 3)(A~E)
  • 基于Java微信小程序同城家政服务系统设计和实现(源码+LW+调试文档+讲解等)
  • [21] Opencv_CUDA应用之使用Haar级联的对象检测
  • CXL:拯救NVMe SSD缓存不足设计难题-2
  • Opencv学习项目6——pyzbar
  • Switch 刷安卓11 (LineageOS 18.1) 大气层双系统图文教程
  • Spring Boot与Spring Batch的深度集成
  • RTSP协议在视频监控系统中的典型应用、以及视频监控设备的rtsp地址格式介绍
  • Kotlin基础——异步和并发
  • 消防认证-防火卷帘
  • SpringBoot3.3集成knif4j-swagger文档方式和使用案例
  • 老年服务与管理实训室:制定教学模式
  • 4、DDD、中台和微服务的关系
  • 【ACM出版,马来西亚-吉隆坡举行】第四届互联网技术与教育信息化国际会议 (ITEI 2024)
  • 走进IT的世界
  • Linux 时区文件编译器 zic【man 8 zic】