
    Ng                     J   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ZDd7S )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    Y/var/www/html/ai-engine/env/lib/python3.11/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      s   ( & % % % % % % % 8 8 8 8 8 8 V V V V V V ; ; ; ; ; ; A A A A A A @ @ @ @ @ @ B B B B B B R R R R R R B B B B B B C C C C C 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 $OKDUVVV #c #c # # # #
0 0 0r<   