class_docstr: Teacher for written two-person dialogues with labels being responses for the
  previous statement.
  
  The data is traversed twice (doubled), once for modelling USER replies and once for
  modelling ASSISTANT replies.
class_docstr_tok: ["Teacher","for","written","two-person","dialogues","with","labels","being","responses","for","the","previous","statement",".","The","data","is","traversed","twice","(","doubled",")",",","once","for","modelling","USER","replies","and","once","for","modelling","ASSISTANT","replies","."]
code: def num_episodes(self):
      # For two passes over the data: Once to teach USER and once to teach ASSISTANT
      return len(self.convos) * 2
  
imports: from parlai.core.params import ParlaiParser
  import os
  import pandas
  from parlai.core.opt import Opt
  import parlai.core.tod.tod_core
  from typing import Optional
  from parlai.utils.data import DatatypeHelper
  from parlai.utils.io import PathManager
  import parlai.tasks.taskmaster.build
  import parlai.core.tod.tod_agents
  from parlai.core.teachers import FixedDialogTeacher
  from .None import tm_utils
  import json
label_desc: Use image node_id 4 for calling the SelfDialogueTeacher obj's underlying member method code with example usage: obj.num_episodes() and returns: unknown