【JeecgBoot AIGC】AI工作流配置与流程节点全解析
JeecgBoot 平台的 AIGC 功能模块,是一套类似 Dify 的 AIGC应用开发平台 + 知识库问答 子系统,是一款基于 LLM 大语言模型 AI 应用平台和 RAG 的知识库问答系统。 其直观的界面结合了 AI 流程编排、RAG 管道、知识库管理、模型管理、对接向量库、实时运行可观察等,让您可以快速从原型到生产,拥有 AI 服务能力。https://pica.zhimg.com/v2-2c737eadc27b9ae3d17e2be610f36514_1440w.jpg体验地址:https://boot3.jeecg.com源码下载:https://github.com/jeecgboot/JeecgBoot
1. 介绍本小节介绍如何在系统中创建和管理 AI 工作流。AI 工作流通过将复杂任务拆解为更小的步骤(即流程节点),从而降低系统复杂度,提高执行效率。通过合理的工作流编排,可以减少对 Prompt Engineering(提示词工程)和单次 LLM 推理的依赖,提升 AI 任务的稳定性、可解释性和容错能力。
2. 流程管理进入流程管理页面,您可以查看系统中的所有 AI 流程。
[*]点击某个流程条目,即可进入流程编排页面,对流程进行调整和优化。
https://pic1.zhimg.com/v2-fbdd1a9c636c5ffbf8e6b4594b9dd532_1440w.jpg
2.1 编排流程点击 添加流程 ,进入新流程编排页面。默认情况下,系统会自动添加一个 开始节点。https://pic3.zhimg.com/v2-be8854c938732538d01cb08dee217c8a_1440w.jpg在流程编排界面,点击现有节点后的 加号(+),可在该节点后新增流程节点。https://pic3.zhimg.com/v2-ca62dbcc53374072bdd9414ac92cb70e_1440w.jpg此外,还可以按住鼠标 拖动连线,将不同节点连接在一起,形成完整的工作流。https://pic2.zhimg.com/v2-4111eaef736884ea74c1420ed5873135_1440w.jpg如果需要调整流程,可以选中连线后点击 删除按钮,移除两个节点间的连接。https://pic3.zhimg.com/v2-6a7fbb43d7b2d73b06e259b94066c03e_1440w.jpg点击 节点右上角的"..." ,可打开节点的 更多选项 ,支持 复制 或 删除 节点。https://pic4.zhimg.com/v2-d20883ef447d57b3e9bd761c1278dc7b_1440w.jpg点击某个 流程节点,右侧会弹出该节点的详细配置窗口,每个节点的配置方式有所不同,需根据实际业务场景进行调整。https://pic1.zhimg.com/v2-ce595113f7751e14cdcbc126c11c9252_1440w.jpg右上角提供了 保存、调试、关闭 当前流程的功能,方便随时调整和测试。https://pic4.zhimg.com/v2-f3c148eff9bf8a08ccb398f77c525fcb_1440w.jpg
2.2 流程节点
2.2.1 开始节点开始节点 是流程的起点,用于接收外部输入。
[*]设定输入参数,例如文本、数值或结构化数据。
[*]触发流程的执行,确保数据正确传递到后续节点。
[*]history入参:当流程被聊天调用时,聊天的历史将存储在history中供llm使用。
https://pica.zhimg.com/v2-c6157532e17479adb6f49a4bb8c2f4d0_1440w.jpg
2.2.2 LLM节点
LLM(大语言模型)节点 负责调用 LLM(如 GPT、Qwen)进行文本生成或智能问答。
[*]选择配置好的语言模型。
[*]设定提示词,指引 LLM 输出预期结果。
[*]配置模型参数,如温度(Temperature)和最大 Token 数。
[*]如果LLM节点的入参中包含知识库节点输出的data时,将自动生成基于知识库的智能回答
https://pic4.zhimg.com/v2-3ab832ef7eefc66e8c7dbfab917ebe03_1440w.jpg如果您不确定如何编写提示词,可以通过点击生成按钮来进入提示词生成器。在该界面中,您可以填写您的需求,AI将会自动帮助您生成合适的提示词。这种方式可以有效地帮助您获取所需的内容,节省时间和精力。请确保尽量详细地描述您的需求,以便生成器能够提供更准确的提示词。https://pica.zhimg.com/v2-970f26c013458647116a7ea7d93b49a6_1440w.jpg
2.2.3 分类器节点分类器节点 用于让LLM对输入数据进行分类,并将其路由到不同的分支。
[*]适用于意图识别、文本分类等场景。
[*]设定提示词,指引LLM选择正确的分类。
[*]可配置多个分类条件,并设定不同的处理路径。
https://pic4.zhimg.com/v2-c6a193a557c53d6fcb650eb35a2fd881_1440w.jpg
2.2.4 知识库节点知识库节点 负责在 AI 知识库中查询匹配的内容,以增强 AI 回答的准确性。
[*]选择已经准备好的知识库,从该知识库中检索内容,检索条件是查询变量。
[*]将输出文档列表和文档内容。
[*]可以自定义配置知识库检索时的返回条目数和最低分数。
https://pic2.zhimg.com/v2-1b91d44c050f09bb9b16c4f51c16d1e9_1440w.jpg
2.2.5 条件分支节点条件分支节点 根据设定的条件,决定流程的下一步执行路径。
[*]支持多种逻辑判断,如文本匹配、数值比较。
https://pica.zhimg.com/v2-bbfe727c590222bc4a974fed111821f2_1440w.jpg
2.2.6 脚本执行节点脚本执行节点 允许在流程中执行自定义的代码。
[*]适用于自定义数据处理、API 调用等场景。
[*]运行时可访问流程变量,实现灵活控制。
[*]params即节点的输入参数
[*]输出变量,将从return的对象中获取。
https://pic2.zhimg.com/v2-023ce68a36b2260d5b9040adf3ff0859_1440w.jpg支持代码类型:
[*]javascript
[*]groovy
[*]kotlin
[*]aviator
不同的脚本有两种写法,其中 JavaScript 和 Groovy 需要将业务代码写在默认定义好的函数中。以 JavaScript 为例,示例如下:https://pic4.zhimg.com/v2-8f43cdec0903245f7710e416dae285f3_1440w.jpg在代码中,需要定义一个 main 函数:
[*]入参 :params 包含了节点配置的输入变量。
[*]返回值:函数需要返回一个对象,该对象的每一个值都可以在输出变量中获取到。
2.2.7 Java增强节点Java增强节点 允许调用 Java 代码或自定义组件,扩展流程功能。
[*]适用于调用 Java 业务逻辑或处理复杂计算。
[*]需提前编写并注册 Java 类,供流程调用。
[*]java增强类需要实现IAiRagEnhanceJava接口。
[*]支持两种注册方式:
[*]类路径:填写完整的java类路径
[*]Spring Bean:填写java类的SpringBean名称
https://pic3.zhimg.com/v2-aeb3879f9cc08c4b98a4c18f8d898e52_1440w.jpg示例:
[*]在项目中新增java类:TestAiragEnhance
@Component
public class TestAiragEnhance implements IAiRagEnhanceJava {
@Override
public Map<String, Object> process(Map<String, Object> inputParams) {
Object arg1 = inputParams.get("arg1");
Object arg2 = inputParams.get("arg2");
return Collections.singletonMap("result",arg1.toString()+"_java拼接_"+arg2.toString());
}
}
2.新建流程https://pic3.zhimg.com/v2-4a270c44ed894a9d7462d6405711db0a_1440w.jpg
[*]开始节点配置两个入参:问题1、问题2。
https://pica.zhimg.com/v2-5e91fde49edf89dce6d16e777045d1d8_1440w.jpg2.java增强节点:https://pic2.zhimg.com/v2-a939cbb9c6da50c40b9d20f92933057d_1440w.jpg
- 输入变量对应代码中的方法入参。
- 输出变量对应代码中方法返回值。
3.结束节点https://pic1.zhimg.com/v2-d8126db19d7236bbbb5d26ba96937bde_1440w.jpg4.调试流程:https://picx.zhimg.com/v2-0c3b6da6a7456832df7ff514b2d02e5b_1440w.jpghttps://pic3.zhimg.com/v2-42869fcb97c2af89b95720c20c43c914_1440w.jpg
2.2.8 子流程节点子流程节点 允许流程嵌套,支持在当前流程中调用另一个已定义的流程。
[*]适用于复用已有的业务逻辑,提升流程的模块化和可维护性。
[*]可传递参数给子流程,并获取其返回结果。
https://pic2.zhimg.com/v2-45879a169268f4a8f5965e37ae88db53_1440w.jpg
2.2.9 http节点http节点 允许在流程中调用http接口,并获取接口返回值输出给其他节点。。
[*]适用于通过接口调用已有的业务逻辑。
[*]支持自定义参数、请求头、请求体。
[*]请求地址支持使用{{domainURL}}来获取当前系统域名
[*]参数值、请求头、请求体都支持使用{{paramName}}来引用输入变量以及系统上下文变量
https://pic2.zhimg.com/v2-007f8083aec66cb55af7c2e7a2cfd099_1440w.jpg
2.2.10 直接回复节点直接回复节点,可以在文本编辑器中自由定义回复格式,包括自定义一段固定的文本内容、使用前置步骤中的输出变量作为回复内容、或者将自定义文本与变量组合后回复。可随时加入节点将内容流式输出至对话回复,如:
[*]输出 LLM 节点回复内容
[*]输出纯文本
https://pica.zhimg.com/v2-2450abb6ed4490daee157d21c42116e6_1440w.jpg与结束节点的区别:
1.直接回复节点不会结束流程。
2.直接回复节点回复的内容只通过SSE返回(即使用blocking调用时无法获取)
2.2.11 结束节点结束节点 标志流程执行完毕,输出最终结果。
[*]可设定输出数据结构,如文本、JSON 等。
[*]勾选返回文本,将输出文本类型的结果。
[*]不勾选则输出json类型的结果。
[*]支持将最终结果返回给调用者。
https://pica.zhimg.com/v2-33e377288a1e41a43050fd5fa18e49f4_1440w.jpg
2.3 调试流程完成流程编排后,可以使用调试功能测试流程的运行情况。点击 运行按钮,进入调试界面。https://pic2.zhimg.com/v2-4d7e53edd33c78140f6bb3beb4e00e3b_1440w.jpg输入运行参数,例如:jeecg是什么
调试界面将动态展示流程的执行路径。https://pic2.zhimg.com/v2-e74bdce26bfabecbfeadb430d1fad49d_1440w.jpg您还可以查看每个节点的 输入 和 输出 数据,确保流程逻辑正确。https://picx.zhimg.com/v2-43b7680a219840a5f5fd5945e4b0d4bd_1440w.jpg
3. 总结AI 工作流通过模块化的流程节点,简化了复杂任务的执行逻辑,使得 AI 任务更加稳定、可解释,并易于维护。通过合理使用 LLM 节点、知识库节点、分类器节点等组件,用户可以高效搭建智能化的 AI 处理流程,提高系统的自动化能力和智能水平。
页:
[1]