dify的ChatFlow自定义上传图片并通过HTTP请求到SpringBoot后端

server/2024/12/26 18:49:46/

前情提要

  1. 交互场景:dify的ChatFlow上传文件(本示例是单张图片),通过HTTP请求至SpringBoot后端
  2. dify版本:0.13.2
  3. python版本:3.12.7

1. 自定义上传变量

在【开始】节点自定义变量单文件上传变量file
在这里插入图片描述

2. 下接HTTP请求节点

在这里插入图片描述
BODY要选择form-data,类型选择file,值选择你在【开始】节点那边定义的file变量。

3. SpringBoot接收参数

后端直接用MultipartFile来接收即可。
在这里插入图片描述

4. 本示例使用过程异常介绍

  1. dify使用sys.file系统变量问题
    官方文档中介绍的方式是使用系统变量sys.file,并且BODY是选择了binary,但是我试过了是不可以,请求到后端那边,后端无论是用MultipartFIle或者MultipartHttpServletRequest或者HttpServletRequest都会报错:
2024-12-24 10:22:45.684 ERROR 26176 --- [nio-9180-exec-4] o.a.c.c.C.[.[.[/].[dispatcherServlet]    : Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed; nested exception is org.springframework.web.multipart.MultipartException: Current request is not a multipart request] with root cause

在这里插入图片描述
2. SpringBoot参数接收
若是dify使用自定义上传变量,那后端用MultipartHttpServletRequest或者HttpServletRequest接收请求参数也会报错。常见的错误有两个:
1. Reached Maxium Retries (3) for URL xxxx
2. binary not found
后面尝试了多次,最终用MultipartFile参数接收成功了。


http://www.ppmy.cn/server/153404.html

相关文章

XSS跨站脚本攻击漏洞练习

一、XSS(跨站脚本攻击)漏洞介绍 1、漏洞原理 XSS 是跨站脚本攻击(Cross-Site Scripting)的缩写,为避免与前端叠成样式表的缩写"CSS"冲突,故又称XSS。XSS 漏洞主要是因为 Web 应用程序没有对用户…

解决 vue3 中 echarts图表在el-dialog中显示问题

原因: 第一次点开不显示图表,第二次点开虽然显示图表,但是图表挤在一起,页面检查发现宽高只有100px,但是明明已经设置样式宽高100% 这可能是由于 el-dialog 还没有完全渲染完成,而你的 echarts 组件已经开始尝试渲染图…

Elasticsearch-脚本查询

脚本查询 概念 Scripting是Elasticsearch支持的一种专门用于复杂场景下支持自定义编程的强大的脚本功能,ES支持多种脚本语言,如painless,其语法类似于Java,也有注释、关键字、类型、变量、函数等,其就要相对于其他脚本高出几倍的性…

未来网络技术的新征程:5G、物联网与边缘计算(10/10)

一、5G 网络:引领未来通信新潮流 (一)5G 网络的特点 高速率:5G 依托良好技术架构,提供更高的网络速度,峰值要求不低于 20Gb/s,下载速度最高达 10Gbps。相比 4G 网络,5G 的基站速度…

工厂常用软件系统大全中英文全称对照表及功能介绍应用场景ERP MES WMS SCADA IOT SAP等软件系统介绍

1. ERP(Enterprise Resource Planning)企业资源计划: ○ 功能:整合企业的各项资源和业务流程,涵盖从采购、生产到销售的各个环节。包括财务管理、生产计划、采购管理、库存管理、销售管理、人力资源管理等。 ○ 应用场…

vue3封装而成的APP ,在版本更新后,页面显示空白

一、问题展示 更新之后页面空白,打不开 ,主要是由于缓存造成的 二、解决办法 1、随机数代码实现 使用随机数来动态的生成静态资源目录名可以避免浏览器缓存,但同时每次也会导致浏览器每次都下载最新的资源。如果静态资源过大,可…

springboot 3 websocket react 系统提示,选手实时数据更新监控

构建一个基于 Spring Boot 3 和 WebSocket 的实时数据监控系统,并在前端使用 React,可以实现选手实时数据的更新和展示功能。以下是该系统的核心设计和实现思路: 1. 系统架构 后端 (Spring Boot 3): 提供 WebSocket 服务端,处理…

数据结构基本认识与必要知识点准备工作

什么是数据结构? 在一些特定的、特殊的需求场景下,我们以往所学的数据类型,无法基于需求合理地组织数据,此时就需要我们直接设计一套新的数据组织形式来解决问题,也就是数据结构. 主要学习内容 1.数据结构的内容: 线性表 队列 数组 树与二叉树 图 2.算法的内容: 查找 排…