code: def _chat_history_to_conversation(self, history, model_info):
      bot_username = self.chat_task.bot_params["bot_username"]
  
      question_col = model_info["user_column"]
      answer_col = model_info["bot_column"]
  
      messages = []
  
      for message in history:
          text = message.text
  
          if text is None or text.strip() == "":
              # skip empty rows
              continue
  
          if message.user != bot_username:
              # create new message row
              messages.append({question_col: text, answer_col: None})
          else:
              if len(messages) == 0:
                  # add empty row
                  messages.append(
                      {question_col: None, answer_col: None}
                  )
  
              # update answer in previous column
              messages[-1][answer_col] = text
      return messages
  
imports: import datetime
  from mindsdb.interfaces.storage import db
  from .types import BotException
label_desc: Use image node_id 3 for calling the ModelExecutor obj's underlying member method code with example usage: obj._chat_history_to_conversation(history, model_info) and returns: messages