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

javaweb调用dify接口并流式返回

dify的接口就是sse接口。

流式返回就是以sse的方式返回

环境:spring-boot(spring-web)、okhttp、搭建好的dify服务器

    @ApiOperation(value = "SSE示例:持续推送简单消息")@GetMapping(value = "/sse-demo", produces = MediaType.TEXT_EVENT_STREAM_VALUE)public SseEmitter sseDemo() // 1.调用dify前,准备sse接口,需要直接返回SseEmitter emitter = new SseEmitter(0L);// 2.异步调用dify的工作流,使用okhttpnew Thread(() -> {// 2.1初始化OkHttpClient client = new OkHttpClient.Builder().connectTimeout(30, TimeUnit.SECONDS).readTimeout(0, TimeUnit.SECONDS)  // 0 表示长连接.writeTimeout(30, TimeUnit.SECONDS).build();// 2.2拼请求(这里省略,这里直接写json字符串了)Request request = new Request.Builder().url("http://172.16.1.10/v1/workflows/run").post("{" +"  \"inputs\": {" +"    \"uploaded_sop\": [" +"      {" +"        \"type\": \"document\"," +"        \"transfer_method\": \"remote_url\"," +"        \"url\": \"https://xxxxx.oss-cn-hangzhou.aliyuncs.com/1761187985649.docx\"" +"      }" +"    ]" +"  }," +"  \"response_mode\": \"streaming\"," +"  \"user\": \"123456\"" +"}").addHeader("Accept", "text/event-stream").addHeader("Authorization", "Bearer app-yXUMZtSl1Rpl86RTq0UMnMUF").build();// 2.3发请求try (Response response = client.newCall(request).execute()) {if (!response.isSuccessful()) {emitter.completeWithError(new RuntimeException("AI服务调用失败,状态码:" + response.code()));return;}// 2.4流式读取BufferedSource source = response.body().source();while (!source.exhausted()) {String line = source.readUtf8Line();if (line == null) {break;}if (!line.isEmpty()) {emitter.send(SseEmitter.event().id(UUID.randomUUID().toString()).name("message").data(line).reconnectTime(3000));}}} catch (Exception e) {log.error("SSE 推送异常", e);emitter.completeWithError(e);} finally {emitter.complete();}}).start();// 4.直接返回return emitter;}

提示:

不能用hutool的httprequest发请求,他是同步阻塞的。就算用了bodystream也没有用。

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

相关文章:

  • 网站技术部做什么网站如何做入支付接口
  • 网站建设主流开发语言毕设帮做网站
  • 上海网站开发企业七牛wordpress后台无法登录
  • 什么网站能接工地做注册免费网站
  • 智慧物业管理系统优化营商环境
  • 1024是什么意思?
  • ICCV 2025 最佳论文系列整理:聚焦计算机视觉前沿突破
  • 公司网站属于什么类型河北省住房和城乡建设厅网站
  • 黄石企业做网站专业网站建设服务商
  • 计算机毕设JAVA——旅游推荐管理平台(基于SpringBoot+Vue前后端分离的项目)
  • 全国网站建设公司wordpress自定义文章链接地址
  • Wireshark 网络抓包分析:JSON 和 HTTPS!
  • 厦门做网站价格wordpress缩略图设置
  • 创建公司网站2021还适合开网店吗
  • 网站建设与熊掌号未来的关系上海网站开发报价
  • 密码转换方法
  • 【DeepSeek-OCR】光学Token:长上下文建模的范式转变
  • 网站开发的前台开发工具erlang做网站优势
  • 个人备案 做网站济南建设信息网官网
  • typora的基本用法
  • 网站后台权限设计医院网
  • 蓝山网站建设wordpress目录说明
  • 网站开发demo版本手机网站有什么好处
  • app网站制作要多少钱重庆有专业做网站的吗
  • 网站浏览速度代刷网站是怎么做的
  • 【北京迅为】iTOP-4412精英版使用手册-第六十一章 PWM操作
  • 建一个营销网站的步骤确定网站建设的目的
  • 做网站 业务流程图wordpress+万能搜索页
  • 监控网站开发上海市建筑装饰工程集团有限公司
  • 网上怎样做电缆网站团队拓展活动游戏