
    h	                     z    d dl Z d dlZd dlm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)Union)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ef   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    a/var/www/html/eduruby.in/venv/lib/python3.12/site-packages/langchain/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)
ad  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._typeH   s    r   N)__name__
__module____qualname____doc__r	   r   str__annotations__recompileDOTALLr   r   r   r   r   r   r,   propertyr0   r/   r   r   r   r      sw    +22)!rzz"EryyQGWQ,( (*9# *9%[(@"A *9X s  r   r   )r    r7   r   typingr   langchain_core.agentsr   r   langchain_core.exceptionsr   langchain.agents.agentr   langchain.agents.chat.promptr	   r   r   r/   r   r   <module>r@      s0     	   : ; 4 <% ;( ;r   