class_docstr: Teacher that display binary classes __ok__, __notok__ on bot response.
class_docstr_tok: ["Teacher","that","display","binary","classes","__ok__",",","__notok__","on","bot","response","."]
code: def __init__(self, opt, shared=None):
      opt_cp = copy.deepcopy(opt)
      opt_cp["add_bot_failure_to_feedback_input"] = True
      self.must_have_knowledge_sentence = opt_cp[
          "must_have_knowledge_sentence"
      ]
      if self.must_have_knowledge_sentence:
          opt_cp["add_knowledge_sentence_to_feedback_input"] = True
      if (
          not self.must_have_knowledge_sentence
          and opt_cp["add_knowledge_sentence_to_feedback_input"]
      ):
          warn_once(
              "You are loading Satisfaction Teacher with a mixture of examples both w/ and w/o knowledge"
          )
      self.prepend_task_specifics = opt_cp["prepend_task_specifics"]
      self.positive_example_source = opt_cp.get(
          "positive_example_source", "all"
      )
      super().__init__(opt_cp, shared)
      self.id = f'fits_satisfaction_{opt_cp["mutators"]}_prependtask_{self.prepend_task_specifics}_{self.positive_example_source}'
  
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 FitsSatisfactionTeacher object from inherited base classes: FitsBaseTeacher with example: obj = FitsSatisfactionTeacher(opt, shared)