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..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 @@ -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 @@ -114,4 +115,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> intentData = new Data<>(KEY_INTENT, intents); currentStep.storeData(intentData); currentStep.addConversationOutputList(KEY_INTENT, intents); + + currentStep.addConversationOutputObject("withinputexpression", convertObjectToListOfMaps(newExpressions)); + } } } + + + @Override public Object configure(Map configuration, Map extensions) throws PackageConfigurationException, @@ -370,4 +378,5 @@ private static String getResourceType(Map resourceMap) { URI normalizerUri = URI.create(resourceMap.get(KEY_TYPE).toString()); return normalizerUri.getHost(); } + } 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);