From ce496fa9f7848fb047bb6cd1062e99eda99bb4fd Mon Sep 17 00:00:00 2001 From: Emanuele Ferrelli Date: Thu, 31 Oct 2024 16:26:36 +0100 Subject: [PATCH] adding StartDate, EndDate and AiModel fields for scenario executions --- .../com/olympus/hermione/models/Scenario.java | 5 ++++- .../hermione/models/ScenarioExecution.java | 4 ++++ .../repository/AiModelRepository.java | 2 +- .../services/ScenarioExecutionService.java | 20 +++++++++++-------- 4 files changed, 21 insertions(+), 10 deletions(-) diff --git a/src/main/java/com/olympus/hermione/models/Scenario.java b/src/main/java/com/olympus/hermione/models/Scenario.java index 22c997f..82a7825 100644 --- a/src/main/java/com/olympus/hermione/models/Scenario.java +++ b/src/main/java/com/olympus/hermione/models/Scenario.java @@ -24,7 +24,6 @@ public class Scenario { private String startWithStepId; private List steps; private List inputs; - private String modelId; private String visible; @@ -32,7 +31,11 @@ public class Scenario { private List availableForProjects; @DocumentReference private List availableForApplications; + @DocumentReference + private AiModel aiModel; private boolean useChatMemory=false; private String outputType; + + } diff --git a/src/main/java/com/olympus/hermione/models/ScenarioExecution.java b/src/main/java/com/olympus/hermione/models/ScenarioExecution.java index e039e08..cd6202c 100644 --- a/src/main/java/com/olympus/hermione/models/ScenarioExecution.java +++ b/src/main/java/com/olympus/hermione/models/ScenarioExecution.java @@ -1,6 +1,7 @@ package com.olympus.hermione.models; import java.util.HashMap; +import java.util.Date; import org.springframework.data.annotation.Id; import org.springframework.data.mongodb.core.mapping.Document; @@ -33,4 +34,7 @@ public class ScenarioExecution { private String latestStepOutput; private ScenarioExecutionInput scenarioExecutionInput; + + private Date startDate; + private Date endDate; } diff --git a/src/main/java/com/olympus/hermione/repository/AiModelRepository.java b/src/main/java/com/olympus/hermione/repository/AiModelRepository.java index 3853a82..b22ef14 100644 --- a/src/main/java/com/olympus/hermione/repository/AiModelRepository.java +++ b/src/main/java/com/olympus/hermione/repository/AiModelRepository.java @@ -9,5 +9,5 @@ import org.springframework.data.mongodb.repository.MongoRepository; @Repository public interface AiModelRepository extends MongoRepository{ - Optional findByIsDefault(Boolean isDefault); + AiModel findByIsDefault(Boolean isDefault); } diff --git a/src/main/java/com/olympus/hermione/services/ScenarioExecutionService.java b/src/main/java/com/olympus/hermione/services/ScenarioExecutionService.java index 9b7ce6a..4ecd6bf 100644 --- a/src/main/java/com/olympus/hermione/services/ScenarioExecutionService.java +++ b/src/main/java/com/olympus/hermione/services/ScenarioExecutionService.java @@ -127,19 +127,22 @@ public class ScenarioExecutionService { Scenario scenario = o_scenario.get(); logger.info("Start execution of scenario: " + scenario.getName()); + scenarioExecution.setStartDate(new java.util.Date()); HashMap execSharedMap = new HashMap(); execSharedMap.put("user_input", inputs); scenarioExecution.setExecSharedMap(execSharedMap); scenarioExecutionRepository.save(scenarioExecution); - Optional o_aiModel; - if(scenario.getModelId() != null){ - o_aiModel = aiModelRepository.findById(scenario.getModelId()); + AiModel aiModel; + if(scenario.getAiModel() != null){ + aiModel = scenario.getAiModel(); }else { - o_aiModel = aiModelRepository.findByIsDefault(true); - } - AiModel aiModel = o_aiModel.get(); + aiModel = aiModelRepository.findByIsDefault(true); + //scenario.setAiModel(aiModel); + //scenarioRepository.save(scenario); + } + ChatModel chatModel = createChatModel(aiModel); if(scenario.isUseChatMemory()){ @@ -180,6 +183,9 @@ public class ScenarioExecutionService { break; } } + + scenarioExecution.setEndDate(new java.util.Date()); + scenarioExecutionRepository.save(scenarioExecution); } } @@ -234,12 +240,10 @@ public class ScenarioExecutionService { scenarioExecutionNew.setNextStepId(null); scenarioExecutionNew.setLatestStepStatus("ERROR"); scenarioExecutionNew.setLatestStepOutput(e.getMessage()); - } scenarioExecutionRepository.save(scenarioExecutionNew); - }