Commit 4bb52bb37d1df17e75ca528594003aba00926172
1 parent
c8e63f4a
【代码评审】AI:工作流
Showing
6 changed files
with
12 additions
and
9 deletions
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> |