class_docstr: EDCLeftToRightMutator prepares data for training left to right (LTR) classifier for
  Encoder-Decoder Classifier (EDC) model.
  
  This limits to context to all but last utterance that is fed to the encoder.
  The final utterance is considered as a label for the decoder and the attribute/classifier
  labels are stored seperately marking the final utterance pos. or neg.
  
  This mutator also adds a is_ltr flag to differentiate classifier exs from the generator
  exs which are used to finetune the generator model.
code: def many_episode_mutation(
      self, episode: List[Message]
  ) -> List[List[Message]]:
      new_episodes = []
      for message in episode:
          text = message["text"]
          utterances = text.split("\n")
  
          if len(utterances) < 2:
              continue
  
          new_message = message.copy()
          new_message.force_set("is_ltr", True)
          new_message.force_set(
              "classifier_label", message["labels"][0]
          )
          new_text = "\n".join(utterances[:-1])
          new_message.force_set("text", new_text)
          new_message.force_set("labels", [utterances[-1]])
          new_episodes.append([new_message])
      return new_episodes
  
imports: from typing import List, Tuple
  from typing import Optional
  from parlai.core.agents import Agent, create_agent_from_model_file, create_agent_from_shared
  from parlai.core.params import ParlaiParser
  from parlai.core.message import Message
  from parlai.core.opt import Opt
  from parlai.core.mutators import register_mutator, ManyEpisodeMutator, EpisodeMutator
  import parlai.tasks.bot_adversarial_dialogue.agents
  import parlai.tasks.dialogue_safety.agents
  import parlai.utils.logging
  from parlai.core.metrics import AverageMetric
label_desc: Use image node_id 1 for calling the EDCLeftToRightMutator obj's underlying member method code with example usage: obj.many_episode_mutation(episode) and returns: new_episodes