a
    agy                     @   sd   d dl mZ d dlmZmZmZmZ d dlmZ d dl	m
Z
mZmZ d dlmZ G dd de
ZdS )	    )	signature)ListOptionalSequenceUnion)	Callbacks)BaseDocumentCompressorBaseDocumentTransformerDocument)
ConfigDictc                   @   st   e Zd ZU dZeeeef  ed< e	ddZ
dee eee ee dddZdee eee ee dd	d
ZdS )DocumentCompressorPipelinez9Document compressor that uses a pipeline of Transformers.transformersT)Zarbitrary_types_allowedN)	documentsquery	callbacksreturnc                 C   sx   | j D ]l}t|trNt|jjddu}|r@|j|||d}qr|||}qt|trd||}qt	d| q|S )zTransform a list of documents.r   Nr   !Got unexpected transformer type: )
r   
isinstancer   r   compress_documents
parametersgetr	   Ztransform_documents
ValueErrorselfr   r   r   Z_transformerZaccepts_callbacks r   |/var/www/html/cobodadashboardai.evdpl.com/venv/lib/python3.9/site-packages/langchain/retrievers/document_compressors/base.pyr      s"    


z-DocumentCompressorPipeline.compress_documentsc                    s   | j D ]~}t|trZt|jjddu}|rF|j|||dI dH }q|||I dH }qt|trv||I dH }qt	d| q|S )z5Compress retrieved documents given the query context.r   Nr   r   )
r   r   r   r   acompress_documentsr   r   r	   Zatransform_documentsr   r   r   r   r   r   2   s"    


z.DocumentCompressorPipeline.acompress_documents)N)N)__name__
__module____qualname____doc__r   r   r	   r   __annotations__r   Zmodel_configr   r
   strr   r   r   r   r   r   r   r   r      s&   
  r   N)inspectr   typingr   r   r   r   Z langchain_core.callbacks.managerr   Zlangchain_core.documentsr   r	   r
   Zpydanticr   r   r   r   r   r   <module>   s
   