code: def init_contexts(self, shared=None):
      print("[ loading topics.. ]")
      # Load possible chosen topics
      topics_path = os.path.join(
          self.opt["datapath"],
          "wizard_of_wikipedia",
          "topic_splits.json",
      )
      # Get training set topics
      datatype = self.opt["datatype"].split(":")[0]
      self.topic_list = json.load(open(topics_path, "rb"))[datatype]
  
imports: from typing import Optional
  from parlai.core.opt import Opt
  from copy import deepcopy
  import json
  import random
  import os
  import string
  from parlai.core.params import ParlaiParser
  from parlai.core.agents import create_agent
  from parlai.core.message import Message
  from parlai.core.worlds import DialogPartnerWorld, validate
  from parlai.tasks.wizard_of_wikipedia.agents import TOKEN_KNOWLEDGE, TOKEN_END_KNOWLEDGE
  from parlai.tasks.self_chat.worlds import SelfChatWorld
  from parlai.utils.misc import warn_once
  from .build import build
  from projects.wizard_of_wikipedia.knowledge_retriever.knowledge_retriever import KnowledgeRetrieverAgent
label_desc: Use image node_id 1 for calling the SelfChatWorld obj's underlying member method code with example usage: obj.init_contexts(shared) without return types