o
    粪g                     @   s<  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rd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?d2ZAd3eBd4efd5d6ZCg d7ZDd8S )9a;  **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.   r/   r0   )r1   r2   r3   r   )deprecated_lookupsnamereturnc                 C   s   t | S )zLook up attributes dynamically.)_import_attribute)r5    r8   Y/var/www/html/chatdoc2/venv/lib/python3.10/site-packages/langchain/retrievers/__init__.py__getattr__}   s   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.   r/   r0   r1   r2   r&   r3   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.   r/   r0   r1   r2   r3   DEPRECATED_LOOKUP__package__r7   strr:   __all__r8   r8   r8   r9   <module>   s    ,	
 !"#)