class_docstr: Teacher that display free-form text feedbacks.
class_docstr_tok: ["Teacher","that","display","free-form","text","feedbacks","."]
code: def setup_data(self, data_path):
      raw_data = self._load_raw_data(data_path)
  
      data = []
      for chat in raw_data:
          (
              _,
              feedback_examples_with_metadata,
          ) = self._get_perfect_episode(
              chat, is_training=self.is_training
          )
          data.extend(feedback_examples_with_metadata)
  
      for turn in data:
          message = Message(turn)
          yield message, True
  
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 for calling the FitsFeedbackTeacher obj's underlying member method code with example usage: obj.setup_data(data_path) without return types