Ë
    µŒj0  ã                   óR   — d Z ddlmZmZmZ ddlmZ ddlmZm	Z	m
Z
  G d„ de«      Zy)z&Util that calls Google Scholar Search.é    )ÚAnyÚDictÚOptional)Úget_from_dict_or_env)Ú	BaseModelÚ
ConfigDictÚmodel_validatorc                   ó²   — 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   ed	<   dZeed
<    ed¬«      Z ed¬«      ededefd„«       «       Zdedefd„Zy)ÚGoogleScholarAPIWrapperaÖ  Wrapper for Google Scholar API

    You can create serpapi key by signing up at: https://serpapi.com/users/sign_up.

    The wrapper uses the serpapi python package:
    https://serpapi.com/integrations/python#search-google-scholar

    To use, you should have the environment variable ``SERP_API_KEY``
    set with your API key, or pass `serp_api_key` as a named parameter
    to the constructor.

    Attributes:
        top_k_results: number of results to return from google-scholar query search.
            By default it returns top 10 results.
        hl: attribute defines the language to use for the Google Scholar search.
            It's a two-letter language code.
            (e.g., en for English, es for Spanish, or fr for French). Head to the
            Google languages page for a full list of supported Google languages:
            https://serpapi.com/google-languages

        lr: attribute defines one or multiple languages to limit the search to.
            It uses lang_{two-letter language code} to specify languages
            and | as a delimiter. (e.g., lang_fr|lang_de will only search French
            and German pages). Head to the Google lr languages for a full
            list of supported languages: https://serpapi.com/google-lr-languages

     Example:
        .. code-block:: python

        from langchain_community.utilities import GoogleScholarAPIWrapper
        google_scholar = GoogleScholarAPIWrapper()
        google_scholar.run('langchain')
    é
   Útop_k_resultsÚenÚhlÚlang_enÚlrNÚserp_api_keyÚgoogle_scholar_engineÚforbid)ÚextraÚbefore)ÚmodeÚvaluesÚreturnc                 ó€   — t        |dd«      }||d<   	 ddlm} ||_        ||d<   |S # t        $ r t        d«      ‚w xY w)z?Validate that api key and python package exists in environment.r   ÚSERP_API_KEYr   )ÚGoogleScholarSearchzigoogle-search-results is not installed. Please install it with `pip install google-search-results>=2.4.2`r   )r   Úserpapir   ÚImportErrorr   )Úclsr   r   r   s       úv/var/www/html/Fitness-lenito-AI-main/venv/lib/python3.12/site-packages/langchain_community/utilities/google_scholar.pyÚvalidate_environmentz,GoogleScholarAPIWrapper.validate_environment6   sb   € ô ,¨F°NÀNÓSˆØ!-ˆˆ~Ñð	Ý3ð ,8ÐÔ(Ø*=ˆÐ&Ñ'àˆøô ò 	Üðóð ð	ús   ”( ¨=Úqueryc                 ó8  — g }d}|t        | j                  dz
  d«      k  r“| j                  ||| j                  t	        | j                  d«      | j
                  dœ«      j                  «       j                  dg «      }|j                  |«       |sn"|dz  }|t        | j                  dz
  d«      k  rŒ“| j                  dz  dk7  rn|dkD  ri|rg| j                  ||| j                  dz  | j                  | j
                  dœ«      j                  «       j                  dg «      }|j                  |«       |sy|D ��cg c]¼  }d|j                  d	d
«      › ddj                  |j                  di «      j                  dg «      D �cg c]  }|j                  d«      ‘Œ c}«      › d|j                  di «      j                  dd
«      › d|j                  di «      j                  di «      j                  dd
«      › �‘Œ¾ }}}dj                  |«      S c c}w c c}}w )z6Run query through GoogleSearchScholar and parse resultr   é   é   )ÚqÚstartr   Únumr   Úorganic_results)r&   r'   r(   r   r   z'No good Google Scholar Result was foundzTitle: ÚtitleÚ z

Authors: Ú,Úpublication_infoÚauthorsÚnamez

Summary: Úsummaryz
Total-Citations: Úinline_linksÚcited_byÚtotalz

)
Úmaxr   r   r   Úminr   Úget_dictÚgetÚextendÚjoin)Úselfr"   Útotal_resultsÚpageÚresultsÚresultÚauthorÚdocss           r    ÚrunzGoogleScholarAPIWrapper.runK   s9  € àˆØˆØ”S˜$×,Ñ,¨rÑ1°AÓ6Ò6ð ×*Ñ*à"Ø!%Ø"Ÿg™gÜ"Ø ×.Ñ.°ó ð #Ÿg™gñó
÷ ‘“ß‘Ð&¨Ó+ð ð × Ñ  Ô)ÙàØ�B‰JˆDð1 ”S˜$×,Ñ,¨rÑ1°AÓ6Ó6ð4 ×Ñ Ñ# qÒ(¨T°BªY¹=ð ×*Ñ*à"Ø!%Ø#×1Ñ1°BÑ6Ø"Ÿg™gØ"Ÿg™gñó÷ ‘“ß‘Ð&¨Ó+ð ð × Ñ  Ô)ÙØ<ñ (ô
ñ
 (�ð	 �f—j‘j ¨"Ó-Ð.ð /ØŸ™À6Ç:Á:ÐN`ÐbdÓCe×CiÑCiÐjsÐuwÔCxÓ!yÑCx¸ &§*¡*¨VÕ"4ÐCxÑ!yÓzÐ{ð |ØŸ
™
Ð#5°rÓ:×>Ñ>¸yÈ"ÓMÐNð O Ø &§
¡
¨>¸2Ó >× BÑ BÀ:ÈrÓ R× VÑ VÐW^Ð`bÓ cÐdòfð (ð 	ñ 
ð �{‰{˜4Ó Ð ùò "zùó
s   Ä<AHÆHÆA!HÈH)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   ÚintÚ__annotations__r   Ústrr   r   r   r   r   r   Úmodel_configr	   Úclassmethodr   r!   rA   © ó    r    r   r   	   s�   … ñ ðD €M�3ÓØ€BˆƒNØ€BˆÓØ"&€L�(˜3‘-Ó&Ø!%Ð˜3Ó%áØô€Lñ ˜(Ô#Øð¨$ð °3ò ó ó $ðð&8!˜ð 8! ô 8!rL   r   N)rE   Útypingr   r   r   Úlangchain_core.utilsr   Úpydanticr   r   r	   r   rK   rL   r    Ú<module>rP      s%   ðÙ ,ç &Ñ &å 5ß ;Ñ ;ôz!˜iõ z!rL   