【JeecgBoot AIGC】AI工作流配置与流程节点全解析

该文章已生成可运行项目,

JeecgBoot 平台的 AIGC 功能模块,是一套类似 Dify 的 AIGC应用开发平台 + 知识库问答 子系统,是一款基于 LLM 大语言模型 AI 应用平台和 RAG 的知识库问答系统。 其直观的界面结合了 AI 流程编排、RAG 管道、知识库管理、模型管理、对接向量库、实时运行可观察等,让您可以快速从原型到生产,拥有 AI 服务能力。

体验地址:https://boot3.jeecg.com

源码下载:https://github.com/jeecgboot/JeecgBoot

1. 介绍

本小节介绍如何在系统中创建和管理 AI 工作流。

AI 工作流通过将复杂任务拆解为更小的步骤(即流程节点),从而降低系统复杂度,提高执行效率。通过合理的工作流编排,可以减少对 Prompt Engineering(提示词工程)和单次 LLM 推理的依赖,提升 AI 任务的稳定性、可解释性和容错能力。

2. 流程管理

进入流程管理页面,您可以查看系统中的所有 AI 流程。

  • 点击某个流程条目,即可进入流程编排页面,对流程进行调整和优化。
2.1 编排流程

点击 添加流程 ,进入新流程编排页面。默认情况下,系统会自动添加一个 开始节点

在流程编排界面,点击现有节点后的 加号(+),可在该节点后新增流程节点。

此外,还可以按住鼠标 拖动连线,将不同节点连接在一起,形成完整的工作流。

如果需要调整流程,可以选中连线后点击 删除按钮,移除两个节点间的连接。

点击 节点右上角的"…" ,可打开节点的 更多选项 ,支持 复制删除 节点。

点击某个 流程节点,右侧会弹出该节点的详细配置窗口,每个节点的配置方式有所不同,需根据实际业务场景进行调整。

右上角提供了 保存、调试、关闭 当前流程的功能,方便随时调整和测试。

2.2 流程节点

2.2.1 开始节点

开始节点 是流程的起点,用于接收外部输入。

  • 设定输入参数,例如文本、数值或结构化数据。
  • 触发流程的执行,确保数据正确传递到后续节点。
  • history入参:当流程被聊天调用时,聊天的历史将存储在history中供llm使用。

2.2.2 LLM节点

LLM(大语言模型)节点 负责调用 LLM(如 GPT、Qwen)进行文本生成或智能问答。

  • 选择配置好的语言模型。
  • 设定提示词,指引 LLM 输出预期结果。
  • 配置模型参数,如温度(Temperature)和最大 Token 数。
  • 如果LLM节点的入参中包含知识库节点输出的data时,将自动生成基于知识库的智能回答

如果您不确定如何编写提示词,可以通过点击生成按钮来进入提示词生成器。在该界面中,您可以填写您的需求,AI将会自动帮助您生成合适的提示词。这种方式可以有效地帮助您获取所需的内容,节省时间和精力。请确保尽量详细地描述您的需求,以便生成器能够提供更准确的提示词。

2.2.3 分类器节点

分类器节点 用于让LLM对输入数据进行分类,并将其路由到不同的分支。

  • 适用于意图识别、文本分类等场景。
  • 设定提示词,指引LLM选择正确的分类。
  • 可配置多个分类条件,并设定不同的处理路径。

2.2.4 知识库节点

知识库节点 负责在 AI 知识库中查询匹配的内容,以增强 AI 回答的准确性。

  • 选择已经准备好的知识库,从该知识库中检索内容,检索条件是查询变量。
  • 将输出文档列表和文档内容。
  • 可以自定义配置知识库检索时的返回条目数和最低分数。

2.2.5 条件分支节点

条件分支节点 根据设定的条件,决定流程的下一步执行路径。

  • 支持多种逻辑判断,如文本匹配、数值比较。

2.2.6 脚本执行节点

脚本执行节点 允许在流程中执行自定义的代码。

  • 适用于自定义数据处理、API 调用等场景。
  • 运行时可访问流程变量,实现灵活控制。
  • params即节点的输入参数
  • 输出变量,将从return的对象中获取。

支持代码类型:

  • javascript
  • groovy
  • kotlin
  • aviator

不同的脚本有两种写法,其中 JavaScript 和 Groovy 需要将业务代码写在默认定义好的函数中。以 JavaScript 为例,示例如下:

在代码中,需要定义一个 main 函数:

  • 入参params 包含了节点配置的输入变量。
  • 返回值:函数需要返回一个对象,该对象的每一个值都可以在输出变量中获取到。
2.2.7 Java增强节点

Java增强节点 允许调用 Java 代码或自定义组件,扩展流程功能。

  • 适用于调用 Java 业务逻辑或处理复杂计算。
  • 需提前编写并注册 Java 类,供流程调用。
  • java增强类需要实现IAiRagEnhanceJava接口。
  • 支持两种注册方式:
    • 类路径:填写完整的java类路径
    • Spring Bean:填写java类的SpringBean名称

