【RuoYi-SpringBoot3-Pro】:AI 能力再扩展,一个方法打通 n8n 工作流

简介: RuoYi-SpringBoot3-Pro 集成 n8n,通过一个 Webhook 方法实现 AI 能力扩展。Java 端轻量触发,复杂 AI 工作流由 n8n 可视化编排,支持文本处理、文件上传等场景,灵活高效,助力企业级应用快速集成自动化能力。

【RuoYi-SpringBoot3-Pro】:AI 能力再扩展,一个方法打通 n8n 工作流

为什么要在 RuoYi-SpringBoot3-Pro 里集成 n8n?

n8n 是一个开源的工作流自动化平台,我在下面的文章中已经做了介绍,感兴趣的小伙伴可以看下,这里不做敖述。

RuoYi-SpringBoot3-Pro作为一个企业级的快速开发框架,本身已经接入 AI 对话能力 ,但是仅限于 AI 对话,无法实现复杂的 AI 功能,集成 Spring AI 又让框架显得太过笨重,所以这里通过引入 n8n 来实现 AI 能力的扩展。Java 端只负责触发,具体的 AI 功能全部在 n8n 里实现。

实现方案

1. RuoYi-SpringBoot3-Pro 添加处理方法

ruoyi-common 模块的 com.ruoyi.common.utils.ai 包下新增了一个 N8n 工具类,核心就一个 webhook 方法:

/**
     * 通用 Webhook 调用接口
     *
     * @param baseUrl   n8n 服务地址 (如: https://n8n.example.com)
     * @param webhookId Webhook ID
     * @param token     认证 Token (可选,如果配置了则添加到请求头 n-token)
     * @param payload   请求体 (JSON 对象)
     * @return 响应内容 (文本)
     */
    public static String webhook(String baseUrl, String webhookId, String token, JSONObject payload) {
   
        // 构建请求 URL
        String url = baseUrl + "/webhook/" + webhookId;

        // 构建请求
        HttpRequest request = HttpRequest.post(url)
                .header("Content-Type", "application/json")
                .header("Accept", "application/json")
                .body(JSONUtil.toJsonStr(payload));

        // 如果配置了 token,添加到请求头
        if (StrUtil.isNotBlank(token)) {
   
            request.header("n-token", token);
        }

        // 发送请求
        try (HttpResponse response = request.execute()) {
   
            if (!response.isOk()) {
   
                throw new RuntimeException("请求失败: " + response.getStatus() + " " + response.body());
            }
            return response.body();
        }
    }

请求接口baseUrlwebhookId 分开传,是为了方便配置化管理。baseUrl 可以放在配置文件里,而 webhookId 则根据不同的业务场景使用不同的值。

Token 认证:n8n 的 Webhook 支持设置认证头,我这里用的是自定义的 n-token 请求头。你也可以根据自己的安全策略改成 Bearer Token 或者 Basic Auth。

payload 请求参数:与 n8n 工作流业务处理的参数一致。

返回值处理:直接返回响应体的文本内容。因为 n8n 工作流的输出可能是各种格式——纯文本、JSON、甚至 HTML,所以这里不做解析,交给调用方自己处理。

2. n8n 添加测试工作流

重点是使用 Webhook 触发器,配置参考:

3. 调用工作流

JSONObject jsonObject = new JSONObject();
jsonObject.put("markdown", "## 编写一篇以幼儿教育为主题的文章");
String body = N8n.webhook("http://n8n.test.com", "Webhook ID", "token", jsonObject);

4. 一些建议

  • 生产环境一定要配置 Token:Webhook 暴露在公网上,没有认证的话谁都能调用
  • 设置合理的超时时间:AI 类的工作流执行时间可能比较长,注意调整 HTTP 客户端的超时配置
  • 做好异常处理:网络问题、n8n 服务不可用等情况都要考虑到
  • 日志记录:关键的 Webhook 调用建议记录请求和响应日志,方便排查问题

进阶:支持文件上传

有些场景下,我们需要把文件传给 n8n 进行处理(比如 OCR 识别、图片处理、文档分析等)。为此,工具类中也扩展了支持文件上传的方法 webhookWithFile

/**
 * 带文件上传的 Webhook 调用接口
 */
public static String webhookWithFile(String baseUrl, String webhookId, String token, JSONObject payload, java.io.File file) {
   
    // 内部封装为 Attachment 列表调用通用接口
    return webhook(baseUrl, webhookId, token, payload, java.util.Collections.singletonList(new Attachment("file", file, file.getName())));
}

使用示例:

// 准备参数
JSONObject payload = new JSONObject();
File file = new File("/tmp/invoice.png");

// 调用 n8n
String result = N8n.webhookWithFile("http://n8n.test.com", "Webhook ID", "token",, payload, file);

总结

这次新增的 n8n 集成功能,本质上是把复杂的 AI 编排逻辑从 Java 代码里抽离出来,交给更适合做这件事的工具。Java 端保持简洁,只负责触发和接收结果;复杂的工作流在 n8n 里可视化配置,改起来方便,调试也直观。

