def get_conversation(self, client_context): assert (client_context is not None) assert (client_context.userid is not None) if client_context.userid in self._conversations: YLogger.info(client_context, "Retrieving conversation for client %s", client_context.userid) conversation = self._conversations[client_context.userid] # Load existing conversation from cache if self.configuration.multi_client: if self._conversation_storage is not None: self._conversation_storage.load_conversation(client_context, conversation) else: YLogger.info(client_context, "Creating new conversation for client %s", client_context.userid) conversation = Conversation(client_context) if client_context.brain.default_variables is not None: conversation.load_initial_variables(client_context.brain.default_variables) self._conversations[client_context.userid] = conversation if self._conversation_storage is not None: self._conversation_storage.load_conversation(client_context, conversation) if self.configuration.restore_last_topic is True: pass return conversation
def set_conversation_valiables(self, client_context, variables): if client_context.userid in self._conversations: conversation = self._conversations[client_context.userid] if self._conversation_storage is not None: self._conversation_storage.load_conversation( client_context, conversation) else: conversation = Conversation(client_context) conversation.num_categories = client_context.brain.aiml_parser.num_categories if self._conversation_storage is not None: self._conversation_storage.load_conversation( client_context, conversation) conversation.load_initial_variables( client_context.brain.default_variables) self._conversations[client_context.userid] = conversation for variable in variables: try: var_type = variable['type'] var_key = variable['key'] var_value = variable['value'] except Exception: raise if var_type == 'name': YLogger.debug(client_context, "set userid[%s] variable name[%s] = [%s]", client_context.userid, var_key, var_value) conversation.set_property(var_key, var_value) elif var_type == 'data': YLogger.debug(client_context, "set userid[%s] variable data[%s] = [%s]", client_context.userid, var_key, var_value) conversation.set_data_property(var_key, var_value) else: raise Exception('variable type not supported.') if self._conversation_storage is not None: self._conversation_storage.modify_conversation_data( client_context, conversation) if client_context.server_mode is True: self.remove_conversation(client_context)
def get_conversation(self, client_context): assert (client_context is not None) assert (client_context.userid is not None) if client_context.userid in self._conversations: YLogger.debug(client_context, "Retrieving conversation for client %s", client_context.userid) conversation = self._conversations[client_context.userid] # Load existing conversation from cache if self.configuration.multi_client: if self._conversation_storage is not None: self._conversation_storage.load_conversation( client_context, conversation) else: YLogger.debug(client_context, "Creating new conversation for client %s", client_context.userid) conversation = Conversation(client_context) conversation.num_categories = client_context.brain.aiml_parser.num_categories conversation.load_initial_variables( client_context.brain.default_variables) self._conversations[client_context.userid] = conversation if self._conversation_storage is not None: self._conversation_storage.load_conversation( client_context, conversation) if client_context.server_mode is False: self.load_learnf_with_userid(client_context) if self.configuration.restore_last_topic is True: pass return conversation