a
    ag                     @   sh   d dl mZm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 G dd de	Zd	S )
    )AnyList)#AsyncCallbackManagerForRetrieverRunCallbackManagerForRetrieverRun)Document)BaseRetrieverRetrieverLike)
ConfigDict)BaseDocumentCompressorc                   @   s\   e Zd ZU dZeed< eed< eddZe	e
eee dddZe	eeee d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   sJ   | j j|fdd| ii|}|rB| jj||| d}t|S g S dS )zGet documents relevant for a query.

        Args:
            query: string to find relevant documents for

        Returns:
            Sequence of relevant documents
        config	callbacksr   N)r   Zinvoke	get_childr   Zcompress_documentslistselfr   r   r   docsZcompressed_docs r   y/var/www/html/cobodadashboardai.evdpl.com/venv/lib/python3.9/site-packages/langchain/retrievers/contextual_compression.py_get_relevant_documents   s    

z6ContextualCompressionRetriever._get_relevant_documentsc                   sV   | j j|fdd| ii|I dH }|rN| jj||| dI dH }t|S g S d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_documents7   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      s    
r   N)typingr   r   Zlangchain_core.callbacksr   r   Zlangchain_core.documentsr   Zlangchain_core.retrieversr   r   Zpydanticr	   Z.langchain.retrievers.document_compressors.baser
   r   r   r   r   r   <module>   s   