code: def process(self):
      # this list should be changed if mode was switched
      switched_to_mode = []
  
      functions_all = self._prepare_available_functions()
      skills = self._prepare_skills()
  
      # Modes handling
      functions_all.append(
          self._mode_switching_function(switched_to_mode)
      )
  
      model_executor, functions = self.enter_bot_mode(functions_all)
  
      # workaround: don't show history if mode is not selected, otherwise bot doesn't decide to change mode
      if self.chat_memory.get_mode() is None:
          self.chat_memory.hide_history(left_count=1)
  
      model_output = model_executor.call(
          self.chat_memory.get_history(), functions, skills
      )
  
      if len(switched_to_mode) > 0:
          # mode changed:
          # - clear previous history
          # - run once again
  
          # start conversation only from last message
          self.chat_memory.hide_history(left_count=1)
  
          model_executor, functions = self.enter_bot_mode(functions_all)
  
          model_output = model_executor.call(
              self.chat_memory.get_history(), functions, skills
          )
  
      return model_output
  
file_path: mindsdb/mindsdb/interfaces/chatbot/chatbot_executor.py
imports: from .model_executor import ModelExecutor
  from .types import Function, BotException
label_desc: Use image node_id 6 for calling the MultiModeBotExecutor obj's underlying member method code with example usage: obj.process() and returns: model_output