
    g3fiS
                        d Z ddlmZ ddlmZmZ ddlmZmZ ddl	m
Z
 ddlmZ erddlmZ ddlmZ  G d	 d
e
e      Zy)zMessage prompt templates.    )annotations)ABCabstractmethod)TYPE_CHECKINGAny)Serializable)is_interactive_env)BaseMessageChatPromptTemplatec                      e Zd ZdZedd       Zedd       Zedd       ZddZ	e
edd              Z	 d	 	 	 ddZddZdd	Zy
)BaseMessagePromptTemplatez(Base class for message prompt templates.c                     y)z,Return `True` as this class is serializable.T clss    \/var/www/auto_recruiter/arenv/lib/python3.12/site-packages/langchain_core/prompts/message.pyis_lc_serializablez,BaseMessagePromptTemplate.is_lc_serializable   s         c                
    g dS )ztGet the namespace of the LangChain object.

        Returns:
            `["langchain", "prompts", "chat"]`
        )	langchainpromptschatr   r   s    r   get_lc_namespacez*BaseMessagePromptTemplate.get_lc_namespace   s
     0/r   c                     y)zFormat messages from kwargs. Should return a list of `BaseMessage` objects.

        Args:
            **kwargs: Keyword arguments to use for formatting.

        Returns:
            List of `BaseMessage` objects.
        Nr   selfkwargss     r   format_messagesz)BaseMessagePromptTemplate.format_messages!       r   c                .   K    | j                   di |S w)zAsync format messages from kwargs.

        Args:
            **kwargs: Keyword arguments to use for formatting.

        Returns:
            List of `BaseMessage` objects.
        r   )r   r   s     r   aformat_messagesz*BaseMessagePromptTemplate.aformat_messages,   s      $t##-f--s   c                     y)ziInput variables for this prompt template.

        Returns:
            List of input variables.
        Nr   r   s    r   input_variablesz)BaseMessagePromptTemplate.input_variables7   r    r   c                    t         )zHuman-readable representation.

        Args:
            html: Whether to format as HTML.

        Returns:
            Human-readable representation.
        )NotImplementedError)r   htmls     r   pretty_reprz%BaseMessagePromptTemplate.pretty_repr@   s
     "!r   c                J    t        | j                  t                            y)z&Print a human-readable representation.)r(   N)printr)   r	   r$   s    r   pretty_printz&BaseMessagePromptTemplate.pretty_printN   s    d$6$89:r   c                D    ddl m}  || g      }|j                  |      S )zCombine two prompt templates.

        Args:
            other: Another prompt template.

        Returns:
            Combined prompt template.
        r   r   )messages)langchain_core.prompts.chatr   __add__)r   otherr   prompts       r   r0   z!BaseMessagePromptTemplate.__add__R   s#     	C#dV4~~e$$r   N)returnbool)r3   z	list[str])r   r   r3   zlist[BaseMessage])F)r(   r4   r3   str)r3   None)r1   r   r3   r   )__name__
__module____qualname____doc__classmethodr   r   r   r   r"   propertyr%   r)   r,   r0   r   r   r   r   r      s    2  0 0  	.    "" 
";%r   r   N)r:   
__future__r   abcr   r   typingr   r   langchain_core.loadr   $langchain_core.utils.interactive_envr	   langchain_core.messagesr
   r/   r   r   r   r   r   <module>rC      s0     " # % , C3>O%c O%r   