示例:

  1. 在项目中新增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());
    }
}
  1. 新建流程

  1. 开始节点配置两个入参:问题1、问题2。

  1. java增强节点:

    - 输入变量对应代码中的方法入参。 
    - 输出变量对应代码中方法返回值。
  1. 结束节点

  1. 调试流程:

2.2.8 子流程节点

子流程节点 允许流程嵌套,支持在当前流程中调用另一个已定义的流程。

  • 适用于复用已有的业务逻辑,提升流程的模块化和可维护性。
  • 可传递参数给子流程,并获取其返回结果。

2.2.9 http节点

http节点 允许在流程中调用http接口,并获取接口返回值输出给其他节点。。

  • 适用于通过接口调用已有的业务逻辑。
  • 支持自定义参数、请求头、请求体。
  • 请求地址支持使用{{domainURL}}来获取当前系统域名
  • 参数值、请求头、请求体都支持使用{{paramName}}来引用输入变量以及系统上下文变量

2.2.10 直接回复节点

直接回复节点,可以在文本编辑器中自由定义回复格式,包括自定义一段固定的文本内容、使用前置步骤中的输出变量作为回复内容、或者将自定义文本与变量组合后回复。

可随时加入节点将内容流式输出至对话回复,如:

  • 输出 LLM 节点回复内容
  • 输出纯文本

与结束节点的区别:

  1. 直接回复节点不会结束流程。
  2. 直接回复节点回复的内容只通过SSE返回(即使用blocking调用时无法获取)
2.2.11 结束节点

结束节点 标志流程执行完毕,输出最终结果。

  • 可设定输出数据结构,如文本、JSON 等。
    • 勾选返回文本,将输出文本类型的结果。
    • 不勾选则输出json类型的结果。
  • 支持将最终结果返回给调用者。

2.3 调试流程

完成流程编排后,可以使用调试功能测试流程的运行情况。

点击 运行按钮,进入调试界面。

输入运行参数,例如:

jeecg是什么

调试界面将动态展示流程的执行路径。

您还可以查看每个节点的 输入输出 数据,确保流程逻辑正确。

3. 总结

AI 工作流通过模块化的流程节点,简化了复杂任务的执行逻辑,使得 AI 任务更加稳定、可解释,并易于维护。通过合理使用 LLM 节点、知识库节点、分类器节点等组件,用户可以高效搭建智能化的 AI 处理流程,提高系统的自动化能力和智能水平。