往期教程合集

RuoYi-SpringBoot3-Pro

目录
相关文章
|
23天前
|
Java 程序员 微服务
【RuoYi-SpringBoot3-Pro】:热更新,设置一次,效率翻倍
【RuoYi-SpringBoot3-Pro】提升开发效率必备:热更新配置指南!告别手动重启,详解Spring Boot DevTools与JRebel插件的使用与对比,实现代码修改即时生效,大幅提升开发体验。免费+高效方案一键掌握!(239字)
124 3
【RuoYi-SpringBoot3-Pro】:热更新,设置一次,效率翻倍
|
23天前
|
SQL 人工智能 Java
【RuoYi-SpringBoot3-Pro】:多租户功能上手指南
RuoYi-SpringBoot3-Pro集成MyBatis-Plus多租户插件,自动注入tenant_id过滤条件,实现数据隔离。通过简单配置即可开启多租户,支持系统表免隔离、超级管理员跨租户查看,提升SaaS开发效率。结合AI建表工具,快速完成数据库初始化。
160 7
|
17天前
|
机器学习/深度学习 人工智能 计算机视觉
YOLO26改进 - 注意力机制 | 多扩张通道细化器MDCR 通过通道划分与异构扩张卷积提升小目标定位能力
本文介绍了一种在YOLO26目标检测模型中引入高效解码器模块EMCAD的创新方法,以提升模型在资源受限场景下的性能与效率。EMCAD由多个模块构成,其中核心的EUCB(高效上卷积块)通过上采样、深度可分离卷积、激活归一化和通道调整等操作,兼顾了特征质量与计算成本。实验结果显示,该模块在显著减少参数与FLOPs的同时仍具备优异性能。文章还提供了完整的YOLO26模型集成流程、配置和训练实战。
YOLO26改进 - 注意力机制 | 多扩张通道细化器MDCR 通过通道划分与异构扩张卷积提升小目标定位能力
|
17天前
|
机器学习/深度学习 计算机视觉 网络架构
YOLO26改进 - 注意力机制 |融合HCF-Net维度感知选择性整合模块DASI 增强小目标显著性
本文介绍将HCF-Net中的维度感知选择性融合(DASI)模块集成至YOLO26检测头,通过通道分区与Sigmoid自适应加权,融合高/低维及当前层特征,显著提升红外小目标检测精度,在SIRST数据集上超越主流方法。(239字)
|
18天前
|
人工智能 前端开发 测试技术
Violit: Streamlit杀手,无需全局刷新,构建AI快捷面板
Violit 是新一代 Python Web 框架,融合 Streamlit 的简洁语法与 React 的响应式性能。首创 O(1) 信号状态架构,零重运行、无需 `@cache`/`key`/回调,支持桌面原生应用与 30+ 主题,开箱即用、极速如光。
137 15
|
1月前
|
人工智能 前端开发 Java
【RuoYi-SpringBoot3-Pro】:接入 AI 对话能力
RuoYi-SpringBoot3-Pro 内置 OpenAI 工具类,支持同步/流式对话、多角色消息与代理配置,兼容 OpenAI 及第三方 API,开箱即用,助力开发者快速集成 AI 聊天功能。
190 0
|
Java Spring
【SpringBoot】SpringBoot自定义banner,成千上万种可供选择,当然也可以自定义生成哦
【SpringBoot】SpringBoot自定义banner,成千上万种可供选择,当然也可以自定义生成哦
2299 1
|
4月前
|
人工智能 运维 Java
Spring AI Alibaba Admin 开源!以数据为中心的 Agent 开发平台
Spring AI Alibaba Admin 正式发布!一站式实现 Prompt 管理、动态热更新、评测集构建、自动化评估与全链路可观测,助力企业高效构建可信赖的 AI Agent 应用。开源共建,现已上线!
5729 80
|
5月前
|
XML Java Nacos
Spring Boot 整合Nacos 版本兼容适配 史上最详细文档
本文介绍SpringBoot整合Nacos的完整流程,涵盖Nacos下载安装、配置中心与服务发现集成、版本兼容性问题及实战配置。重点解决SpringBoot 3.3.0与Nacos版本适配难题,推荐使用Spring Cloud Alibaba方案,并提供项目开源地址供参考学习。
|
17天前
|
Ubuntu Linux 算法框架/工具
超详细!OFA 视觉问答(VQA)模型部署教学(避坑完整版)
本文详解OFA视觉问答(VQA)模型在ModelScope平台的完整部署教程:涵盖Linux环境搭建、Miniconda虚拟环境配置、严格匹配依赖版本(transformers 4.48.3等)、禁用自动依赖覆盖、输入格式规范及避坑指南(含5类高频问题的现象+原因+解法),附可直接运行的Python脚本,新手友好,开箱即用。
266 15