o
    JjgZ	                     @  sl   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 dlmZ G dd	 d	eZd
S )    )annotations)Union)AgentActionAgentFinish)OutputParserException)parse_json_markdown)AgentOutputParser)FORMAT_INSTRUCTIONSc                   @  sB   e Zd ZU dZeZded< 	 dddZdd	d
Ze	dddZ
dS )ConvoOutputParserz+Output parser for the conversational agent.strformat_instructionsreturnc                 C  s   | j S )z<Returns formatting instructions for the given output parser.)r   self r   j/var/www/html/zoom/venv/lib/python3.10/site-packages/langchain/agents/conversational_chat/output_parser.pyget_format_instructions   s   z)ConvoOutputParser.get_format_instructionstextUnion[AgentAction, AgentFinish]c              
   C  s   z/t |}d|v r)d|v r)|d |d }}|dkr"td|i|W S t|||W S td|  tyC } ztd| |d}~ww )zAttempts to parse the given text into an AgentAction or AgentFinish.

        Raises:
             OutputParserException if parsing fails.
        actionaction_inputzFinal Answeroutputz2Missing 'action' or 'action_input' in LLM output: zCould not parse LLM output: N)r   r   r   r   	Exception)r   r   responser   r   er   r   r   parse   s   zConvoOutputParser.parsec                 C  s   dS )Nconversational_chatr   r   r   r   r   _type9   s   zConvoOutputParser._typeN)r   r   )r   r   r   r   )__name__
__module____qualname____doc__r	   r   __annotations__r   r   propertyr   r   r   r   r   r
      s   
 

!r
   N)
__future__r   typingr   langchain_core.agentsr   r   langchain_core.exceptionsr   langchain_core.utils.jsonr   langchain.agentsr   +langchain.agents.conversational_chat.promptr	   r
   r   r   r   r   <module>   s    