【代码评审】AI:工作流

master
YunaiV 7 months ago
parent c8e63f4a8c
commit 4bb52bb37d
  1. 1
      yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/controller/admin/workflow/AiWorkflowController.java
  2. 2
      yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/controller/admin/workflow/vo/AiWorkflowSaveReqVO.java
  3. 12
      yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/dal/dataobject/workflow/AiWorkflowDO.java
  4. 1
      yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/service/workflow/AiWorkflowService.java
  5. 3
      yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/service/workflow/AiWorkflowServiceImpl.java
  6. 2
      yudao-module-ai/yudao-spring-boot-starter-ai/pom.xml

@ -67,6 +67,7 @@ public class AiWorkflowController {
return success(BeanUtils.toBean(pageResult, AiWorkflowRespVO.class));
}
// TODO @lesan:要不融合到 updateWorkflow 接口?
@PutMapping("/updateWorkflowModel")
@Operation(summary = "更新 AI 工作流模型")
@PreAuthorize("@ss.hasPermission('ai:workflow:update')")

@ -8,7 +8,7 @@ import lombok.Data;
@Data
public class AiWorkflowSaveReqVO {
@Schema(description = "编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
@Schema(description = "编号", example = "1")
private Long id;
@Schema(description = "工作流标识", requiredMode = Schema.RequiredMode.REQUIRED, example = "FLOW")

@ -21,17 +21,17 @@ public class AiWorkflowDO extends BaseDO {
*/
@TableId
private Long id;
/**
* 工作流标识
*/
private String definitionKey;
/**
* 工作流名称
*/
private String name;
/**
* 工作流标识
*/
// TODO @lesan:要不换成 code?主要想,和 bpm 工作流,有点区分,字段上。
private String definitionKey;
// TODO @lesan:graph 用这个如何?发现大家貌似更爱用这个字段哈。图!
/**
* 工作流模型 JSON 数据
*/

@ -66,4 +66,5 @@ public interface AiWorkflowService {
* @param testReqVO 测试数据
*/
Object testWorkflow(AiWorkflowTestReqVO testReqVO);
}

@ -117,6 +117,7 @@ public class AiWorkflowServiceImpl implements AiWorkflowService {
}
private Tinyflow parseFlowParam(String model) {
// TODO @lesan:可以使用 jackson 哇?
JSONObject json = JSONObject.parseObject(model);
JSONArray nodeArr = json.getJSONArray("nodes");
Tinyflow tinyflow = new Tinyflow(json.toJSONString());
@ -128,6 +129,7 @@ public class AiWorkflowServiceImpl implements AiWorkflowService {
AiApiKeyDO apiKey = apiKeyService.getApiKey(data.getLong("llmId"));
switch (apiKey.getPlatform()) {
// TODO @lesan 需要讨论一下这里怎么弄
// TODO @lesan llmId 对应 model 的编号如何?这样的话,就是 apiModelService 提供一个获取 LLM 的方法。然后,创建的方法,也在 AiModelFactory 提供。可以先接个 deepseek 先。deepseek yyds!
case "OpenAI":
break;
case "Ollama":
@ -153,5 +155,4 @@ public class AiWorkflowServiceImpl implements AiWorkflowService {
return tinyflow;
}
}

@ -118,8 +118,8 @@
</exclusions>
</dependency>
<!-- TinyFlow:AI 工作流 -->
<dependency>
<!-- Tinyflow:工作流 -->
<groupId>dev.tinyflow</groupId>
<artifactId>tinyflow-java-core</artifactId>
<version>${tinyflow.version}</version>

Loading…
Cancel
Save