§
    è˜ºhP  ã                   óV   — d dl mZmZmZmZ d dlmZmZ d dlm	Z	  G d„ de	¦  «        Z
dS )é    )ÚAnyÚDictÚListÚUnion)ÚBaseMessageÚget_buffer_string)ÚBaseChatMemoryc                   ó"  — e Zd ZU dZdZeed<   dZeed<   dZeed<   dZ	e
ed	<   	 ed
eeee         f         fd„¦   «         Zed
efd„¦   «         Zed
ee         fd„¦   «         Zed
ee         fd„¦   «         Zdeeef         d
eeef         fd„ZdS )ÚConversationBufferWindowMemoryzDBuffer for storing conversation memory inside a limited size window.ÚHumanÚhuman_prefixÚAIÚ	ai_prefixÚhistoryÚ
memory_keyé   ÚkÚreturnc                 ó,   — | j         r| j        n| j        S )zString buffer of memory.)Úreturn_messagesÚbuffer_as_messagesÚbuffer_as_str©Úselfs    úf/var/www/html/services/rag-service/venv/lib/python3.11/site-packages/langchain/memory/buffer_window.pyÚbufferz%ConversationBufferWindowMemory.buffer   s   € ð +/Ô*>ÐVˆtÔ&Ð&ÀDÔDVÐVó    c                 óŽ   — | j         dk    r| j        j        | j          dz  d…         ng }t          || j        | j        ¬¦  «        S )z?Exposes the buffer as a string in case return_messages is True.r   é   N)r   r   )r   Úchat_memoryÚmessagesr   r   r   )r   r!   s     r   r   z,ConversationBufferWindowMemory.buffer_as_str   sV   € ð @D¼vÈºz¸z�4Ô#Ô,¨d¬f¨W°q©[¨]¨]Ô;Ð;ÈrˆÝ ØØÔ*Ø”nð
ñ 
ô 
ð 	
r   c                 óV   — | j         dk    r| j        j        | j          dz  d…         ng S )zJExposes the buffer as a list of messages in case return_messages is False.r   r   N)r   r    r!   r   s    r   r   z1ConversationBufferWindowMemory.buffer_as_messages    s1   € ð <@¼6ÀAº:¸:ˆtÔÔ(¨$¬&¨°1©¨¨Ô7Ð7È2ÐMr   c                 ó   — | j         gS )zMWill always return list of memory variables.

        :meta private:
        )r   r   s    r   Úmemory_variablesz/ConversationBufferWindowMemory.memory_variables%   s   € ð ”Ð Ð r   Úinputsc                 ó   — | j         | j        iS )zReturn history buffer.)r   r   )r   r%   s     r   Úload_memory_variablesz4ConversationBufferWindowMemory.load_memory_variables-   s   € à” ¤Ð-Ð-r   N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   ÚstrÚ__annotations__r   r   r   ÚintÚpropertyr   r   r   r   r   r   r$   r   r   r'   © r   r   r   r      sJ  € € € € € € ØNÐNà€L�#ÐÐÑØ€IˆsÐÐÑØ€J�ÐÐÑØ€A€s€J€J�JØ0àðW˜˜c 4¨Ô#4Ð4Ô5ð Wð Wð Wñ „XðWð ð
˜sð 
ð 
ð 
ñ „Xð
ð ðN D¨Ô$5ð Nð Nð Nñ „XðNð ð! $ s¤)ð !ð !ð !ñ „Xð!ð.¨D°°c°¬Nð .¸tÀCÈÀH¼~ð .ð .ð .ð .ð .ð .r   r   N)Útypingr   r   r   r   Úlangchain_core.messagesr   r   Úlangchain.memory.chat_memoryr	   r   r0   r   r   ú<module>r4      s‡   ðØ )Ð )Ð )Ð )Ð )Ð )Ð )Ð )Ð )Ð )Ð )Ð )à BÐ BÐ BÐ BÐ BÐ BÐ BÐ Bà 7Ð 7Ð 7Ð 7Ð 7Ð 7ð'.ð '.ð '.ð '.ð '. ^ñ '.ô '.ð '.ð '.ð '.r   