@@ -17,7 +14,6 @@
import { formatTimestamp } from '@/utils/date';
import ContextMenu from 'primevue/contextmenu';
import { ref } from 'vue';
-import Divider from 'primevue/divider';
import Button from 'primevue/button';
import { InterventionPolicy } from '@/types/Types';
@@ -45,32 +41,42 @@ const toggleContextMenu = (event) => {
diff --git a/packages/client/hmi-client/src/components/workflow/ops/intervention-policy/tera-intervention-policy-drilldown.vue b/packages/client/hmi-client/src/components/workflow/ops/intervention-policy/tera-intervention-policy-drilldown.vue
index 87b2d1d3de..c4f8f0fd0a 100644
--- a/packages/client/hmi-client/src/components/workflow/ops/intervention-policy/tera-intervention-policy-drilldown.vue
+++ b/packages/client/hmi-client/src/components/workflow/ops/intervention-policy/tera-intervention-policy-drilldown.vue
@@ -45,7 +45,7 @@
-
+
Add and configure intervention settings for this policy.
@@ -556,10 +556,28 @@ onMounted(() => {
diff --git a/packages/client/hmi-client/src/components/workflow/ops/simulate-ciemss/tera-intervention-summary-card.vue b/packages/client/hmi-client/src/components/workflow/ops/simulate-ciemss/tera-intervention-summary-card.vue
deleted file mode 100644
index 39eecab607..0000000000
--- a/packages/client/hmi-client/src/components/workflow/ops/simulate-ciemss/tera-intervention-summary-card.vue
+++ /dev/null
@@ -1,49 +0,0 @@
-
-
-
{{ intervention.name }}
-
-
- Set the {{ staticIntervention.type }}{{ staticIntervention.appliedTo }} to the value of
- {{ staticIntervention.value }} day at start time
- {{ staticIntervention.timestep }} day.
-
-
- Set the {{ dynamicIntervention.type }} {{ dynamicIntervention.appliedTo }} to
- {{ dynamicIntervention.threshold }} days when it crosses the threshold value
- {{ dynamicIntervention.value }} person.
-
-
-
-
-
-
-
-
diff --git a/packages/client/hmi-client/src/components/workflow/ops/simulate-ciemss/tera-simulate-ciemss-drilldown.vue b/packages/client/hmi-client/src/components/workflow/ops/simulate-ciemss/tera-simulate-ciemss-drilldown.vue
index 155776b02c..ce60fbe289 100644
--- a/packages/client/hmi-client/src/components/workflow/ops/simulate-ciemss/tera-simulate-ciemss-drilldown.vue
+++ b/packages/client/hmi-client/src/components/workflow/ops/simulate-ciemss/tera-simulate-ciemss-drilldown.vue
@@ -242,7 +242,7 @@ import VegaChart from '@/components/widgets/VegaChart.vue';
import { CiemssPresetTypes, DrilldownTabs } from '@/types/common';
import { getModelConfigurationById } from '@/services/model-configurations';
import { flattenInterventionData, getInterventionPolicyById } from '@/services/intervention-policy';
-import TeraInterventionSummaryCard from '@/components/workflow/ops/simulate-ciemss/tera-intervention-summary-card.vue';
+import TeraInterventionSummaryCard from '@/components/intervention-policy/tera-intervention-summary-card.vue';
import TeraSaveSimulationModal from '@/components/project/tera-save-simulation-modal.vue';
import { SimulateCiemssOperationState } from './simulate-ciemss-operation';
import TeraChartControl from '../../tera-chart-control.vue';
diff --git a/packages/client/hmi-client/src/services/toast.ts b/packages/client/hmi-client/src/services/toast.ts
index bb608cd73a..8691b010d9 100644
--- a/packages/client/hmi-client/src/services/toast.ts
+++ b/packages/client/hmi-client/src/services/toast.ts
@@ -33,7 +33,6 @@ export const useToastService = () => {
ToastEventBus.emit('add', {
severity: ToastSeverity.warn,
summary: summary || ToastSummaries.WARNING,
- group: ToastSeverity.warn,
detail,
life
});
@@ -43,7 +42,6 @@ export const useToastService = () => {
ToastEventBus.emit('add', {
severity: ToastSeverity.error,
summary: summary || ToastSummaries.ERROR,
- group: ToastSeverity.error,
detail,
life
});
@@ -53,7 +51,6 @@ export const useToastService = () => {
ToastEventBus.emit('add', {
severity: ToastSeverity.success,
summary: summary || ToastSummaries.SUCCESS,
- group: ToastSeverity.success,
detail,
life
});
@@ -63,7 +60,6 @@ export const useToastService = () => {
ToastEventBus.emit('add', {
severity: ToastSeverity.info,
summary: summary || ToastSummaries.INFO,
- group: ToastSeverity.info,
detail,
life
});
diff --git a/packages/gollm/gollm_openai/prompts/config_from_document.py b/packages/gollm/gollm_openai/prompts/config_from_document.py
index 10e4450dea..6ab4a72378 100644
--- a/packages/gollm/gollm_openai/prompts/config_from_document.py
+++ b/packages/gollm/gollm_openai/prompts/config_from_document.py
@@ -26,13 +26,13 @@
a. `target` should reference the id of the initial variable from the AMR model ODE semantics.
b. `source` should reference the title or file name of the research paper.
c. `type` should be set to "initial”.
- d. You should extract a numerical value or an expression of the initial state from the user-provided text if possible and add it to `expression`
+ d. You should extract a numerical value or an expression of the initial state from the user-provided text if possible and add it to `expression`. If you can not find a value in the text leave expression and expressionMathml blank.
e. `expression_mathml` should be `expression` written in MathML format.
5. For each parameter specified in the AMR model ODE semantics, create a parameter semantic object. Do not create new parameter semantic objects if they are not included in the original AMR model. You should set parameter semantic object fields using the following rules:
a. `reference_id` should reference the id of the parameter.
b. `source` should reference the title or file name of the research paper.
c. `type` should be set to "parameter".
- d. Be sure to extract parameter values from the user-provided text, and do not use the default values from the AMR model.
+ d. Be sure to extract parameter values from the user-provided text, and do not use the default values from the AMR model. If you can not find a value in the text set `type` to "Constant" and leave `value`, `minimum`, and `maximum` blank.
- If the extracted parameter value is a single constant value, set the parameter `value` to the constant value and set `type` to "Constant".
- If the extracted parameter value is a distribution with a maximum and minimum value, set `type` to only "Uniform" and populate the `minimum` and `maximum` fields.
6. `observableSemanticList` should be an empty list.
diff --git a/packages/server/src/main/java/software/uncharted/terarium/hmiserver/controller/knowledge/KnowledgeController.java b/packages/server/src/main/java/software/uncharted/terarium/hmiserver/controller/knowledge/KnowledgeController.java
index a1c85f941d..f9434b6e36 100644
--- a/packages/server/src/main/java/software/uncharted/terarium/hmiserver/controller/knowledge/KnowledgeController.java
+++ b/packages/server/src/main/java/software/uncharted/terarium/hmiserver/controller/knowledge/KnowledgeController.java
@@ -21,6 +21,7 @@
import java.util.Optional;
import java.util.UUID;
import java.util.concurrent.ExecutionException;
+import java.util.concurrent.Future;
import java.util.concurrent.TimeoutException;
import java.util.zip.ZipEntry;
import java.util.zip.ZipOutputStream;
@@ -73,6 +74,7 @@
import software.uncharted.terarium.hmiserver.service.data.ProvenanceService;
import software.uncharted.terarium.hmiserver.service.tasks.EnrichAmrResponseHandler;
import software.uncharted.terarium.hmiserver.service.tasks.TaskService;
+import software.uncharted.terarium.hmiserver.service.tasks.TaskService.TaskMode;
import software.uncharted.terarium.hmiserver.utils.ByteMultipartFile;
import software.uncharted.terarium.hmiserver.utils.Messages;
import software.uncharted.terarium.hmiserver.utils.StringMultipartFile;
@@ -797,14 +799,23 @@ public ResponseEntity variableExtractions(
)
public ResponseEntity pdfExtractions(
@RequestParam("document-id") final UUID documentId,
- @RequestParam(name = "domain", defaultValue = "epi") final String domain,
- @RequestParam(name = "project-id", required = false) final UUID projectId
+ @RequestParam(name = "project-id", required = false) final UUID projectId,
+ @RequestParam(name = "mode", required = false, defaultValue = "ASYNC") final TaskMode mode
) {
final Schema.Permission permission = projectService.checkPermissionCanWrite(
currentUserService.get().getId(),
projectId
);
- extractionService.extractPDFAndApplyToDocument(documentId, projectId, permission);
+
+ final Future f = extractionService.extractPDFAndApplyToDocument(documentId, projectId, permission);
+ if (mode == TaskMode.SYNC) {
+ try {
+ f.get();
+ } catch (InterruptedException | ExecutionException e) {
+ log.error("Error extracting PDF", e);
+ throw new ResponseStatusException(HttpStatus.INTERNAL_SERVER_ERROR, messages.get("document.extracton.failed"));
+ }
+ }
return ResponseEntity.accepted().build();
}
diff --git a/packages/server/src/main/resources/application.properties b/packages/server/src/main/resources/application.properties
index 6696ce873c..98c38bbb01 100644
--- a/packages/server/src/main/resources/application.properties
+++ b/packages/server/src/main/resources/application.properties
@@ -87,6 +87,7 @@ terarium.serviceRequestPatterns[11]=/simulations/**
terarium.serviceRequestPatterns[12]=/code-asset/**
terarium.serviceRequestPatterns[13]=/workflows/**
terarium.serviceRequestPatterns[14]=/interventions/**
+terarium.serviceRequestPatterns[15]=/knowledge/**
terarium.extractionService.poolSize=10
terarium.cacheHeadersMaxAge=86400
management.endpoints.web.exposure.include=health,prometheus
diff --git a/packages/server/src/main/resources/messages.properties b/packages/server/src/main/resources/messages.properties
index 43fef9ea86..c6a9fb48ca 100644
--- a/packages/server/src/main/resources/messages.properties
+++ b/packages/server/src/main/resources/messages.properties
@@ -32,6 +32,7 @@ document.not-found = We couldn't find the requested document. Please verify that
document.unable-to-delete = We couldn't delete the document. Please try again later.
document.unable-to-update = We couldn't update the document. Please try again later.
document.text-length-exceeded = This document exceeds our 600,000-word limit. If you still need to analyze this document, contact support.
+document.extracton.failed = Document extraction failed. Please try again later.
mira.concept.bad-curies = Our domain knowledge service (MIRA) couldn't find any valid concepts for the selected IDs. Please review the IDs that you selected and try again.
mira.concept.bad-query = Our domain knowledge service (MIRA) couldn't find any valid concepts for the entered query. Please review your search criteria and try again.