o
    Zhp&                     @   s:  d Z ddlZddlmZmZ erddlmZ ddlmZ ddl	m
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! ddl"m#Z# ddl$m%Z%m&Z&m'Z' ddl(m)Z) ddl*m+Z+ ddl,m-Z- ddl.m/Z/m0Z0 ddl1m2Z2 ddl3m4Z4 ddl5m6Z6 ddl7m8Z8 ddl9m:Z: ddl;m<Z< ddl=m>Z> ddl?m@Z@ dd lAmBZB dd!lCmDZD dd"lEmFZF dd#lGmHZH dd$lImJZJ dd%lKmLZL dd&lMmNZN dd'lOmPZP dd(lQmRZR dd)lSmTZT dd*lUmVZV dd+lWmXZX dd,lYmZZZ dd-l[m\Z\ i d.d/d0d1d2d3d4d5d6d7d8d9d:d9d;d<d=d>d?d@dAdBdCdDdEdFdGdHdIdJdKdLdMdNi dOdPdQdNdRdNdSdTdUdVdWdXdYdXdZd[d\d]d^d_d`dadbdcdddedfdgdhdidjdkdldmdndodpdqdrdsdtdudvdwdxdydzZ]d{e^d|efd}d~Z_g dZ`dS )a;  **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
    N)TYPE_CHECKINGAny)ArceeRetriever)ArxivRetriever)AskNewsRetriever)AzureAISearchRetrieverAzureCognitiveSearchRetriever)AmazonKnowledgeBasesRetriever)BM25Retriever)BreebsRetriever)ChaindeskRetriever)ChatGPTPluginRetriever)CohereRagRetriever)DocArrayRetriever)DriaRetriever)ElasticSearchBM25Retriever)EmbedchainRetriever)"GoogleDocumentAIWarehouseRetriever)$GoogleCloudEnterpriseSearchRetriever&GoogleVertexAIMultiTurnSearchRetrieverGoogleVertexAISearchRetriever)KayAiRetriever)AmazonKendraRetriever)KNNRetriever)LlamaIndexGraphRetrieverLlamaIndexRetriever)MetalRetriever)MilvusRetriever)NanoPQRetriever)NeedleRetriever)OutlineRetriever)PineconeHybridSearchRetriever)PubMedRetriever)QdrantSparseVectorRetriever)RememberizerRetriever)RemoteLangChainRetriever)SVMRetriever)TavilySearchAPIRetriever)TFIDFRetriever)NeuralDBRetriever)VespaRetriever)WeaviateHybridSearchRetriever)WebResearchRetriever)WikipediaRetriever)YouRetriever)ZepRetriever)ZepCloudRetriever)ZillizRetrieverr   z%langchain_community.retrievers.kendrar	   z&langchain_community.retrievers.bedrockr   z$langchain_community.retrievers.arceer   z$langchain_community.retrievers.arxivr   z&langchain_community.retrievers.asknewsr   z.langchain_community.retrievers.azure_ai_searchr   r
   z#langchain_community.retrievers.bm25r   z%langchain_community.retrievers.breebsr   z(langchain_community.retrievers.chaindeskr   z7langchain_community.retrievers.chatgpt_plugin_retrieverr   z3langchain_community.retrievers.cohere_rag_retrieverr   z'langchain_community.retrievers.docarrayr   z)langchain_community.retrievers.dria_indexr   z2langchain_community.retrievers.elastic_search_bm25r   z)langchain_community.retrievers.embedchainr   z6langchain_community.retrievers.google_vertex_ai_searchr   z@langchain_community.retrievers.google_cloud_documentai_warehouser   r   r   z"langchain_community.retrievers.knnr   z"langchain_community.retrievers.kayr   z*langchain_community.retrievers.llama_indexr   r   z$langchain_community.retrievers.metalr   z%langchain_community.retrievers.milvusr   z%langchain_community.retrievers.nanopqr   z%langchain_community.retrievers.needler    z&langchain_community.retrievers.outliner!   z5langchain_community.retrievers.pinecone_hybrid_searchr"   z%langchain_community.retrievers.pubmedr#   z=langchain_community.retrievers.qdrant_sparse_vector_retrieverr$   z+langchain_community.retrievers.rememberizerr%   z/langchain_community.retrievers.remote_retrieverz"langchain_community.retrievers.svmz$langchain_community.retrievers.tfidfz0langchain_community.retrievers.tavily_search_apiz.langchain_community.retrievers.vespa_retrieverz5langchain_community.retrievers.weaviate_hybrid_searchz+langchain_community.retrievers.web_researchz(langchain_community.retrievers.wikipediaz"langchain_community.retrievers.youz"langchain_community.retrievers.zepz(langchain_community.retrievers.zep_cloudz%langchain_community.retrievers.zillizz/langchain_community.retrievers.thirdai_neuraldb)r&   r(   r'   r*   r+   r,   r-   r.   r/   r0   r1   r)   namereturnc                 C   s4   | t v rtt |  }t|| S tdt d|  )Nzmodule z has no attribute )_module_lookup	importlibimport_modulegetattrAttributeError__name__)r2   module r;   ^/var/www/html/lang_env/lib/python3.10/site-packages/langchain_community/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-   r.   r/   r0   r1   )a__doc__r5   typingr   r   Z$langchain_community.retrievers.arceer   Z$langchain_community.retrievers.arxivr   Z&langchain_community.retrievers.asknewsr   Z.langchain_community.retrievers.azure_ai_searchr   r   Z&langchain_community.retrievers.bedrockr	   Z#langchain_community.retrievers.bm25r
   Z%langchain_community.retrievers.breebsr   Z(langchain_community.retrievers.chaindeskr   Z7langchain_community.retrievers.chatgpt_plugin_retrieverr   Z3langchain_community.retrievers.cohere_rag_retrieverr   Z'langchain_community.retrievers.docarrayr   Z)langchain_community.retrievers.dria_indexr   Z2langchain_community.retrievers.elastic_search_bm25r   Z)langchain_community.retrievers.embedchainr   Z@langchain_community.retrievers.google_cloud_documentai_warehouser   Z6langchain_community.retrievers.google_vertex_ai_searchr   r   r   Z"langchain_community.retrievers.kayr   Z%langchain_community.retrievers.kendrar   Z"langchain_community.retrievers.knnr   Z*langchain_community.retrievers.llama_indexr   r   Z$langchain_community.retrievers.metalr   Z%langchain_community.retrievers.milvusr   Z%langchain_community.retrievers.nanopqr   Z%langchain_community.retrievers.needler   Z&langchain_community.retrievers.outliner    Z5langchain_community.retrievers.pinecone_hybrid_searchr!   Z%langchain_community.retrievers.pubmedr"   Z=langchain_community.retrievers.qdrant_sparse_vector_retrieverr#   Z+langchain_community.retrievers.rememberizerr$   Z/langchain_community.retrievers.remote_retrieverr%   Z"langchain_community.retrievers.svmr&   Z0langchain_community.retrievers.tavily_search_apir'   Z$langchain_community.retrievers.tfidfr(   Z/langchain_community.retrievers.thirdai_neuraldbr)   Z.langchain_community.retrievers.vespa_retrieverr*   Z5langchain_community.retrievers.weaviate_hybrid_searchr+   Z+langchain_community.retrievers.web_researchr,   Z(langchain_community.retrievers.wikipediar-   Z"langchain_community.retrievers.your.   Z"langchain_community.retrievers.zepr/   Z(langchain_community.retrievers.zep_cloudr0   Z%langchain_community.retrievers.zillizr1   r4   strr=   __all__r;   r;   r;   r<   <module>   s   	
 !"#2