Ë
    µŒjþ
  ã                   ób   — d dl Z d dlmZ d dlZd dlmZ d dlmZ d dlm	Z	m
Z
mZ  G d„ de	«      Zy)é    N)ÚList)ÚDocument)Úsecret_from_env)Ú	BaseModelÚFieldÚ	SecretStrc                   ó¨   — e Zd ZU dZ e edg«      ¬«      Zeed<   	  ee	¬«      Z
e	ed<   	 dZeed<   	 ded	efd
„Zded	ee   fd„Zded	ee	   fd„Zy)ÚBraveSearchWrapperz'Wrapper around the Brave search engine.ÚBRAVE_SEARCH_API_KEY)Údefault_factoryÚapi_keyÚsearch_kwargsz.https://api.search.brave.com/res/v1/web/searchÚbase_urlÚqueryÚreturnc                 ó2  — | j                  |¬«      }|D �cg c]a  }|j                  d«      |j                  d«      dj                  t        d|j                  d«      g|j                  dg «      ¢«      «      dœ‘Œc }}t	        j
                  |«      S c c}w )	z»Query the Brave search engine and return the results as a JSON string.

        Args:
            query: The query to search for.

        Returns: The results as a JSON string.

        )r   ÚtitleÚurlÚ NÚdescriptionÚextra_snippets)r   ÚlinkÚsnippet)Ú_search_requestÚgetÚjoinÚfilterÚjsonÚdumps)Úselfr   Úweb_search_resultsÚitemÚfinal_resultss        út/var/www/html/Fitness-lenito-AI-main/venv/lib/python3.12/site-packages/langchain_community/utilities/brave_search.pyÚrunzBraveSearchWrapper.run   s¤   € ð "×1Ñ1¸Ð1Ó>Ðñ +ó
ñ +�ð Ÿ™ 'Ó*ØŸ™ ›ØŸ8™8ÜØ˜tŸx™x¨Ó6ÐX¸¿¹ÐBRÐTVÓ9WÐXóóóð +ð 	ð 
ô �z‰z˜-Ó(Ð(ùò
s   —A&Bc                 ó  — | j                  |«      }|D �cg c]k  }t        dj                  t        d|j	                  d«      g|j	                  dg «      ¢«      «      |j	                  d«      |j	                  d«      dœ¬«      ‘Œm c}S c c}w )	zÇQuery the Brave search engine and return the results as a list of Documents.

        Args:
            query: The query to search for.

        Returns: The results as a list of Documents.

        r   Nr   r   r   r   )r   r   )Úpage_contentÚmetadata)r   r   r   r   r   )r    r   Úresultsr"   s       r$   Údownload_documentsz%BraveSearchWrapper.download_documents.   s–   € ð ×&Ñ& uÓ-ˆñ  ó

ñ  �ô Ø ŸX™XÜØ˜tŸx™x¨Ó6ÐX¸¿¹ÐBRÐTVÓ9WÐXóóð
 $(§8¡8¨GÓ#4¸d¿h¹hÀu»oÑNöð  ñ

ð 
	
ùò 

s   –A0B	c                 óÚ  — | j                   j                  «       ddœ}t        j                  «       }i | j                  ¥|ddœ¥}|j                  | j                  |«       |j                  €t        d«      ‚t        j                  |j                  |¬«      }|j                  st        d|j                  › �«      ‚|j                  «       j                  di «      j                  d	g «      S )
Nzapplication/json)zX-Subscription-TokenÚAcceptT)Úqr   z,prepared url is None, this should not happen)ÚheaderszHTTP error Úwebr)   )r   Úget_secret_valueÚrequestsÚPreparedRequestr   Úprepare_urlr   r   Ú
ValueErrorr   ÚokÚ	ExceptionÚstatus_coder   )r    r   r.   ÚreqÚparamsÚresponses         r$   r   z"BraveSearchWrapper._search_requestD   sÇ   € à$(§L¡L×$AÑ$AÓ$CØ(ñ
ˆô ×&Ñ&Ó(ˆØO�D×&Ñ&ÐO°ÈÑ*NÐOˆØ�‰˜Ÿ™ vÔ.Ø�7‰7ˆ?ÜÐKÓLÐLä—<‘< §¡°Ô9ˆØ�{Š{Ü˜k¨(×*>Ñ*>Ð)?Ð@ÓAÐAà�}‰}‹×"Ñ" 5¨"Ó-×1Ñ1°)¸RÓ@Ð@ó    N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r   r   r   Ú__annotations__Údictr   r   Ústrr%   r   r   r*   r   © r;   r$   r
   r
   
   sŠ   … Ù1áÙ'Ð)?Ð(@ÓAô€GˆYó ð :Ù°Ô5€M�4Ó5ØEØD€HˆcÓDØ3ð)˜ð ) ó )ð0
¨ð 
°°X±ó 
ð,A Sð A¨T°$©Zô Ar;   r
   )r   Útypingr   r1   Úlangchain_core.documentsr   Úlangchain_core.utilsr   Úpydanticr   r   r   r
   rC   r;   r$   Ú<module>rH      s*   ðÛ Ý ã Ý -Ý 0ß 0Ñ 0ôIA˜õ IAr;   