o
    `+ i	                     @   s\   d dl mZ d dlmZmZ d dlmZmZ d dlm	Z	m
Z
 d dlmZ G dd de	ZdS )	    )Any)#AsyncCallbackManagerForRetrieverRunCallbackManagerForRetrieverRun)BaseDocumentCompressorDocument)BaseRetrieverRetrieverLike)
ConfigDictc                	   @   sl   e Zd ZU dZeed< 	 eed< 	 eddZde	de
ded	ee fd
dZde	deded	ee fddZdS )ContextualCompressionRetrieverzARetriever that wraps a base retriever and compresses the results.base_compressorbase_retrieverT)Zarbitrary_types_allowedqueryrun_managerkwargsreturnc                K   sF   | j j|fdd| ii|}|r!| jj||| d}t|S g S )zGet documents relevant for a query.

        Args:
            query: string to find relevant documents for

        Returns:
            Sequence of relevant documents
        config	callbacksr   )r   Zinvoke	get_childr   Zcompress_documentslistselfr   r   r   docsZcompressed_docs r   w/home/app/PaddleOCR-VL-test/.venv_paddleocr/lib/python3.10/site-packages/langchain/retrievers/contextual_compression.py_get_relevant_documents   s   
z6ContextualCompressionRetriever._get_relevant_documentsc                   sT   | j j|fdd| ii|I dH }|r(| jj||| dI dH }t|S g S )zGet documents relevant for a query.

        Args:
            query: string to find relevant documents for

        Returns:
            List of relevant documents
        r   r   Nr   )r   Zainvoker   r   Zacompress_documentsr   r   r   r   r   _aget_relevant_documents6   s    
z7ContextualCompressionRetriever._aget_relevant_documentsN)__name__
__module____qualname____doc__r   __annotations__r   r	   Zmodel_configstrr   r   r   r   r   r   r   r   r   r   r   r
      s6   
 
r
   N)typingr   Zlangchain_core.callbacksr   r   Zlangchain_core.documentsr   r   Zlangchain_core.retrieversr   r   Zpydanticr	   r
   r   r   r   r   <module>   s    