Ë
    ´Œjð	  ã                   óv   — d dl mZ d dlmZ d dlmZ d dlmZmZ d dl	m
Z
  eddd¬	«       G d
„ de
«      «       Zy)é    )ÚAny)Ú
deprecated)ÚBaseLanguageModel)ÚBaseMessageÚget_buffer_string)ÚBaseChatMemoryz0.3.1z1.0.0z_Please see the migration guide at: https://python.langchain.com/docs/versions/migrating_memory/)ÚsinceÚremovalÚmessagec                   ó  ‡ — e Zd ZU dZdZeed<   dZeed<   eed<   dZ	eed<   d	Z
eed
<   ede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eeef   deeef   ddfˆ fd„Zˆ xZS )ÚConversationTokenBufferMemoryzÚConversation chat memory with token limit.

    Keeps only the most recent messages in the conversation under the constraint
    that the total number of tokens in the conversation does not exceed a certain limit.
    ÚHumanÚhuman_prefixÚAIÚ	ai_prefixÚllmÚhistoryÚ
memory_keyiÐ  Úmax_token_limitÚreturnc                 óJ   — | j                   r| j                  S | j                  S )zString buffer of memory.)Úreturn_messagesÚbuffer_as_messagesÚbuffer_as_str©Úselfs    úg/var/www/html/Fitness-lenito-AI-main/venv/lib/python3.12/site-packages/langchain/memory/token_buffer.pyÚbufferz$ConversationTokenBufferMemory.buffer   s#   € ð +/×*>Ò*>ˆt×&Ñ&ÐVÀD×DVÑDVÐVó    c                 ón   — t        | j                  j                  | j                  | j                  ¬«      S )z@Exposes the buffer as a string in case return_messages is False.)r   r   )r   Úchat_memoryÚmessagesr   r   r   s    r   r   z+ConversationTokenBufferMemory.buffer_as_str$   s0   € ô !Ø×Ñ×%Ñ%Ø×*Ñ*Ø—n‘nô
ð 	
r   c                 ó.   — | j                   j                  S )zIExposes the buffer as a list of messages in case return_messages is True.)r!   r"   r   s    r   r   z0ConversationTokenBufferMemory.buffer_as_messages-   s   € ð ×Ñ×(Ñ(Ð(r   c                 ó   — | j                   gS )zMWill always return list of memory variables.

        :meta private:
        )r   r   s    r   Úmemory_variablesz.ConversationTokenBufferMemory.memory_variables2   s   € ð —‘Ð Ð r   Úinputsc                 ó2   — | j                   | j                  iS )zReturn history buffer.)r   r   )r   r&   s     r   Úload_memory_variablesz3ConversationTokenBufferMemory.load_memory_variables:   s   € à—‘ §¡Ð-Ð-r   ÚoutputsNc                 ób  •— t         ‰| �  ||«       | j                  j                  }| j                  j                  |«      }|| j                  kD  r^g }|| j                  kD  rL|j                  |j                  d«      «       | j                  j                  |«      }|| j                  kD  rŒKyyy)z6Save context from this conversation to buffer. Pruned.r   N)	ÚsuperÚsave_contextr!   r"   r   Úget_num_tokens_from_messagesr   ÚappendÚpop)r   r&   r)   r   Úcurr_buffer_lengthÚpruned_memoryÚ	__class__s         €r   r,   z*ConversationTokenBufferMemory.save_context>   s™   ø€ ä‰Ñ˜V WÔ-à×!Ñ!×*Ñ*ˆØ!ŸX™X×BÑBÀ6ÓJÐØ × 4Ñ 4Ò4ØˆMØ$ t×';Ñ';Ò;Ø×$Ñ$ V§Z¡Z°£]Ô3Ø%)§X¡X×%JÑ%JÈ6Ó%RÐ"ð % t×';Ñ';Õ;ð 5r   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   ÚstrÚ__annotations__r   r   r   r   ÚintÚpropertyr   r   r   Úlistr   r   r%   Údictr(   r,   Ú__classcell__)r2   s   @r   r   r   
   s  ø… ñð  €L�#ÓØ€IˆsÓØ	ÓØ€J�ÓØ€O�SÓàðW˜ò Wó ðWð ð
˜sò 
ó ð
ð ð) D¨Ñ$5ò )ó ð)ð ð! $ s¡)ò !ó ð!ð.¨D°°c°©Nð .¸tÀCÈÀH¹~ó .ð
S 4¨¨S¨¡>ð 
S¸DÀÀcÀ¹Nð 
SÈt÷ 
Sñ 
Sr   r   N)Útypingr   Úlangchain_core._apir   Úlangchain_core.language_modelsr   Úlangchain_core.messagesr   r   Úlangchain.memory.chat_memoryr   r   © r   r   Ú<module>rD      sC   ðÝ å *Ý <ß Bå 7ñ Ø
Øð	Gô	ô6S Nó 6Sóñ6Sr   