
    ih                     B   d Z ddl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 dd
lmZ ddlmZ ddlmZ erPd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&m'Z'm(Z(m)Z)m*Z*m+Z+m,Z,m-Z-m.Z.m/Z/m0Z0m1Z1m2Z2m3Z3m4Z4m5Z5m6Z6m7Z7m8Z8m9Z9m:Z:m;Z;m<Z<m=Z=m>Z> 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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d0dddddd1Z? ee@e?2      ZAd3eBd4efd5ZCg d6ZDy7)8a;  **Retriever** class returns Documents given a text **query**.

It is more general than a vector store. A retriever does not need to be able to
store documents, only to return (or retrieve) it. Vector stores can be used as
the backbone of a retriever, but there are other types of retrievers as well.

**Class hierarchy:**

.. code-block::

    BaseRetriever --> <name>Retriever  # Examples: ArxivRetriever, MergerRetriever

**Main helpers:**

.. code-block::

    Document, Serializable, Callbacks,
    CallbackManagerForRetrieverRun, AsyncCallbackManagerForRetrieverRun
    )TYPE_CHECKINGAny)create_importer)ContextualCompressionRetriever)EnsembleRetriever)MergerRetriever)MultiQueryRetriever)MultiVectorRetriever)ParentDocumentRetriever)RePhraseQueryRetriever)SelfQueryRetriever) TimeWeightedVectorStoreRetriever)&AmazonKendraRetrieverAmazonKnowledgeBasesRetrieverArceeRetrieverArxivRetrieverAzureAISearchRetrieverAzureCognitiveSearchRetrieverBM25RetrieverChaindeskRetrieverChatGPTPluginRetrieverCohereRagRetrieverDocArrayRetrieverDriaRetrieverElasticSearchBM25RetrieverEmbedchainRetriever$GoogleCloudEnterpriseSearchRetriever"GoogleDocumentAIWarehouseRetriever&GoogleVertexAIMultiTurnSearchRetrieverGoogleVertexAISearchRetrieverKayAiRetrieverKNNRetrieverLlamaIndexGraphRetrieverLlamaIndexRetrieverMetalRetrieverMilvusRetrieverNeuralDBRetrieverOutlineRetrieverPineconeHybridSearchRetrieverPubMedRetrieverRemoteLangChainRetrieverSVMRetrieverTavilySearchAPIRetrieverTFIDFRetrieverVespaRetrieverWeaviateHybridSearchRetrieverWebResearchRetrieverWikipediaRetrieverZepRetrieverZillizRetrieverr   zlangchain_community.retrieversr   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/   r0   r1   )r2   r3   r4   r   )deprecated_lookupsnamereturnc                     t        |       S )zLook up attributes dynamically.)_import_attribute)r6   s    [/var/www/html/dev/engine/venv/lib/python3.12/site-packages/langchain/retrievers/__init__.py__getattr__r;   }   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   r,   r-   r.   r   r/   r0   r1   r2   r3   r'   r4   N)E__doc__typingr   r   langchain._api.module_importr   +langchain.retrievers.contextual_compressionr   langchain.retrievers.ensembler   %langchain.retrievers.merger_retrieverr    langchain.retrievers.multi_queryr	   !langchain.retrievers.multi_vectorr
   .langchain.retrievers.parent_document_retrieverr   langchain.retrievers.re_phraserr   $langchain.retrievers.self_query.baser   ,langchain.retrievers.time_weighted_retrieverr   langchain_community.retrieversr   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/   r0   r1   r2   r3   r4   DEPRECATED_LOOKUP__package__r9   strr;   __all__ r<   r:   <module>rO      sk  ( & 8 V ; A @ B R B C ' ' ' ' ' ' ' ' ' 'X'='#%E' 6' 6	'
 >' $%E' >' :' :' !"B' ;' )*J' +,L' -.N' $%E'  6!'" 4#'$  @%'& ;''( 6)'* 7+', 8-'. $%E/'0 71'2  @3'4 45'6  @7'8 59': 5;'< 9='> 6?'@ 6A'B $%EC'D <E'F ;479M' R $KDUV #c #c #
0r<   