From b4185886741ac9984aa51841ae3c8b046994d8f3 Mon Sep 17 00:00:00 2001 From: rolandpickl Date: Thu, 4 Aug 2022 13:59:21 +0200 Subject: [PATCH 1/4] add input text to expression --- .../behavior/impl/conditions/InputMatcher.java | 10 ++++++---- .../ai/labs/eddi/modules/nlp/DictionaryUtilities.java | 10 +++++++--- .../ai/labs/eddi/modules/nlp/InputParserTask.java | 5 ++++- .../labs/eddi/modules/nlp/expressions/Expression.java | 11 +++++++++++ .../modules/properties/impl/PropertySetterTask.java | 4 +++- 5 files changed, 31 insertions(+), 9 deletions(-) diff --git a/src/main/java/ai/labs/eddi/modules/behavior/impl/conditions/InputMatcher.java b/src/main/java/ai/labs/eddi/modules/behavior/impl/conditions/InputMatcher.java index 3817b5f42..8cd733f9e 100644 --- a/src/main/java/ai/labs/eddi/modules/behavior/impl/conditions/InputMatcher.java +++ b/src/main/java/ai/labs/eddi/modules/behavior/impl/conditions/InputMatcher.java @@ -16,6 +16,7 @@ import static ai.labs.eddi.engine.memory.IConversationMemory.IConversationStepStack; import static ai.labs.eddi.modules.behavior.impl.conditions.IBehaviorCondition.ExecutionState.*; +import static ai.labs.eddi.utils.StringUtilities.joinStrings; /** * @author ginccc @@ -63,7 +64,7 @@ public void setConfigs(Map configs) { @Override public ExecutionState execute(IConversationMemory memory, List trace) { - IData data; + IData data; ExecutionState state = NOT_EXECUTED; switch (occurrence) { case currentStep -> { @@ -88,10 +89,11 @@ public ExecutionState execute(IConversationMemory memory, List tra return state; } - private ExecutionState evaluateInputExpressions(IData data) { + private ExecutionState evaluateInputExpressions(IData data) { Expressions inputExpressions = new Expressions(); if (data != null && data.getResult() != null) { - inputExpressions = expressionProvider.parseExpressions(data.getResult()); + String expressionString = joinStrings(", ", data.getResult()); + inputExpressions = expressionProvider.parseExpressions(expressionString); } if (isInputEmpty(inputExpressions) || @@ -114,4 +116,4 @@ public IBehaviorCondition clone() { clone.setConfigs(getConfigs()); return clone; } -} \ No newline at end of file +} diff --git a/src/main/java/ai/labs/eddi/modules/nlp/DictionaryUtilities.java b/src/main/java/ai/labs/eddi/modules/nlp/DictionaryUtilities.java index 61102c7f4..a8bbb506d 100644 --- a/src/main/java/ai/labs/eddi/modules/nlp/DictionaryUtilities.java +++ b/src/main/java/ai/labs/eddi/modules/nlp/DictionaryUtilities.java @@ -1,6 +1,7 @@ package ai.labs.eddi.modules.nlp; +import ai.labs.eddi.modules.nlp.expressions.Expression; import ai.labs.eddi.modules.nlp.expressions.Expressions; import ai.labs.eddi.modules.nlp.expressions.utilities.IExpressionProvider; import ai.labs.eddi.modules.nlp.extensions.dictionaries.IDictionary; @@ -21,10 +22,13 @@ private static Expressions convertDictionaryEntriesToExpressions(List expressionsData = new Data<>(KEY_EXPRESSIONS_PARSED, expressionString); + IData expressionsData = new Data<>(KEY_EXPRESSIONS_PARSED, newExpressions); currentStep.storeData(expressionsData); currentStep.addConversationOutputString(KEY_EXPRESSIONS, expressionString); @@ -190,6 +192,7 @@ private void storeResultInMemory(IConversationMemory.IWritableConversationStep c Data> intentData = new Data<>(KEY_INTENT, intents); currentStep.storeData(intentData); currentStep.addConversationOutputList(KEY_INTENT, intents); + } } } diff --git a/src/main/java/ai/labs/eddi/modules/nlp/expressions/Expression.java b/src/main/java/ai/labs/eddi/modules/nlp/expressions/Expression.java index 5caa4ee98..f624a5c19 100644 --- a/src/main/java/ai/labs/eddi/modules/nlp/expressions/Expression.java +++ b/src/main/java/ai/labs/eddi/modules/nlp/expressions/Expression.java @@ -13,6 +13,9 @@ public class Expression implements Cloneable { protected String domain; protected String expressionName; + + protected String inputValue; + protected Expressions subExpressions = new Expressions(); protected Expression() { @@ -136,6 +139,14 @@ public Boolean containsExpressionWithName(String expressionName) { return getAllExpressionsWithNames(expressionName).size() > 0; } + public String getInputValue() { + return inputValue; + } + + public void setInputValue(String inputValue) { + this.inputValue = inputValue; + } + /** * Returns a list of expressions that have the given expressionName. * diff --git a/src/main/java/ai/labs/eddi/modules/properties/impl/PropertySetterTask.java b/src/main/java/ai/labs/eddi/modules/properties/impl/PropertySetterTask.java index 3952f1ed0..8ce0793bb 100644 --- a/src/main/java/ai/labs/eddi/modules/properties/impl/PropertySetterTask.java +++ b/src/main/java/ai/labs/eddi/modules/properties/impl/PropertySetterTask.java @@ -33,6 +33,7 @@ import static ai.labs.eddi.models.Property.Scope.conversation; import static ai.labs.eddi.utils.RuntimeUtilities.checkNotNull; import static ai.labs.eddi.utils.RuntimeUtilities.isNullOrEmpty; +import static ai.labs.eddi.utils.StringUtilities.joinStrings; import static java.lang.Boolean.parseBoolean; /** @@ -111,7 +112,8 @@ public void execute(IConversationMemory memory, Object component) throws Lifecyc } if (expressionsData != null) { - aggregatedExpressions.addAll(expressionProvider.parseExpressions(expressionsData.getResult())); + String expressionString = joinStrings(", ", expressionsData.getResult()); + aggregatedExpressions.addAll(expressionProvider.parseExpressions(expressionString)); } var properties = propertySetter.extractProperties(aggregatedExpressions); From 5015bdeaf1485ebcd884d43bdc1650ffef655c12 Mon Sep 17 00:00:00 2001 From: rolandpickl Date: Thu, 4 Aug 2022 21:06:09 +0200 Subject: [PATCH 2/4] add input text to expression --- src/main/java/ai/labs/eddi/modules/nlp/InputParserTask.java | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/main/java/ai/labs/eddi/modules/nlp/InputParserTask.java b/src/main/java/ai/labs/eddi/modules/nlp/InputParserTask.java index 3d62e7241..d2b8c10f3 100644 --- a/src/main/java/ai/labs/eddi/modules/nlp/InputParserTask.java +++ b/src/main/java/ai/labs/eddi/modules/nlp/InputParserTask.java @@ -193,10 +193,15 @@ private void storeResultInMemory(IConversationMemory.IWritableConversationStep c currentStep.storeData(intentData); currentStep.addConversationOutputList(KEY_INTENT, intents); + currentStep.addConversationOutputObject("withinputexpression", convertObjectToListOfMaps(newExpressions)); + } } } + + + @Override public Object configure(Map configuration, Map extensions) throws PackageConfigurationException, @@ -373,4 +378,5 @@ private static String getResourceType(Map resourceMap) { URI normalizerUri = URI.create(resourceMap.get(KEY_TYPE).toString()); return normalizerUri.getHost(); } + } From 323931e41dc0e3afa8391665865f2ea7f2a8ef50 Mon Sep 17 00:00:00 2001 From: rolandpickl Date: Thu, 4 Aug 2022 21:20:28 +0200 Subject: [PATCH 3/4] add input text to expression --- .../modules/behavior/impl/conditions/InputMatcher.java | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/src/main/java/ai/labs/eddi/modules/behavior/impl/conditions/InputMatcher.java b/src/main/java/ai/labs/eddi/modules/behavior/impl/conditions/InputMatcher.java index 8cd733f9e..d1cd56810 100644 --- a/src/main/java/ai/labs/eddi/modules/behavior/impl/conditions/InputMatcher.java +++ b/src/main/java/ai/labs/eddi/modules/behavior/impl/conditions/InputMatcher.java @@ -64,7 +64,7 @@ public void setConfigs(Map configs) { @Override public ExecutionState execute(IConversationMemory memory, List trace) { - IData data; + IData data; ExecutionState state = NOT_EXECUTED; switch (occurrence) { case currentStep -> { @@ -89,11 +89,10 @@ public ExecutionState execute(IConversationMemory memory, List tra return state; } - private ExecutionState evaluateInputExpressions(IData data) { + private ExecutionState evaluateInputExpressions(IData data) { Expressions inputExpressions = new Expressions(); if (data != null && data.getResult() != null) { - String expressionString = joinStrings(", ", data.getResult()); - inputExpressions = expressionProvider.parseExpressions(expressionString); + inputExpressions = expressionProvider.parseExpressions(data.getResult()); } if (isInputEmpty(inputExpressions) || From 1501461e0835521b41d837da3f5d9e63905c1138 Mon Sep 17 00:00:00 2001 From: rolandpickl Date: Thu, 4 Aug 2022 21:26:56 +0200 Subject: [PATCH 4/4] add input text to expression --- src/main/java/ai/labs/eddi/modules/nlp/InputParserTask.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/ai/labs/eddi/modules/nlp/InputParserTask.java b/src/main/java/ai/labs/eddi/modules/nlp/InputParserTask.java index d2b8c10f3..dbbe7ac5c 100644 --- a/src/main/java/ai/labs/eddi/modules/nlp/InputParserTask.java +++ b/src/main/java/ai/labs/eddi/modules/nlp/InputParserTask.java @@ -181,7 +181,7 @@ private void storeResultInMemory(IConversationMemory.IWritableConversationStep c } String expressionString = joinStrings(", ", newExpressions); - IData expressionsData = new Data<>(KEY_EXPRESSIONS_PARSED, newExpressions); + IData expressionsData = new Data<>(KEY_EXPRESSIONS_PARSED, expressionString); currentStep.storeData(expressionsData); currentStep.addConversationOutputString(KEY_EXPRESSIONS, expressionString);