class_docstr: Base Teacher that extract metadata for dialogues.
class_docstr_tok: ["Base","Teacher","that","extract","metadata","for","dialogues","."]
code: def __init__(self, opt, shared=None):
      opt["datafile"] = build(opt)
      self.is_training = DatatypeHelper.is_training(opt["datatype"])
      self.metrics_per_feedback = opt.get("metrics_per_feedback", None)
      self.add_bot_failure_to_feedback_input = opt.get(
          "add_bot_failure_to_feedback_input", False
      )
      self.add_knowledge_sentence_to_feedback_input = opt.get(
          "add_knowledge_sentence_to_feedback_input", False
      )
      self.unseen_task = opt.get("unseen_task", False)
      super().__init__(opt, shared)
      self.id = f'fits_{opt["mutators"]}_{opt["fits_task_version"]}_seen{opt["unseen_task"]}'
  
imports: import os
  import copy
  import json
  import random
  from typing import Optional
  from parlai.utils.misc import warn_once
  from parlai.utils.data import DatatypeHelper
  from parlai.core.opt import Opt
  from parlai.core.teachers import DialogTeacher
  from parlai.core.params import ParlaiParser
  from parlai.core.message import Message
  from parlai.utils.io import PathManager
  from parlai.tasks.wizard_of_internet import constants
  from .mutators import normalize_reply, get_knowledge_appended_context, get_knowledge_sentence_with_special_tokens_only
  from .build import build
  from .constants import FeedbackType, TITLE_PASSAGE_DELIMITER, OK_LABEL, NOT_OK_LABEL
label_desc: Use image node_id 2 to create a new FitsBaseTeacher object from inherited base classes: DialogTeacher with example: obj = FitsBaseTeacher(opt, shared)