
    3fi	                     n    d dl Z d dlZd dlmZ d dlmZmZ d dlmZ d dlm	Z	 d dl
mZ dZ G d d	e	      Zy)
    N)Pattern)AgentActionAgentFinish)OutputParserException)AgentOutputParser)FORMAT_INSTRUCTIONSzFinal Answer:c                       e Zd ZU dZeZeed<   	  ej                  dej                        Zeed<   	 defdZdedeez  fdZedefd	       Zy
)ChatOutputParserz!Output parser for the chat agent.format_instructionsz ^.*?`{3}(?:json)?\n(.*?)`{3}.*?$patternreturnc                     | j                   S )z<Returns formatting instructions for the given output parser.)r   selfs    i/var/www/auto_recruiter/arenv/lib/python3.12/site-packages/langchain_classic/agents/chat/output_parser.pyget_format_instructionsz(ChatOutputParser.get_format_instructions   s    '''    textc                    t         |v }	 | j                  j                  |      }|sd}t        |      |j	                  d      }t        j                  |j                               }d|v }|r|rd| }t        |      t        |d   |j                  di       |      S # t        $ rQ}|sd| }t        |      ||j                  t               d   j                         }	t        d|	i|      cY d	}~S d	}~ww xY w)
a\  Parse the output from the agent into an AgentAction or AgentFinish object.

        Args:
            text: The text to parse.

        Returns:
            An AgentAction or AgentFinish object.

        Raises:
            OutputParserException: If the output could not be parsed.
            ValueError: If the action could not be found.
        zaction not found   actionzDParsing LLM output produced a final answer and a parse-able action: action_inputzCould not parse LLM output: outputN)FINAL_ANSWER_ACTIONr   search
ValueErrorgroupjsonloadsstripr   r   get	Exceptionsplitr   )
r   r   includes_answerfoundmsgr   responseincludes_actionexcr   s
             r   parsezChatOutputParser.parse   s    .5	9LL''-E( o%[[^Fzz&,,.1H&(2O?004v7  ,C00"^R0   	9"4TF;+C0c9ZZ 34R8>>@F&1488	9s   BB   	C:)AC5/C:5C:c                      y)Nchat r   s    r   _typezChatOutputParser._typeE   s    r   N)__name__
__module____qualname____doc__r   r   str__annotations__recompileDOTALLr   r   r   r   r   r+   propertyr/   r.   r   r   r
   r
      sr    +22)!rzz"EryyQGWQ,( ((9# (9+"; (9T s  r   r
   )r   r6   r   langchain_core.agentsr   r   langchain_core.exceptionsr   langchain_classic.agents.agentr   $langchain_classic.agents.chat.promptr   r   r
   r.   r   r   <module>r>      s-     	  : ; < D% 9( 9r   