class_docstr: Base class for MultiLIGHT teacher.
  
  This is an abstract class: do NOT use directly!
class_docstr_tok: ["Base","class","for","MultiLIGHT","teacher",".","This","is","an","abstract","class",":","do","NOT","use","directly","!"]
code: def add_cmdline_args(
      cls, parser: ParlaiParser, partial_opt: Optional[Opt] = None
  ) -> ParlaiParser:
      super().add_cmdline_args(parser, partial_opt)
      agent = parser.add_argument_group("MultiLIGHT Teacher Arguments")
      agent.add_argument(
          "--episode-quality-tiers",
          type=str,
          default="1,2",
          help="Comma separated list of tiers of data quality for episodes to include. "
          "The available tiers are 1 (high), 2 (low) quality."
          " NOTE: only training data split has tiers. valid and test are only tier 1 data.",
      )
      agent.add_argument(
          "--speaker-quality-tiers",
          type=str,
          default="1,2",
          help="Comma separated list of tiers of data quality for speakers to include. "
          "The available tiers are 1 (high), 2 (low) quality."
          " NOTE: only training data split has tiers. valid and test are only tier 1 data.",
      )
      agent.add_argument(
          "--utterance-delimiter",
          type=str,
          default="\n",
          help="A string used to separate each utterance in the context. Defaults to newline. For example, 'A: Hello\nB: Hi there'.",
      )
      agent.add_argument(
          "--use-start-token",
          type="bool",
          default=False,
          help="Use start token at the beginning of each conversation, and include the first sentence as a training example.",
      )
      agent.add_argument(
          "--start-token",
          type=str,
          default=START_TOKEN,
          help=f"The token to use to indicate the beginning of a conversation. Defaults to {START_TOKEN}",
      )
      agent.add_argument(
          "--include-speaker-in-label",
          type="bool",
          default=True,
          help="Whether to include speaker labels in the label. "
          "For example, message = { label: 'Rachel: Hi' } instead of message = { label: 'Hi' }",
      )
      agent.add_argument(
          "--include-speaker-in-context",
          type="bool",
          default=True,
          help="Whether to include speaker labels in the context. "
          "For example, message = { text: 'Rachel: Hi' } instead of message = { text: 'Hi' }",
      )
      agent.add_argument(
          "--add-speaker-to-context-end",
          type="bool",
          default=False,
          help="Append the current speaker (who says `label`) to the end of each context. Defaults to True.",
      )
      agent.add_argument(
          "--speaker-token-delimiter",
          type=str,
          default=SPEAKER_TOKEN_DELIM,
          help="The token to use to separate the speaker label from the actual utterance in `obs['text']`.",
      )
      agent.add_argument(
          "--include-timestep-in-context",
          type="bool",
          default=False,
          help="If true, will add the timestep as part of the context for each previous utterance.",
      )
      agent.add_argument(
          "--add-current-timestep-to-context",
          type="bool",
          default=False,
          help="If true, will add the current timestep at the end of the context.",
      )
      agent.add_argument(
          "--add-personas-to-context",
          type="bool",
          default=False,
          help="If true, will prepend the flattened persona descriptions to the context.",
      )
      agent.add_argument(
          "--add-location-to-context",
          type="bool",
          default=False,
          help="If true, will prepend the flattened location description to the context.",
      )
      return parser
  
imports: from abc import ABC, abstractclassmethod
  import copy
  import jsonlines
  import random
  import os
  from typing import Any, Dict, List, Optional, Set, Tuple
  from parlai.core.message import Message
  from parlai.core.metrics import ExactMatchMetric, F1Metric
  from parlai.core.opt import Opt
  from parlai.core.params import ParlaiParser
  from parlai.core.teachers import DialogTeacher
  from parlai.core.torch_classifier_agent import ConfusionMatrixMetric
  from parlai.utils.data import DatatypeHelper
  from parlai.tasks.light_multiparty.build import build, DATASET_NAME
label_desc: Use image node_id 2 for calling the BaseTeacher obj's underlying member method code with example usage: obj.add_cmdline_args(cls, parser, partial_opt) and returns: parser