if (!conversationState.equals(memorySnapshot.getConversationState())) { continue; conversationDescriptor.setConversationState(memorySnapshot.getConversationState());
public static IConversationMemory convertConversationMemorySnapshot(ConversationMemorySnapshot snapshot) { ConversationMemory conversationMemory = new ConversationMemory(snapshot.getConversationId(), snapshot.getBotId(), snapshot.getBotVersion(), snapshot.getUserId()); conversationMemory.setConversationState(snapshot.getConversationState()); conversationMemory.getConversationProperties().putAll(snapshot.getConversationProperties()); List<IConversationMemory.IConversationStep> redoSteps = iterateRedoCache(snapshot.getRedoCache()); for (IConversationMemory.IConversationStep redoStep : redoSteps) { conversationMemory.getRedoCache().add(redoStep); } List<ConversationMemorySnapshot.ConversationStepSnapshot> conversationSteps = snapshot.getConversationSteps(); for (int i = 0; i < conversationSteps.size(); i++) { ConversationOutput conversationOutput = snapshot.getConversationOutputs().get(i); ConversationMemorySnapshot.ConversationStepSnapshot conversationStepSnapshot = conversationSteps.get(i); if (i > 0) { conversationMemory.startNextStep(conversationOutput); } for (ConversationMemorySnapshot.PackageRunSnapshot packageRunSnapshot : conversationStepSnapshot.getPackages()) { for (ConversationMemorySnapshot.ResultSnapshot resultSnapshot : packageRunSnapshot.getLifecycleTasks()) { Data data = new Data(resultSnapshot.getKey(), resultSnapshot.getResult(), resultSnapshot.getPossibleResults(), resultSnapshot.getTimestamp(), resultSnapshot.isPublic()); conversationMemory.getCurrentStep().storeData(data); } } } return conversationMemory; }
public static SimpleConversationMemorySnapshot convertSimpleConversationMemory(ConversationMemorySnapshot conversationMemorySnapshot, boolean returnDetailed) { SimpleConversationMemorySnapshot simpleSnapshot = new SimpleConversationMemorySnapshot(); if (conversationMemorySnapshot.getUserId() != null) { simpleSnapshot.setUserId(conversationMemorySnapshot.getUserId()); } simpleSnapshot.setBotId(conversationMemorySnapshot.getBotId()); simpleSnapshot.setBotVersion(conversationMemorySnapshot.getBotVersion()); simpleSnapshot.setConversationState(conversationMemorySnapshot.getConversationState()); simpleSnapshot.setEnvironment(conversationMemorySnapshot.getEnvironment()); simpleSnapshot.setRedoCacheSize(conversationMemorySnapshot.getRedoCache().size()); simpleSnapshot.getConversationOutputs().addAll(conversationMemorySnapshot.getConversationOutputs()); simpleSnapshot.getConversationProperties().putAll(conversationMemorySnapshot.getConversationProperties()); for (ConversationMemorySnapshot.ConversationStepSnapshot conversationStepSnapshot : conversationMemorySnapshot.getConversationSteps()) { SimpleConversationMemorySnapshot.SimpleConversationStep simpleConversationStep = new SimpleConversationMemorySnapshot.SimpleConversationStep(); simpleSnapshot.getConversationSteps().add(simpleConversationStep); for (ConversationMemorySnapshot.PackageRunSnapshot packageRunSnapshot : conversationStepSnapshot.getPackages()) { for (ConversationMemorySnapshot.ResultSnapshot resultSnapshot : packageRunSnapshot.getLifecycleTasks()) { if (returnDetailed || resultSnapshot.isPublic()) { Object result = resultSnapshot.getResult(); simpleConversationStep.getConversationStep().add( new SimpleConversationMemorySnapshot.ConversationStepData(resultSnapshot.getKey(), result)); } else { continue; } simpleConversationStep.setTimestamp(resultSnapshot.getTimestamp()); } } } return simpleSnapshot; }