当前位置:   article > 正文

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

fastgpt java

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

一、先看效果

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

二环境搭建:

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

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

二、JAVA连接FastGPT关键代码

  1. Flux<String> response = webClient.post()
  2. .uri("/chat/completions")//请求uri
  3. .header("Authorization", "Bearer fastgpt-bfjg4AUxE2ocCUXXeT91proKcnc0t86y9mmPBraOp8waDnPZpQMrw")//设置成自己的key,获得key的方式可以在下文查看
  4. .header(HttpHeaders.ACCEPT, MediaType.TEXT_EVENT_STREAM_VALUE)//设置流式响应
  5. .contentType(MediaType.APPLICATION_JSON)
  6. .body(BodyInserters.fromValue(paramJson))
  7. .retrieve()
  8. .bodyToFlux(String.class)
  9. .flatMap(res->{
  10. if (StrUtil.equals("[DONE]",res)){//[DONE]是消息结束标识
  11. return Flux.empty();
  12. }
  13. ObjectMapper objectMapper = new ObjectMapper();
  14. try {
  15. //System.out.println(res);
  16. JsonNode jsonNode = objectMapper.readTree(res);
  17. Answer aiAnswer = objectMapper.treeToValue(jsonNode, Answer.class);
  18. List<Choices> choicesList = aiAnswer.getChoices();
  19. Choices choices = choicesList.get(0);
  20. Delta delta = choices.getDelta();
  21. String json = objectMapper.writeValueAsString(delta);
  22. System.out.println(json);
  23. return Flux.just(json);
  24. } catch (JsonProcessingException e) {
  25. e.printStackTrace();
  26. }
  27. return Flux.empty();
  28. });

四、测试

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

五:源代码下载

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

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/盐析白兔/article/detail/1008386
推荐阅读
相关标签
  

闽ICP备14008679号