
    Ng                        d Z ddlmZ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mZmZmZmZ ddlmZ dd	lmZ dd
lmZ ddlmZ ddlmZ ddlmZ ddlm Z  er8ddl!m"Z"m#Z#m$Z$m%Z%m&Z&m'Z'm(Z(m)Z)m*Z*m+Z+m,Z,m-Z-m.Z.m/Z/m0Z0m1Z1m2Z2 ddl3m4Z4 ddl5m6Z6 ddl7m8Z8 i ddddddddddddddddddd dd!dd"dd#dd$dd%dd&dd'ddddd(Z9 ee:e9)          Z;d*e<d+efd,Z=g d-Z>d.S )/aL  **Memory** maintains Chain state, incorporating context from past runs.

**Class hierarchy for Memory:**

.. code-block::

    BaseMemory --> BaseChatMemory --> <name>Memory  # Examples: ZepMemory, MotorheadMemory

**Main helpers:**

.. code-block::

    BaseChatMessageHistory

**Chat Message History** stores the chat message history in different stores.

**Class hierarchy for ChatMessageHistory:**

.. code-block::

    BaseChatMessageHistory --> <name>ChatMessageHistory  # Example: ZepChatMessageHistory

**Main helpers:**

.. code-block::

    AIMessage, BaseMessage, HumanMessage
    )TYPE_CHECKINGAny)create_importer)ConversationBufferMemoryConversationStringBufferMemory)ConversationBufferWindowMemory)CombinedMemory)ConversationEntityMemoryInMemoryEntityStoreRedisEntityStoreSQLiteEntityStoreUpstashRedisEntityStore)ReadOnlySharedMemory)SimpleMemory)ConversationSummaryMemory)ConversationSummaryBufferMemory)ConversationTokenBufferMemory)VectorStoreRetrieverMemory)(ConversationVectorStoreTokenBufferMemory)AstraDBChatMessageHistoryCassandraChatMessageHistoryChatMessageHistoryCosmosDBChatMessageHistoryDynamoDBChatMessageHistoryElasticsearchChatMessageHistoryFileChatMessageHistoryMomentoChatMessageHistoryMongoDBChatMessageHistoryPostgresChatMessageHistoryRedisChatMessageHistorySingleStoreDBChatMessageHistorySQLChatMessageHistoryStreamlitChatMessageHistoryUpstashRedisChatMessageHistoryXataChatMessageHistoryZepChatMessageHistory)ConversationKGMemory)MotorheadMemory)	ZepMemoryr(   z+langchain_community.memory.motorhead_memoryr'   zlangchain_community.memory.kgr)   z%langchain_community.memory.zep_memoryr   z*langchain_community.chat_message_historiesr   r   r   r   r   r   r   r   r   r    r!   r"   r#   )r$   r%   r&   )deprecated_lookupsnamereturnc                      t          |           S )zLook up attributes dynamically.)_import_attribute)r+   s    U/var/www/html/ai-engine/env/lib/python3.11/site-packages/langchain/memory/__init__.py__getattr__r0   o   s    T"""    )$r   r   r   r	   r   r   r
   r'   r   r   r   r   r   r   r   r   r   r   r   r   r(   r   r   r    r   r!   r"   r   r   r#   r   r%   r&   r)   r   r$   N)?__doc__typingr   r   langchain._apir   langchain.memory.bufferr   r   langchain.memory.buffer_windowr   langchain.memory.combinedr	   langchain.memory.entityr
   r   r   r   r   langchain.memory.readonlyr   langchain.memory.simpler   langchain.memory.summaryr   langchain.memory.summary_bufferr   langchain.memory.token_bufferr   langchain.memory.vectorstorer   0langchain.memory.vectorstore_token_buffer_memoryr   *langchain_community.chat_message_historiesr   r   r   r   r   r   r   r   r   r   r    r!   r"   r#   r$   r%   r&   langchain_community.memory.kgr'   +langchain_community.memory.motorhead_memoryr(   %langchain_community.memory.zep_memoryr)   DEPRECATED_LOOKUP__package__r.   strr0   __all__ r1   r/   <module>rI      s   : & % % % % % % % * * * * * *        J I I I I I 4 4 4 4 4 4              ; : : : : : 0 0 0 0 0 0 > > > > > > K K K K K K G G G G G G C C C C C C       @                                     & CBBBBBKKKKKK??????D; 8  !M	
 "#O F !"N !"N &'S J  !M  !M !"N K &'S  I!" "#O#$ 'SJI)   0 $OKDUVVV #c #c # # # #
% % %r1   