
    Ah                         S r SSKJr  SSKJrJrJr  SSKJr  SSK	J
r
  SSKJr  SSKJr  SSKJr  SS	KJr  \" S
SSS9 " S S\5      5       rg)z-Class for a VectorStore-backed memory object.    )Sequence)AnyOptionalUnion)
deprecated)Document)
BaseMemory)VectorStoreRetriever)Field)get_prompt_input_keyz0.3.1z1.0.0z_Please see the migration guide at: https://python.langchain.com/docs/versions/migrating_memory/)sinceremovalmessagec                      \ rS rSr% Sr\" SS9r\\S'    Sr	\
\S'    Sr\\
   \S	'    S
r\\S'    \" \S9r\\
   \S'    \S\\
   4S j5       rS\\
\4   S\
4S jrS\\   S\\
\\\   \
4   4   4S jrS\\
\4   S\\
\\\   \
4   4   4S jrS\\
\4   S\\
\\\   \
4   4   4S jrS\\
\4   S\\
\
4   S\\   4S jrS\\
\4   S\\
\
4   SS4S jrS\\
\4   S\\
\
4   SS4S jrSS jr SS jr!Sr"g)VectorStoreRetrieverMemory   z{Store the conversation history in a vector store and retrieves the relevant
parts of past conversation based on the input.
T)exclude	retrieverhistory
memory_keyN	input_keyFreturn_docs)default_factoryexclude_input_keysreturnc                     U R                   /$ )z?The list of keys emitted from the load_memory_variables method.)r   selfs    T/var/www/html/shao/venv/lib/python3.13/site-packages/langchain/memory/vectorstore.pymemory_variables+VectorStoreRetrieverMemory.memory_variables+   s           inputsc                 ^    U R                   c  [        XR                  5      $ U R                   $ )z!Get the input key for the prompt.)r   r   r    )r   r#   s     r   _get_prompt_input_key0VectorStoreRetrieverMemory._get_prompt_input_key0   s'    >>!'0E0EFF~~r"   docsc                     U R                   (       d+  SR                  U Vs/ sH  o"R                  PM     sn5      nOUnU R                  U0$ s  snf )N
)r   joinpage_contentr   )r   r'   docresults       r   _documents_to_memory_variables9VectorStoreRetrieverMemory._documents_to_memory_variables6   sH    
 YYDADS 0 0DABFF((  Bs   Ac                     U R                  U5      nX   nU R                  R                  U5      nU R                  U5      $ )Return history buffer.)r%   r   invoker.   r   r#   r   queryr'   s        r   load_memory_variables0VectorStoreRetrieverMemory.load_memory_variablesA   sA    
 ..v6	!~~$$U+22488r"   c                    #    U R                  U5      nX   nU R                  R                  U5      I Sh  vN nU R                  U5      $  N7f)r1   N)r%   r   ainvoker.   r3   s        r   aload_memory_variables1VectorStoreRetrieverMemory.aload_memory_variablesK   sL     
 ..v6	!^^++E2222488 3s   4AAAoutputsc                    [        U R                  5      nUR                  U R                  5        UR	                  5        VVs0 sH  u  pEXC;  d  M  XE_M     nnn[        UR	                  5       5      [        UR	                  5       5      -    VVs/ sH  u  pEU SU 3PM     nnnSR                  U5      n[        US9/$ s  snnf s  snnf )z0Format context from this conversation to buffer.z: r)   )r+   )setr   addr   itemslistr*   r   )	r   r#   r;   r   kvfiltered_inputstextsr+   s	            r   _form_documents*VectorStoreRetrieverMemory._form_documentsU   s     d--.DOO$,2LLNONDAa>N414NO _2245W]]_8MM
M cA3KM 	 
 yy'l344 P
s   
CCCc                 \    U R                  X5      nU R                  R                  U5        gz.Save context from this conversation to buffer.N)rE   r   add_documentsr   r#   r;   	documentss       r   save_context'VectorStoreRetrieverMemory.save_contextf   s$    ((9	$$Y/r"   c                 x   #    U R                  X5      nU R                  R                  U5      I Sh  vN   g N7frH   )rE   r   aadd_documentsrJ   s       r   asave_context(VectorStoreRetrieverMemory.asave_contextk   s/      ((9	nn++I666s   0:8:c                     gzNothing to clear.N r   s    r   clear VectorStoreRetrieverMemory.cleart   s    r"   c                    #    g7frS   rT   r   s    r   aclear!VectorStoreRetrieverMemory.aclearw   s     s   rT   )r   N)#__name__
__module____qualname____firstlineno____doc__r   r   r
   __annotations__r   strr   r   r   booltupler   r   propertyr@   r    dictr   r%   r   r   r.   r5   r9   rE   rL   rP   rU   rX   __static_attributes__rT   r"   r   r   r      s    ',D&9I#94JQ#Ix}#@KP(-e(DDX!$s) ! !DcN s 	)8n	) 
c5h,--	.	)9S#X9 
c5h,--	.99S#X9 
c5h,--	.95S#X5 c3h5 
h	5"04S> 0DcN 0t 0
7S#X7 c3h7 
	7  r"   r   N)r^   collections.abcr   typingr   r   r   langchain_core._apir   langchain_core.documentsr   langchain_core.memoryr	   langchain_core.vectorstoresr
   pydanticr   langchain.memory.utilsr   r   rT   r"   r   <module>rn      sR    3 $ ' ' * - , <  7 
	G	a  a a r"   