def add_world_args( self, task: str, interactive_task: Optional[str], selfchat_task: Optional[str], partial: Opt, ): """ Add arguments specific to the world. """ world_class = load_world_module( task, interactive_task=interactive_task, selfchat_task=selfchat_task ) if world_class is not None and hasattr(world_class, 'add_cmdline_args'): try: world_class.add_cmdline_args(self, partial) except argparse.ArgumentError: # already added pass except TypeError: raise TypeError( f"World '{task}' appears to have signature " "add_cmdline_args(argparser) but we have updated the signature " "to add_cmdline_args(argparser, partial_opt). For details, see " "https://github.com/facebookresearch/ParlAI/pull/3328." )
def add_world_args(self, task, interactive_task): """ Add arguments specific to the world. """ world_class = load_world_module(task, interactive_task) if world_class is not None and hasattr(world_class, 'add_cmdline_args'): try: world_class.add_cmdline_args(self) except argparse.ArgumentError: # already added pass
def create_task_world(opt: Opt, user_agents, default_world=None): """ Instantiate a world with the supplied options and user agents. (A world factory.) """ task_agents = _create_task_agents(opt) world_class = load_world_module( opt['task'], opt.get('interactive_task', False), len(user_agents + task_agents), default_world=default_world, ) return world_class(opt, task_agents + user_agents)
def test_load_dialog_partner_world(self): world_module = load_world_module(OPTIONS['task'].split(':')[0], interactive_task=False, num_agents=2) self.assertEqual(world_module, DialogPartnerWorld)
def test_load_interactive_world(self): world_module = load_world_module(OPTIONS['task'].split(':')[0], interactive_task=True) self.assertEqual(world_module, c2interactive)