class_docstr: Teacher that builds up Message objects based on child `question and answer` and
  `reason` classes.
  
  Also handles making exemplars.
class_docstr_tok: ["Teacher","that","builds","up","Message","objects","based","on","child","`","question","and","answer","`","and","`","reason","`","classes",".","Also","handles","making","exemplars","."]
docstr: To keep flexibility, do not override this function.
docstr_tok: ["To","keep","flexibility",",","do","not","override","this","function","."]
code: def get_task_prompt(self) -> str:
      """
      To keep flexibility, do not override this function.
      """
      prompt = self.opt.get("task_prompt", "")
      if prompt == "":
          raise RuntimeError(
              "Got an empty string for the prompt - is this intentional? If not, set with "
              "`parser.set_defaults(task_prompt='<INSERT PROMPT>')` in `add_cmdline_args`."
          )
      return prompt
  
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 4 for calling the AbstractReasoningTeacher obj's underlying member method code with example usage: obj.get_task_prompt() and returns: prompt