@Override public Map<String, Object> convert(IConversationMemory memory) { Map<String, Object> ret = new LinkedHashMap<>(); List<IData<Context>> contextDataList = memory.getCurrentStep().getAllData(KEY_CONTEXT); var contextMap = prepareContext(contextDataList); var memoryMap = convertMemoryItems(memory); var conversationProperties = memory.getConversationProperties(); if (!contextMap.isEmpty()) { ret.put(KEY_CONTEXT, contextMap); ret.putAll(contextMap); } if (!conversationProperties.isEmpty()) { ret.put(KEY_PROPERTIES, conversationProperties.toMap()); } if (!memoryMap.isEmpty()) { ret.put(KEY_MEMORY, convertMemoryItems(memory)); } return ret; }
@Override public ExecutionState execute(IConversationMemory memory, List<BehaviorRule> trace) { List<IData<Context>> contextData = memory.getCurrentStep().getAllData(CONTEXT);
@Override public void executeTask(IConversationMemory memory) { IWritableConversationStep currentStep = memory.getCurrentStep(); List<IData<Object>> outputDataList = currentStep.getAllData(KEY_OUTPUT); List<IData<List<QuickReply>>> quickReplyDataList = currentStep.getAllData(KEY_QUICK_REPLIES); final Map<String, Object> contextMap = memoryItemConverter.convert(memory); if (!outputDataList.isEmpty()) { currentStep.resetConversationOutput(KEY_OUTPUT); } templateOutputTexts(memory, outputDataList, contextMap); if (!quickReplyDataList.isEmpty()) { currentStep.resetConversationOutput(KEY_QUICK_REPLIES); } templatingQuickReplies(memory, quickReplyDataList, contextMap); }
IConversationMemory.IWritableConversationStep currentStep = memory.getCurrentStep(); IData<String> expressionsData = currentStep.getLatestData(EXPRESSIONS_PARSED_IDENTIFIER); List<IData<Context>> contextDataList = currentStep.getAllData(CONTEXT_IDENTIFIER); IData<List<String>> actionsData = currentStep.getLatestData(ACTIONS_IDENTIFIER);
@Override public void executeTask(IConversationMemory memory) { IWritableConversationStep currentStep = memory.getCurrentStep(); List<IData<Context>> contextDataList = currentStep.getAllData("context"); storeContextQuickReplies(currentStep, contextDataList); IData<List<String>> latestData = currentStep.getLatestData(KEY_ACTIONS); if (latestData == null) { return; } List<String> actions = latestData.getResult(); List<IOutputFilter> outputFilters = createOutputFilters(memory, actions); Map<String, List<OutputEntry>> outputs = outputGeneration.getOutputs(outputFilters); outputs.forEach((action, outputEntries) -> outputEntries.forEach(outputEntry -> { List<OutputValue> outputValues = outputEntry.getOutputs(); selectAndStoreOutput(currentStep, action, outputValues); storeQuickReplies(currentStep, outputEntry.getQuickReplies(), outputEntry.getAction()); })); }