当前位置: 首页
AI教程
Tinyflow实现AI流程编排实战教程

Tinyflow实现AI流程编排实战教程

热心网友 时间:2026-07-08
转载

基于若依plus、JDK17与SpringBoot3 4 1,采用Tinyflow实现AI流程编排。Tinyflow支持Java和前端,可自定义节点并执行智能体编排。实战涵盖引入依赖、设计表结构、生成代码、定义执行、保存与发布接口及测试验证,最终成功跑通完整工作流。

本次从入门到实战,我们选用了若依plus、JDK17以及SpringBoot 3.4.1这一组合技术栈,这几款最新版本搭配运行,效率表现非常出色。

接下来介绍本文的主角:Tinyflow。目前市面上工作流组件种类繁多,但Tinyflow的独特优势在于同时支持Java前端与后端——后端只需引入依赖,前端则可兼容Vue或React。其设计理念与Dify、Coze的工作流高度相似,核心功能包括智能体编排,并支持自定义节点。这一特性在实际开发中至关重要,因为业务场景往往无法被标准化流程完全覆盖。

此外,Spring AI Alibaba也在推进类似功能,基于Spring AI Alibaba Graph实现,但客观来说,目前仍处于完善阶段,生产环境建议优先考虑Tinyflow。

好,闲话少叙,下面直接进入实战环节。

demo版

项目成功启动后,通过浏览器访问“http://localhost:port”即可看到界面。在页面上新增节点,随后点击运行测试。测试通过后,再点击保存。检查数据库,即可看到数据已被成功插入——整个流程完整跑通。

接下来,我们查看运行过程中生成的JSON结构:

{"nodes":[{"id":"node_CVKeWeJL8jn5cGr4","position":{"x":-83,"y":67},"data":{"title":"开始节点","description":"开始定义输入参数","expand":true,"parameters":[{"name":"username","dataType":"String","refType":"input","id":"YtkNFKFFC5hh4zAh","required":true},{"name":"password","dataType":"String","refType":"input","id":"YW0JonLnPtsDVRlp","required":true}]},"type":"startNode","selected":false,"measured":{"width":305,"height":238},"dragging":false},{"id":"node_Lmg446ujJkBFTq7s","position":{"x":333,"y":68},"data":{"title":"结束节点","description":"结束定义输出参数","expand":true,"outputDefs":[{"name":"用户名","dataType":"String","refType":"ref","id":"0FqjBTXWXwmNHvOm","ref":"node_CVKeWeJL8jn5cGr4.username"},{"name":"密码","dataType":"String","refType":"ref","id":"jdXNtiAiLAqP1uto","ref":"node_CVKeWeJL8jn5cGr4.password"}]},"type":"endNode","selected":true,"measured":{"width":368,"height":238},"dragging":false}],"edges":[{"markerEnd":{"type":"arrowclosed","width":20,"height":20},"source":"node_CVKeWeJL8jn5cGr4","target":"node_Lmg446ujJkBFTq7s","id":"p1QfMcJuAkHG9XN7","selected":false}],"viewport":{"x":269.9146606773976,"y":109.93970251055521,"zoom":0.8705505632961242}}

该JSON结构清晰完整,开始节点定义了输入参数(username和password),结束节点引用了这些参数作为输出,中间通过一条边连接,构成了简明的工作流骨架。

在实际操作中,我们将其拆分为七个步骤。步骤虽多,但每个环节都不复杂,下面逐一讲解。

第一步:引入依赖

首先在pom.xml中定义版本号:

<tinyflow.version>1.0.8tinyflow.version>

接着引入核心依赖:

<dependency><groupId>dev.tinyflowgroupId><artifactId>tinyflow-ja va-coreartifactId><version>${tinyflow.version}version>dependency>

第二步:表设计

我们需要创建一张表来存储流程数据。这里定义了ai_workflow表,包含流程ID、名称、节点数据、状态、描述等基础字段,同时预留了租户ID、部门、创建者等通用字段,便于后续业务扩展:

CREATETABLE`ai_workflow` ( `flow_id`bigintNOTNULLCOMMENT'流程id', `flow_name`varchar(50)DEFAULTNULLCOMMENT'流程名称', `graph` jsonDEFAULTNULLCOMMENT'节点数据', `status`intDEFAULT'0'COMMENT'状态 0->草稿 1->发布', `description`varchar(255)DEFAULTNULLCOMMENT'描述内容', `tenant_id`varchar(20)DEFAULTNULLCOMMENT'租户id', `create_dept`bigintDEFAULTNULLCOMMENT'创建部门', `create_by`bigintDEFAULTNULLCOMMENT'创建者', `create_time` datetimeDEFAULTNULLCOMMENT'创建时间', `update_by`bigintDEFAULTNULLCOMMENT'更新者', `update_time` datetimeDEFAULTNULLCOMMENT'更新时间', `del_flag`char(1)DEFAULT'0'COMMENT'删除标志(0代表存在 2代表删除)',PRIMARYKEY (`flow_id`)) COMMENT='AI流程编排';

第三步:代码生成

这一步最为便捷。直接使用代码生成器,将对应的Controller、Service、Mapper一键生成,然后拷贝到项目对应目录即可,无需手动编写任何基础的CRUD代码。

第四步:执行流程接口

在控制器层定义了一个/excute接口,接收AiWorkflowExcuteBo参数,调用Service执行流程。实现层目前先保留一个壳子,具体执行逻辑可根据业务需求后续填充。

