Commit 4bb52bb37d1df17e75ca528594003aba00926172

Authored by YunaiV
1 parent c8e63f4a

【代码评审】AI:工作流

yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/controller/admin/workflow/AiWorkflowController.java
@@ -67,6 +67,7 @@ public class AiWorkflowController { @@ -67,6 +67,7 @@ public class AiWorkflowController {
67 return success(BeanUtils.toBean(pageResult, AiWorkflowRespVO.class)); 67 return success(BeanUtils.toBean(pageResult, AiWorkflowRespVO.class));
68 } 68 }
69 69
  70 + // TODO @lesan:要不融合到 updateWorkflow 接口?
70 @PutMapping("/updateWorkflowModel") 71 @PutMapping("/updateWorkflowModel")
71 @Operation(summary = "更新 AI 工作流模型") 72 @Operation(summary = "更新 AI 工作流模型")
72 @PreAuthorize("@ss.hasPermission('ai:workflow:update')") 73 @PreAuthorize("@ss.hasPermission('ai:workflow:update')")
yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/controller/admin/workflow/vo/AiWorkflowSaveReqVO.java
@@ -8,7 +8,7 @@ import lombok.Data; @@ -8,7 +8,7 @@ import lombok.Data;
8 @Data 8 @Data
9 public class AiWorkflowSaveReqVO { 9 public class AiWorkflowSaveReqVO {
10 10
11 - @Schema(description = "编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") 11 + @Schema(description = "编号", example = "1")
12 private Long id; 12 private Long id;
13 13
14 @Schema(description = "工作流标识", requiredMode = Schema.RequiredMode.REQUIRED, example = "FLOW") 14 @Schema(description = "工作流标识", requiredMode = Schema.RequiredMode.REQUIRED, example = "FLOW")
yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/dal/dataobject/workflow/AiWorkflowDO.java
@@ -21,17 +21,17 @@ public class AiWorkflowDO extends BaseDO { @@ -21,17 +21,17 @@ public class AiWorkflowDO extends BaseDO {
21 */ 21 */
22 @TableId 22 @TableId
23 private Long id; 23 private Long id;
24 -  
25 - /**  
26 - * 工作流标识  
27 - */  
28 - private String definitionKey;  
29 -  
30 /** 24 /**
31 * 工作流名称 25 * 工作流名称
32 */ 26 */
33 private String name; 27 private String name;
  28 + /**
  29 + * 工作流标识
  30 + */
  31 + // TODO @lesan:要不换成 code?主要想,和 bpm 工作流,有点区分,字段上。
  32 + private String definitionKey;
34 33
  34 + // TODO @lesan:graph 用这个如何?发现大家貌似更爱用这个字段哈。图!
35 /** 35 /**
36 * 工作流模型 JSON 数据 36 * 工作流模型 JSON 数据
37 */ 37 */
yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/service/workflow/AiWorkflowService.java
@@ -66,4 +66,5 @@ public interface AiWorkflowService { @@ -66,4 +66,5 @@ public interface AiWorkflowService {
66 * @param testReqVO 测试数据 66 * @param testReqVO 测试数据
67 */ 67 */
68 Object testWorkflow(AiWorkflowTestReqVO testReqVO); 68 Object testWorkflow(AiWorkflowTestReqVO testReqVO);
  69 +
69 } 70 }
yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/service/workflow/AiWorkflowServiceImpl.java
@@ -117,6 +117,7 @@ public class AiWorkflowServiceImpl implements AiWorkflowService { @@ -117,6 +117,7 @@ public class AiWorkflowServiceImpl implements AiWorkflowService {
117 } 117 }
118 118
119 private Tinyflow parseFlowParam(String model) { 119 private Tinyflow parseFlowParam(String model) {
  120 + // TODO @lesan:可以使用 jackson 哇?
120 JSONObject json = JSONObject.parseObject(model); 121 JSONObject json = JSONObject.parseObject(model);
121 JSONArray nodeArr = json.getJSONArray("nodes"); 122 JSONArray nodeArr = json.getJSONArray("nodes");
122 Tinyflow tinyflow = new Tinyflow(json.toJSONString()); 123 Tinyflow tinyflow = new Tinyflow(json.toJSONString());
@@ -128,6 +129,7 @@ public class AiWorkflowServiceImpl implements AiWorkflowService { @@ -128,6 +129,7 @@ public class AiWorkflowServiceImpl implements AiWorkflowService {
128 AiApiKeyDO apiKey = apiKeyService.getApiKey(data.getLong("llmId")); 129 AiApiKeyDO apiKey = apiKeyService.getApiKey(data.getLong("llmId"));
129 switch (apiKey.getPlatform()) { 130 switch (apiKey.getPlatform()) {
130 // TODO @lesan 需要讨论一下这里怎么弄 131 // TODO @lesan 需要讨论一下这里怎么弄
  132 + // TODO @lesan llmId 对应 model 的编号如何?这样的话,就是 apiModelService 提供一个获取 LLM 的方法。然后,创建的方法,也在 AiModelFactory 提供。可以先接个 deepseek 先。deepseek yyds!
131 case "OpenAI": 133 case "OpenAI":
132 break; 134 break;
133 case "Ollama": 135 case "Ollama":
@@ -153,5 +155,4 @@ public class AiWorkflowServiceImpl implements AiWorkflowService { @@ -153,5 +155,4 @@ public class AiWorkflowServiceImpl implements AiWorkflowService {
153 return tinyflow; 155 return tinyflow;
154 } 156 }
155 157
156 -  
157 } 158 }
yudao-module-ai/yudao-spring-boot-starter-ai/pom.xml
@@ -118,8 +118,8 @@ @@ -118,8 +118,8 @@
118 </exclusions> 118 </exclusions>
119 </dependency> 119 </dependency>
120 120
  121 + <!-- TinyFlow:AI 工作流 -->
121 <dependency> 122 <dependency>
122 - <!-- Tinyflow:工作流 -->  
123 <groupId>dev.tinyflow</groupId> 123 <groupId>dev.tinyflow</groupId>
124 <artifactId>tinyflow-java-core</artifactId> 124 <artifactId>tinyflow-java-core</artifactId>
125 <version>${tinyflow.version}</version> 125 <version>${tinyflow.version}</version>