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 | 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
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> | ... | ... |