a
    aŠÝgZ	  ã                   @  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                   @  sN   e Zd ZU dZeZded< ddœdd„Zdddœd	d
„Ze	d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   ú€/var/www/html/cobodadashboardai.evdpl.com/venv/lib/python3.9/site-packages/langchain/agents/conversational_chat/output_parser.pyÚget_format_instructions   s    z)ConvoOutputParser.get_format_instructionszUnion[AgentAction, AgentFinish])Útextr   c              
   C  sž   zdt |ƒ}d|v rTd|v rT|d |d  }}|dkrDtd|i|ƒW S t|||ƒW S ntd|› ƒ‚W n4 ty˜ } ztd|› ƒ|‚W Y d}~n
d}~0 0 dS )z“Attempts 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 )NZconversational_chatr   r   r   r   r   Ú_type9   s    zConvoOutputParser._typeN)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r	   r   Ú__annotations__r   r   Úpropertyr   r   r   r   r   r
      s   
!r
   N)Ú
__future__r   Útypingr   Zlangchain_core.agentsr   r   Zlangchain_core.exceptionsr   Zlangchain_core.utils.jsonr   Zlangchain.agentsr   Z+langchain.agents.conversational_chat.promptr	   r
   r   r   r   r   Ú<module>   s   