class_docstr: OPT BB3 Agent.
class_docstr_tok: ["OPT","BB3","Agent","."]
docstr: Handle failures of final dialogue replies.
  
  We get here if the whole pipeline collapses.
docstr_tok: ["Handle","failures","of","final","dialogue","replies",".","We","get","here","if","the","whole","pipeline","collapses","."]
code: def detect_and_handle_final_failures(
      self, messages: List[Message]
  ) -> List[Message]:
      """
      Handle failures of final dialogue replies.
  
      We get here if the whole pipeline collapses.
      """
      for reply in messages:
          if APIUtils.is_request_failed_response(reply):
              set_failed_reply(reply)
      return messages
  
imports: import copy
  import random
  from typing import List, Optional, Dict, Any, Union, Tuple
  from parlai.agents.rag.retrievers import Document
  from parlai.core.agents import Agent, create_agent
  from parlai.core.message import Message
  from parlai.core.params import ParlaiParser
  from parlai.core.opt import Opt
  import parlai.utils.logging
  from projects.bb3.agents.module import Module
  from projects.bb3.agents.r2c2_bb3_agent import BlenderBot3Agent
  from projects.bb3.agents.opt_api_agent import BB3OPTAgent
  from projects.bb3.agents.search_agent import SearchAgent
  from projects.bb3.agents.utils import Decision, APIUtils, is_opener, DisplayUtils, set_failed_reply
  import projects.bb3.prompts
label_desc: Use image node_id 18 for calling the BlenderBot3Agent obj's underlying member method code with example usage: obj.detect_and_handle_final_failures(messages) and returns: messages