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 67 return success(BeanUtils.toBean(pageResult, AiWorkflowRespVO.class));
68 68 }
69 69  
  70 + // TODO @lesan:要不融合到 updateWorkflow 接口?
70 71 @PutMapping("/updateWorkflowModel")
71 72 @Operation(summary = "更新 AI 工作流模型")
72 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 8 @Data
9 9 public class AiWorkflowSaveReqVO {
10 10  
11   - @Schema(description = "编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
  11 + @Schema(description = "编号", example = "1")
12 12 private Long id;
13 13  
14 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 21 */
22 22 @TableId
23 23 private Long id;
24   -
25   - /**
26   - * 工作流标识
27   - */
28   - private String definitionKey;
29   -
30 24 /**
31 25 * 工作流名称
32 26 */
33 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 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 66 * @param testReqVO 测试数据
67 67 */
68 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 117 }
118 118  
119 119 private Tinyflow parseFlowParam(String model) {
  120 + // TODO @lesan:可以使用 jackson 哇?
120 121 JSONObject json = JSONObject.parseObject(model);
121 122 JSONArray nodeArr = json.getJSONArray("nodes");
122 123 Tinyflow tinyflow = new Tinyflow(json.toJSONString());
... ... @@ -128,6 +129,7 @@ public class AiWorkflowServiceImpl implements AiWorkflowService {
128 129 AiApiKeyDO apiKey = apiKeyService.getApiKey(data.getLong("llmId"));
129 130 switch (apiKey.getPlatform()) {
130 131 // TODO @lesan 需要讨论一下这里怎么弄
  132 + // TODO @lesan llmId 对应 model 的编号如何?这样的话,就是 apiModelService 提供一个获取 LLM 的方法。然后,创建的方法,也在 AiModelFactory 提供。可以先接个 deepseek 先。deepseek yyds!
131 133 case "OpenAI":
132 134 break;
133 135 case "Ollama":
... ... @@ -153,5 +155,4 @@ public class AiWorkflowServiceImpl implements AiWorkflowService {
153 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 118 </exclusions>
119 119 </dependency>
120 120  
  121 + <!-- TinyFlow:AI 工作流 -->
121 122 <dependency>
122   - <!-- Tinyflow:工作流 -->
123 123 <groupId>dev.tinyflow</groupId>
124 124 <artifactId>tinyflow-java-core</artifactId>
125 125 <version>${tinyflow.version}</version>
... ...