
    Ah                     H   S r SSK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	KJr  SS
KJr  SSKJr  SSKJr  \(       aP  SSKJrJrJrJrJrJrJrJ r J!r!J"r"J#r#J$r$J%r%J&r&J'r'J(r(J)r)J*r*J+r+J,r,J-r-J.r.J/r/J0r0J1r1J2r2J3r3J4r4J5r5J6r6J7r7J8r8J9r9J:r:J;r;J<r<J=r=J>r>  0 SS_SS_SS_SS_SS_SS_SS_SS_SS_SS_SS_SS_SS_SS_SS_SS_SS_0 S S_S!S_S"S_S#S_S$S_S%S_S&S_S'S_S(S_S)S_S*S_S+S_S,S_S-S_S.S_S/S_S0S_ESSSSS1.Er?\" \@\?S29rAS3\BS4\4S5 jrC/ S6QrDg7)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                     [        U 5      $ )zLook up attributes dynamically.)_import_attribute)r6   s    U/var/www/html/shao/venv/lib/python3.13/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   r/   r0   r1   r2   r3   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<   