Ë
    µŒj6  ã                   óX   — 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	  G d„ dee	«      Z
y)	é    )ÚList)ÚCallbackManagerForRetrieverRun)ÚDocument)ÚBaseRetriever)ÚArxivAPIWrapperc                   ó:   — e Zd ZU dZdZeed<   dedede	e
   fd„Zy)	ÚArxivRetrievera¢  `Arxiv` retriever.

    Setup:
        Install ``arxiv``:

        .. code-block:: bash

            pip install -U arxiv

    Key init args:
        load_max_docs: int
            maximum number of documents to load
        get_ful_documents: bool
            whether to return full document text or snippets

    Instantiate:
        .. code-block:: python

            from langchain_community.retrievers import ArxivRetriever

            retriever = ArxivRetriever(
                load_max_docs=2,
                get_ful_documents=True,
            )

    Usage:
        .. code-block:: python

            docs = retriever.invoke("What is the ImageBind model?")
            docs[0].metadata

        .. code-block:: none

            {'Entry ID': 'http://arxiv.org/abs/2305.05665v2',
            'Published': datetime.date(2023, 5, 31),
            'Title': 'ImageBind: One Embedding Space To Bind Them All',
            'Authors': 'Rohit Girdhar, Alaaeldin El-Nouby, Zhuang Liu, Mannat Singh, Kalyan Vasudev Alwala, Armand Joulin, Ishan Misra'}

    Use within a chain:
        .. code-block:: python

            from langchain_core.output_parsers import StrOutputParser
            from langchain_core.prompts import ChatPromptTemplate
            from langchain_core.runnables import RunnablePassthrough
            from langchain_openai import ChatOpenAI

            prompt = ChatPromptTemplate.from_template(
                """Answer the question based only on the context provided.

            Context: {context}

            Question: {question}"""
            )

            llm = ChatOpenAI(model="gpt-3.5-turbo-0125")

            def format_docs(docs):
                return "\n\n".join(doc.page_content for doc in docs)

            chain = (
                {"context": retriever | format_docs, "question": RunnablePassthrough()}
                | prompt
                | llm
                | StrOutputParser()
            )

            chain.invoke("What is the ImageBind model?")

        .. code-block:: none

             'The ImageBind model is an approach to learn a joint embedding across six different modalities - images, text, audio, depth, thermal, and IMU data...'
    FÚget_full_documentsÚqueryÚrun_managerÚreturnc                ó`   — | j                   r| j                  |¬«      S | j                  |«      S )N)r   )r
   ÚloadÚget_summaries_as_docs)Úselfr   r   s      ún/var/www/html/Fitness-lenito-AI-main/venv/lib/python3.12/site-packages/langchain_community/retrievers/arxiv.pyÚ_get_relevant_documentsz&ArxivRetriever._get_relevant_documentsV   s/   € ð ×"Ò"Ø—9‘9 5�9Ó)Ð)à×-Ñ-¨eÓ4Ð4ó    N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r
   ÚboolÚ__annotations__Ústrr   r   r   r   © r   r   r	   r	   
   s7   … ñGðR  %Ð˜Ó$ð5Øð5Ø*Hð5à	ˆh‰ô5r   r	   N)Útypingr   Úlangchain_core.callbacksr   Úlangchain_core.documentsr   Úlangchain_core.retrieversr   Ú#langchain_community.utilities.arxivr   r	   r   r   r   Ú<module>r"      s$   ðÝ å CÝ -Ý 3å ?ôR5�] Oõ R5r   