class_docstr: This onboarding world displays a sample conversation with checkboxes of the same
  annotations as in the real HIT, but it is not a live conversation (all utterances
  are displayed at once).
  
  constants.py has the task data with correct answers in json form
  (opt['onboard_task_data']). User gets to try again onboard_failures_max_allowed
  times and is soft banned if they fail more than that.
class_docstr_tok: ["This","onboarding","world","displays","a","sample","conversation","with","checkboxes","of","the","same","annotations","as","in","the","real","HIT",",","but","it","is","not","a","live","conversation","(","all","utterances","are","displayed","at","once",")",".","constants.py","has","the","task","data","with","correct","answers","in","json","form","(","opt","[","'onboard_task_data","'","]",")",".","User","gets","to","try","again","onboard_failures_max_allowed","times","and","is","soft","banned","if","they","fail","more","than","that","."]
code: def __init__(self, opt, agent: "MephistoAgentWrapper"):
      super().__init__(opt, agent)
  
      self.skip_onboarding = opt["skip_onboarding"]
  
      self.onboard_task_data = opt["onboard_task_data"]
      self.status = "DISCONNECT"
      self.onboard_statistics = opt["onboard_statistics"]
      self.statistics_condition = opt["statistics_condition"]
      self.max_onboard_time = opt["max_onboard_time"]
      self.onboarding_qualification = opt["onboarding_qualification"]
      self.worker_id = get_mturk_id_from_mephisto_wrapper(self.agent)
      self.annotations = None
  
imports: import time
  import os
  import json
  from abc import ABC, abstractmethod
  from typing import Any, Dict, List, Optional, Tuple
  import numpy
  from parlai.core.agents import create_agent_from_shared
  from parlai.core.message import Message
  from parlai.core.worlds import validate
  from parlai.crowdsourcing.utils.acceptability import AcceptabilityChecker
  from parlai.crowdsourcing.utils.worlds import CrowdOnboardWorld, CrowdTaskWorld
  from parlai.crowdsourcing.tasks.model_chat.bot_agent import TurkLikeAgent
  from parlai.crowdsourcing.tasks.model_chat.constants import ONBOARD_FAIL, ONBOARD_SUCCESS
  from parlai.crowdsourcing.tasks.model_chat.utils import Compatibility
  from parlai.crowdsourcing.utils.mturk import get_mturk_id_from_mephisto_wrapper
  from typing import TYPE_CHECKING
label_desc: Use image node_id 1 to create a new ModelChatOnboardWorld object from inherited base classes: CrowdOnboardWorld with example: obj = ModelChatOnboardWorld(opt, agent)