@PostMapping("/excute")publicR>excute(@RequestBodyAiWorkflowExcuteBo bo) {returnR.ok(aiWorkflowService.excute(bo));}

第五步:保存结果接口

流程执行完成后,需要将结果持久化。该接口与前面的执行接口设计思路一致,功能侧重点在于保存。

/*** 保存结果**@parambo*@return*/ @PostMapping("/sa veResult") publicR sa veResult(@RequestBodyAiWorkflowBo bo) {returntoAjax(aiWorkflowService.sa veResult(bo));}

第六步:发布流程接口

流程从草稿状态变为已发布状态,需要单独的接口触发。这里使用PUT方法,仅需传递流程ID即可。

/** * 发布流程 * *@paramflowId 流程id *@return */@PutMapping("/release/{flowId}")publicR release(@PathVariable("flowId")LongflowId){ returntoAjax(aiWorkflowService.release(flowId)); }

第七步:功能测试

至此,基本接口已经齐备。测试时,依次验证以下接口:查询接口、流程详情接口、新增接口、修改接口、删除接口、执行流程接口、保存结果接口、发布流程接口。最后检查数据库表,确认数据是否写入成功,各字段是否正常。

至此,Tinyflow结合若依plus的AI流程编排已完整跑通。从手动引入依赖、设计库表、生成代码,到定义核心的执行、保存、发布接口,再到最终测试验证——整个流程梳理下来,相信你对工作流在业务中的落地方式有了直观认识。接下来,可以根据实际业务场景添加自定义节点,让该框架真正服务于业务需求。

来源:https://juejin.cn/post/7528500530852511784

游乐网为非赢利性网站,所展示的游戏/软件/文章内容均来自于互联网或第三方用户上传分享,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系youleyoucom@outlook.com。

同类文章
更多
Claude Code 必知的14个高效工作流,让你的开发效率提升300%

Claude Code 必知的14个高效工作流,让你的开发效率提升300%

Claude Code 常用工作流 先分享几项核心判断:Claude Code 真正强大的地方,并非仅仅在于它能编写代码——而是它让“编码”这件事本身变得更加高效且可控。你大概率遇到过这类场景:接手一个陌生项目,花了一整天才能理清架构;线上出现报错,翻遍日志也找不到根本原因;想要重构遗留代码,又担心

时间:2026-07-09 17:49
阿里云通义AIGC平台完全指南:设计师AI生产力革命

阿里云通义AIGC平台完全指南:设计师AI生产力革命

一、写在前面:为什么设计师需要关注AIGC? 如果你还在手动一张一张制作海报、反复修改客户口中“感觉不对”的配色方案、为电商详情页准备几十张不同场景的产品图——那么你一定经历过这些痛点: 创意瓶颈:脑海中有画面,但手绘无法呈现 重复劳动:调整尺寸、更换背景、批量生成变体消耗了大量时间精力 成本焦虑:

时间:2026-07-09 16:48
零基础毕设代码二次开发:3文件定位法及Vue/Java修改对照表

零基础毕设代码二次开发:3文件定位法及Vue/Java修改对照表

每年一到毕业季,计算机专业的同学总会陷入一个共同的怪圈:从 GitHub 上扒下来一套代码,或者用 AI 生成一个项目,看起来挺完整的,可导师一句“加个筛选条件”或“换个页面颜色”,瞬间就懵了——不敢改,不会改,怕改崩。是不是很熟悉? 一、为什么AI生成的毕设代码你 "不敢改 "? 1 1 毕业生的三大

时间:2026-07-09 16:46
反向海淘订单系统:状态机与分布式事务实战设计

反向海淘订单系统:状态机与分布式事务实战设计

先分享一个反直觉的结论:反向海淘订单管理的真正挑战,往往不在于业务逻辑本身,而在于状态流转。一个订单的生命周期拉长到跨国运输,中间涉及的环节多、系统多、参与者多,状态稍有错乱就可能引发连锁事故。Taocarts团队在实践中踩了不少坑,最终沉淀下来的这套状态机与分布式事务方案,成功解决了这一复杂难题。

时间:2026-07-09 16:46
AI并未抢走程序员饭碗而是更新了编程菜单

AI并未抢走程序员饭碗而是更新了编程菜单

AI并未大规模替代程序员,而是改变了职业结构。重复性编码岗位需求下降35%至15%,而AIAgent开发等岗位需求激增187%。开发者焦虑从“被替代”转向“跟不上变化”,60%程序员已使用AI辅助编程。人的核心价值转向架构设计、技术决策和审查AI生成代码,AI技能带来16%薪资溢价。

时间:2026-07-09 16:46
热门专题
更多
刀塔传奇破解版无限钻石下载大全 刀塔传奇破解版无限钻石下载大全
洛克王国正式正版手游下载安装大全 洛克王国正式正版手游下载安装大全
思美人手游下载专区 思美人手游下载专区
好玩的阿拉德之怒游戏下载合集 好玩的阿拉德之怒游戏下载合集
不思议迷宫手游下载合集 不思议迷宫手游下载合集
百宝袋汉化组游戏最新合集 百宝袋汉化组游戏最新合集
jsk游戏合集30款游戏大全 jsk游戏合集30款游戏大全
宾果消消消原版下载大全 宾果消消消原版下载大全
  • 热门数据榜