Ë
    µŒj4  ã                   ó€   — d dl Z d dlmZ d dlmZmZmZmZ d dlm	Z	 d dl
mZ d dlmZ  G d„ de«      Z G d	„ d
e«      Zy)é    N)ÚEnum)ÚAnyÚDictÚListÚOptional)ÚCallbackManagerForRetrieverRun)ÚDocument)ÚBaseRetrieverc                   ó   — e Zd ZdZdZdZy)ÚSearchDepthzSearch depth as enumerator.ÚbasicÚadvancedN)Ú__name__Ú
__module__Ú__qualname__Ú__doc__ÚBASICÚADVANCED© ó    úz/var/www/html/Fitness-lenito-AI-main/venv/lib/python3.12/site-packages/langchain_community/retrievers/tavily_search_api.pyr   r   
   s   „ Ù%à€EØ�Hr   r   c                   óì   — e Zd ZU dZdZeed<   dZeed<   dZ	eed<   dZ
eed<   ej                  Zeed<   d	Zeee      ed
<   d	Zeee      ed<   i Zeeeef      ed<   d	Zee   ed<   dededee   fd„Zy	)ÚTavilySearchAPIRetrieveraf  Tavily Search API retriever.

    Setup:
        Install ``langchain-community`` and set environment variable ``TAVILY_API_KEY``.

        .. code-block:: bash

            pip install -U langchain-community
            export TAVILY_API_KEY="your-api-key"

    Key init args:
        k: int
            Number of results to include.
        include_generated_answer: bool
            Include a generated answer with results
        include_raw_content: bool
            Include raw content with results.
        include_images: bool
            Return images in addition to text.

    Instantiate:
        .. code-block:: python

            from langchain_community.retrievers import TavilySearchAPIRetriever

            retriever = TavilySearchAPIRetriever(k=3)

    Usage:
        .. code-block:: python

            query = "what year was breath of the wild released?"

            retriever.invoke(query)

    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 "

".join(doc.page_content for doc in docs)

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

            chain.invoke("how many units did bretch of the wild sell in 2020")

    é
   ÚkFÚinclude_generated_answerÚinclude_raw_contentÚinclude_imagesÚsearch_depthNÚinclude_domainsÚexclude_domainsÚkwargsÚapi_keyÚqueryÚrun_managerÚreturnc                óÖ  — 	 	 ddl m}  || j                  xs t
        j                  d   ¬«      }| j                  s| j                  n| j                  dz
  } |j                  d||| j                  j                  | j                  | j                  | j                  | j                  | j                  dœ| j                   ¤Ž}|j#                  d	«      D ���	cg c]ž  }t%        | j                  s|j#                  d
d«      n|j#                  d«      xs d|j#                  dd«      |j#                  dd«      dœ|j'                  «       D ��	ci c]  \  }}	|dvr||	“Œ c}	}¥d|j#                  d«      i¥¬«      ‘Œ  }
}}}	| j                  r#t%        |j#                  dd«      dddœ¬«      g|
¢}
|
S # t        $ r
 ddl m} Y �Œ¹w xY w# t        $ r t        d«      ‚w xY wc c}	}w c c}	}}w )Nr   )ÚTavilyClient)ÚClientzTTavily python package not found. Please install it with `pip install tavily-python`.ÚTAVILY_API_KEY)r#   é   )r$   Úmax_resultsr   Úinclude_answerr    r!   r   r   ÚresultsÚcontentÚ Úraw_contentÚtitleÚurl)r2   Úsource)r/   r2   r3   r1   Úimages)Úpage_contentÚmetadataÚanswerzSuggested Answerzhttps://tavily.com/r   )Útavilyr(   ÚImportErrorr)   r#   ÚosÚenvironr   r   Úsearchr   Úvaluer    r!   r   r   r"   Úgetr	   Úitems)Úselfr$   r%   r(   r9   r,   ÚresponseÚresultr   ÚvÚdocss              r   Ú_get_relevant_documentsz0TavilySearchAPIRetriever._get_relevant_documents^   s  € ð
	ð:Ý/ñ  d§l¡lÒ&R´b·j±jÐAQÑ6RÔSˆØ$(×$AÒ$A�d—f’fÀtÇvÁvÐPQÁzˆØ �6—=‘=ð 

ØØ#Ø×*Ñ*×0Ñ0Ø×8Ñ8Ø ×0Ñ0Ø ×0Ñ0Ø $× 8Ñ 8Ø×.Ñ.ñ

ð �k‰kñ

ˆð6 #Ÿ,™, yÔ1õ!
ñ  2�ô à×/Ò/ð $ŸZ™Z¨	°2Ô6à—j‘j Ó/Ò5°2à#ŸZ™Z¨°Ó4Ø$Ÿj™j¨°Ó3ñ	ð
 %+§L¡L¤Nôá$2™D˜A˜qØÐ$NÑNð ˜1™Ø$2òð	ð ˜hŸl™l¨8Ó4ñ	ö	ð 2ð! 	ò 
ð$ ×(Ò(äØ!)§¡¨h¸Ó!;à!3Ø"7ñôð	ð ð	ˆDð ˆøôi ò :ç9Ð9ð:ûô ò 	ÜðFóð ð	üó6ùô
s<   ƒF0 ÃA3G$ÅGÅG$Æ0GÆ?G ÇGÇG ÇGÇG$)r   r   r   r   r   ÚintÚ__annotations__r   Úboolr   r   r   r   r   r    r   r   Ústrr!   r"   r   r   r#   r   r	   rF   r   r   r   r   r      s°   … ñ@ðD €A€sƒKØ%*Ð˜dÓ*Ø %Ð˜Ó%Ø €N�DÓ Ø +× 1Ñ 1€L�+Ó1Ø+/€O�X˜d 3™iÑ(Ó/Ø+/€O�X˜d 3™iÑ(Ó/Ø')€FˆH�T˜#˜s˜(‘^Ñ$Ó)Ø!€GˆX�c‰]Ó!ð:Øð:Ø*Hð:à	ˆh‰ô:r   r   )r;   Úenumr   Útypingr   r   r   r   Úlangchain_core.callbacksr   Úlangchain_core.documentsr	   Úlangchain_core.retrieversr
   r   r   r   r   r   Ú<module>rP      s4   ðÛ 	Ý ß ,Ó ,å CÝ -Ý 3ô�$ô ôG˜}õ Gr   