class_docstr: Used inside of an `AbstractReasoningTeacher` to define how the "Question" and
  "Answer" part of an example should be serialized out to a string, given a dict
  object that includes all necessary information for the example.
  
  The Question includes all context (ex. input background) necessary to generate the
  Answer. This class is responsible for handling its own tokenization.
class_docstr_tok: ["Used","inside","of","an","`","AbstractReasoningTeacher","`","to","define","how","the","``","Question","''","and","''","Answer","''","part","of","an","example","should","be","serialized","out","to","a","string",",","given","a","dict","object","that","includes","all","necessary","information","for","the","example",".","The","Question","includes","all","context","(","ex",".","input","background",")","necessary","to","generate","the","Answer",".","This","class","is","responsible","for","handling","its","own","tokenization","."]
code: def __init__(self, opt: Opt):
      self.opt = opt
      self.inner_separator = opt.get("inner_separator_token", "\t")
      self.answer_token = opt.get("answer_token", "ANSWER: ")
  
imports: from parlai.core.opt import Opt
  from parlai.core.message import Message
  from parlai.core.params import ParlaiParser
  from parlai.core.teachers import DialogTeacher
  from tqdm import tqdm
  from typing import Any, Dict, Iterable, List, Optional, Tuple
label_desc: Use image node_id 1 to create a new AbstractQuestionAnswer object  with example: obj = AbstractQuestionAnswer(opt)