def get_conversation(self, client_context): ''' Nếu user.id tồn tại trong conversations hiện thời thì load convo này ra Nếu không thì khởi tạo 1 convo mới dựa trên ClientContext hiện tại Không chỉ khởi tạo mà còn load convo này ''' # TODO move this to Conversations base class if client_context.userid in self._conversations: YLogger.info(client_context, "Retrieving conversation for client %s", client_context.userid) return self._conversations[client_context.userid] else: YLogger.info(client_context, "Creating new conversation for client %s", client_context.userid) conversation = Conversation(client_context) if client_context.brain.properties is not None: conversation.load_initial_variables( client_context.brain.variables) self._conversations[client_context.userid] = conversation self.load_conversation(client_context.userid) return conversation
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 get_conversation(self, client_context): # TODO move this to Conversations base class if client_context.userid in self._conversations: YLogger.info(client_context, "Retrieving conversation for client %s", client_context.userid) return self._conversations[client_context.userid] else: YLogger.info(client_context, "Creating new conversation for client %s", client_context.userid) conversation = Conversation(client_context) if client_context.brain.properties is not None: conversation.load_initial_variables(client_context.brain.variables) self._conversations[client_context.userid] = conversation self.load_conversation(client_context.userid) return conversation
def get_conversation(self, clientid: str): # TODO move this to Conversations base class if clientid in self._conversations: if logging.getLogger().isEnabledFor(logging.INFO): logging.info("Retrieving conversation for client %s", clientid) return self._conversations[clientid] else: if logging.getLogger().isEnabledFor(logging.INFO): logging.info("Creating new conversation for client %s", clientid) conversation = Conversation(clientid, self) if self.brain.properties is not None: conversation.load_initial_variables(self.brain.variables) self._conversations[clientid] = conversation self.load_conversation(clientid) return conversation