code: def make_world(opt, agents):
      # We are showing an image to the worker and bot, so grab the image path and other
      # context info
      image_idx, model_name, no_more_work = opt[
          "image_stack"
      ].get_next_image(agents[0].mephisto_agent.get_worker().db_id)
      full_image_context = opt["image_contexts"][image_idx]
      if no_more_work:
          # There are no more HITs for this worker to do, so give them a qualification
          agents[0].mephisto_agent.get_worker().grant_qualification(
              qualification_name=opt["block_qualification"], value=1
          )
  
      # Get a bot agent
      bot_worker = get_bot_worker(opt=opt, model_name=model_name)
  
      return ModelImageChatWorld(
          opt=opt,
          agent=agents[0],
          bot=bot_worker,
          image_idx=image_idx,
          image_act=full_image_context["image_act"],
      )
  
file_path: ParlAI/parlai/crowdsourcing/tasks/model_chat/worlds_image_chat.py
imports: from tempfile import NamedTemporaryFile
  from typing import Any, Dict, List, Tuple
  from parlai.core.image_featurizers import ImageLoader
  from parlai.core.message import Message
  from parlai.core.worlds import validate
  from parlai.crowdsourcing.tasks.model_chat.utils import Compatibility, get_image_src
  from parlai.crowdsourcing.tasks.model_chat.worlds import BaseModelChatWorld, get_bot_worker
label_desc: Use image node_id 1 for calling a global function with example usage: make_world(opt, agents) and returns: ModelImageChatWorld