private LinkedList<IOutputFilter> createOutputFilters(IConversationMemory memory, List<String> actions) { return actions.stream().map(action -> new OutputFilter(action, countActionOccurrences(memory.getPreviousSteps(), action))). collect(Collectors.toCollection(LinkedList::new)); }
private static Map<String, Object> convertMemoryItems(IConversationMemory memory) { Map<String, Object> props = new HashMap<>(); IWritableConversationStep currentStep; IConversationStep lastStep; currentStep = memory.getCurrentStep(); var current = currentStep.getConversationOutput(); props.put(KEY_CURRENT, current); var last = new ConversationOutput(); if (memory.getPreviousSteps().size() > 0) { lastStep = memory.getPreviousSteps().get(0); last = lastStep.getConversationOutput(); } props.put(KEY_LAST, last); var past = memory.getConversationOutputs(); if (past.size() > 1) { past = past.subList(1, past.size()); } else { past = new LinkedList<>(); } props.put(KEY_PAST, past); return props; } }
private List<IDictionary> prepareTemporaryDictionaries(IConversationMemory memory) { IConversationMemory.IConversationStepStack previousSteps = memory.getPreviousSteps(); List<IDictionary> temporaryDictionaries = Collections.emptyList(); if (previousSteps.size() > 0) { List<IData<List<Map<String, String>>>> data = previousSteps.get(0).getAllData("quickReplies"); if (data != null) { List<QuickReply> quickReplies = extractQuickReplies(data); temporaryDictionaries = convertQuickReplies(quickReplies, expressionProvider); } } return temporaryDictionaries; }
IConversationStepStack previousSteps = memory.getPreviousSteps(); if (previousSteps.size() > 0) { actionsData = previousSteps.get(0).getLatestData(ACTIONS_IDENTIFIER);
@Override public ExecutionState execute(IConversationMemory memory, List<BehaviorRule> trace) { IData<String> data; switch (occurrence) { case currentStep: data = memory.getCurrentStep().getLatestData(KEY_EXPRESSIONS); state = evaluateInputExpressions(data); break; case lastStep: IConversationStepStack previousSteps = memory.getPreviousSteps(); if (previousSteps.size() > 0) { data = previousSteps.get(0).getLatestData(KEY_EXPRESSIONS); state = evaluateInputExpressions(data); } else { state = FAIL; } break; case anyStep: state = occurredInAnyStep(memory, KEY_EXPRESSIONS, this::evaluateInputExpressions) ? SUCCESS : FAIL; break; case never: state = occurredInAnyStep(memory, KEY_EXPRESSIONS, this::evaluateInputExpressions) ? FAIL : SUCCESS; break; } return state; }
@Override public ExecutionState execute(IConversationMemory memory, List<BehaviorRule> trace) { IData<List<String>> data; switch (occurrence) { case currentStep: data = memory.getCurrentStep().getLatestData(KEY_ACTIONS); state = evaluateActions(data); break; case lastStep: IConversationMemory.IConversationStepStack previousSteps = memory.getPreviousSteps(); if (previousSteps.size() > 0) { data = previousSteps.get(0).getLatestData(KEY_ACTIONS); state = evaluateActions(data); } else { state = FAIL; } break; case anyStep: state = occurredInAnyStep(memory, KEY_ACTIONS, this::evaluateActions) ? SUCCESS : FAIL; break; case never: state = occurredInAnyStep(memory, KEY_ACTIONS, this::evaluateActions) ? FAIL : SUCCESS; break; } return state; }