Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add found input value to expression to match #305

Open
wants to merge 4 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -114,4 +115,4 @@ public IBehaviorCondition clone() {
clone.setConfigs(getConfigs());
return clone;
}
}
}
10 changes: 7 additions & 3 deletions src/main/java/ai/labs/eddi/modules/nlp/DictionaryUtilities.java
Original file line number Diff line number Diff line change
@@ -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;
Expand All @@ -21,10 +22,13 @@ private static Expressions convertDictionaryEntriesToExpressions(List<IDictionar
dictionaryEntries) {
Expressions expressions = new Expressions();

for (IDictionary.IDictionaryEntry dictionaryEntry : dictionaryEntries) {
expressions.addAll(dictionaryEntry.getExpressions());
for (IDictionary.IFoundWord dictionaryEntry : dictionaryEntries) {
Expressions localExpressions = dictionaryEntry.getExpressions();
for (Expression expression : localExpressions) {
expression.setInputValue(dictionaryEntry.getFoundWord().getValue());
}
expressions.addAll(localExpressions);
}

return expressions;
}

Expand Down
9 changes: 9 additions & 0 deletions src/main/java/ai/labs/eddi/modules/nlp/InputParserTask.java
Original file line number Diff line number Diff line change
Expand Up @@ -64,6 +64,8 @@ public class InputParserTask implements ILifecycleTask {
private static final String KEY_EXPRESSIONS = "expressions";
private static final String KEY_EXPRESSIONS_PARSED = KEY_EXPRESSIONS + ":parsed";
private static final String KEY_INTENT = "intents";

private static final String KEY_EXPRESSIONS_WITH_INPUT = "nobehaviour:" + KEY_EXPRESSIONS + ":withinput";
private static final String KEY_TYPE = "type";
private static final String KEY_CONFIG = "config";

Expand Down Expand Up @@ -190,10 +192,16 @@ private void storeResultInMemory(IConversationMemory.IWritableConversationStep c
Data<List<String>> intentData = new Data<>(KEY_INTENT, intents);
currentStep.storeData(intentData);
currentStep.addConversationOutputList(KEY_INTENT, intents);

currentStep.addConversationOutputObject("withinputexpression", convertObjectToListOfMaps(newExpressions));

}
}
}




@Override
public Object configure(Map<String, Object> configuration, Map<String, Object> extensions)
throws PackageConfigurationException,
Expand Down Expand Up @@ -370,4 +378,5 @@ private static String getResourceType(Map<String, Object> resourceMap) {
URI normalizerUri = URI.create(resourceMap.get(KEY_TYPE).toString());
return normalizerUri.getHost();
}

}
11 changes: 11 additions & 0 deletions src/main/java/ai/labs/eddi/modules/nlp/expressions/Expression.java
Original file line number Diff line number Diff line change
Expand Up @@ -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() {
Expand Down Expand Up @@ -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.
*
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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;

/**
Expand Down Expand Up @@ -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);
Expand Down