code: def __init__(self, opt, agents, shared=None):
      super().__init__(opt, agents, shared)
      self.init_contexts(shared=shared)
      self._openers = None
      self.init_openers()
      self.max_turn_cnt = self.opt.get("selfchat_max_turns", 10)
      self.turn_cnt = 0
      self.episode_cnt = 0
  
imports: import copy
  import random
  from typing import Any, Dict, List, Optional
  from parlai.agents.fixed_response.fixed_response import FixedResponseAgent
  from parlai.core.agents import Agent
  from parlai.core.worlds import create_task, DialogPartnerWorld, validate
  from parlai.core.message import Message
label_desc: Use image node_id 1 to create a new SelfChatWorld object from inherited base classes: DialogPartnerWorld with example: obj = SelfChatWorld(opt, agents, shared)