本文章已经生成可运行项目
<think> 我们引用了三个站内引用,但用户的问题是关于DeepSeekJeecgBoot配置方法。根据引用[1],我们有一段关于在Java项目中配置DeepSeek的properties文件示例。而JeecgBoot是一个基于Spring Boot的快速开发平台,因此配置方式应该是类似的。 我们需要做的是: 1. 在Spring Boot项目(JeecgBoot)的配置文件(如application.yml或application.properties)中添加DeepSeek的API配置。 2. 添加Maven依赖(引用[1]提到了添加Maven依赖,但未具体说明,我们可以参考常见的Spring AI依赖)。 3. 根据引用[2]和[3],用户可以选择合适的DeepSeek模型(如蒸馏版,适合普通硬件)。 然而,引用[1]中给出了properties配置示例,但未给出具体的依赖。我们可以推断,需要引入Spring AI相关的依赖。 因此,配置步骤可以归纳为: 步骤1:在项目的pom.xml中添加Spring AI的依赖(假设使用OpenAI的API,因为DeepSeek的APIOpenAI兼容)。 步骤2:在配置文件中设置DeepSeek的API基础URL和API密钥,以及模型名称(如deepseek-r1:8b)。 步骤3:根据需要进行日志配置。 注意:JeecgBoot本身是一个Spring Boot项目,所以配置方式普通的Spring Boot项目一致。 具体操作: 1. Maven依赖(根据引用[1],但需要具体化): 我们可以使用Spring AI的OpenAI starter,因为DeepSeek的APIOpenAI兼容。 2. 配置文件(application.yml或application.properties): 设置spring.ai.openai.base-url为DeepSeek的API地址(https://api.deepseek.com/),以及api-key和模型。 3. 日志配置:如引用[1]中设置了logging.level.org.springframework.ai=DEBUG,用于调试。 另外,引用[3]中提到了模型下载和本地部署,但用户目前的问题是如何配置JeecgBoot去调用DeepSeek的API(云端服务),而不是本地部署模型。因此,我们主要参考引用[1]的配置方式。 但是,如果用户希望本地部署DeepSeek模型(如蒸馏版)并JeecgBoot集成,那么步骤会复杂很多,需要本地启动模型服务,然后配置base-url为本地地址(如http://localhost:8080)。不过,用户的问题中并未明确是云端调用还是本地部署,因此我们提供两种方案的思路。 鉴于用户问题中只提到“配置方法”,且引用[1]是云端调用,我们先以云端调用为例。 步骤: 1. 添加Maven依赖(在pom.xml中): ```xml <!-- Spring AI OpenAI 依赖 --> <dependency> <groupId>org.springframework.ai</groupId> <artifactId>spring-ai-openai-spring-boot-starter</artifactId> <version>0.8.0</version> <!-- 请根据实际情况选择版本 --> </dependency> ``` 2. 配置application.properties(或application.yml): ```properties # DeepSeek配置 spring.ai.openai.base-url=https://api.deepseek.com/ spring.ai.openai.api-key=你的API密钥 spring.ai.openai.chat.options.model=deepseek-r1:8b # 日志配置 logging.level.org.springframework.ai=DEBUG ``` 3. 在代码中使用,例如创建一个AiService来调用: 可以注入OpenAiChatClient,然后调用生成方法。 如果是本地部署模型,则需要: 1. 按照引用[3]的方法下载模型并启动一个本地服务(比如使用ollama或其他推理框架部署DeepSeek模型)。 2. 然后将配置文件中的base-url改为本地服务的地址。 但是,由于JeecgBoot是一个企业级开发平台,通常更倾向于使用云端API,因此我们主要提供云端配置。 注意:DeepSeek的模型名称在引用[1]中写的是deepseek-r1:8b,在引用[2]中提到了蒸馏版,用户需要根据自己账户可用的模型进行设置。 因此,回答如下: </think> ### DeepSeek JeecgBoot配置方法 在 JeecgBoot(基于 Spring Boot 的快速开发框架)中集成 DeepSeek AI 服务,主要通过以下步骤实现: #### 1. **添加 Maven 依赖** 在 `pom.xml` 中添加 Spring AI 和 HTTP 客户端依赖: ```xml <dependency> <groupId>org.springframework.ai</groupId> <artifactId>spring-ai-openai-spring-boot-starter</artifactId> <version>0.8.0</version> <!-- 需匹配Spring Boot版本 --> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-webflux</artifactId> <!-- 支持HTTP调用 --> </dependency> ``` #### 2. **配置 API 参数** 在 `application.yml` 或 `application.properties` 中添加 DeepSeek 的认证信息: ```properties # application.properties 示例 spring.ai.openai.base-url=https://api.deepseek.com spring.ai.openai.api-key=你的API密钥 # 替换为实际密钥 spring.ai.openai.chat.options.model=deepseek-r1:8b # 指定模型 logging.level.org.springframework.ai=DEBUG # 启用调试日志 ``` > 📌 **关键配置说明** > - `base-url`: DeepSeek 的 API 端点(固定为 `https://api.deepseek.com`) > - `api-key`: 从 [DeepSeek 官网](https://platform.deepseek.com/) 获取 > - `model`: 根据需求选择模型(完整版 `deepseek-r1` 或蒸馏版参见引用[^2]) #### 3. **注入 AI 服务** 在 JeecgBoot 的 Service 层注入 `OpenAiChatClient`: ```java import org.springframework.ai.openai.OpenAiChatClient; import org.springframework.beans.factory.annotation.Autowired; @Service public class AIService { @Autowired private OpenAiChatClient chatClient; public String generateResponse(String prompt) { return chatClient.call(prompt); // 调用AI生成内容 } } ``` #### 4. **本地模型部署(可选)** 如需私有化部署蒸馏版模型(适合普通硬件),参考引用[^3]: ```bash # 下载模型(需安装ModelScope) pip install modelscope modelscope download --model deepseek-ai/DeepSeek-R1-Distill-Qwen-7B --local_dir ./model ``` 修改配置指向本地服务: ```properties spring.ai.openai.base-url=http://localhost:8080 # 本地模型服务地址 ``` ### 验证配置 1. 启动 JeecgBoot 应用 2. 检查日志:出现 `OpenAiChatClient initialized` 表示成功 3. 调用测试接口验证响应 --- ### 常见问题排查 | 问题现象 | 解决方案 | |--------------------------|----------------------------------| | 连接超时 | 检查网络是否可访问 `api.deepseek.com` | | 401 认证失败 | 核对 `api-key` 有效性 | | 模型不可用 (404) | 确认 `model` 参数名称正确 | | 本地部署无响应 | 检查模型服务端口是否开放 | > ⚠️ **注意事项** > - 生产环境建议将 API Key 存入配置中心(如 Nacos)而非代码[^1] > - 蒸馏版模型(如 `DeepSeek-R1-Distill-Qwen-7B`)更适合中小企业硬件环境[^2] > - 调试阶段开启 `DEBUG` 日志可快速定位问题[^1] ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

JEECG低代码平台

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值