§
    šŠtj0  ã                   óZ   — 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dS )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dS )Ú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} n# t          $ r t          d¦  «        ‚w xY w||_        ||d<   |S )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       új/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/langchain_community/utilities/google_scholar.pyÚvalidate_environmentz,GoogleScholarAPIWrapper.validate_environment6   s†   € õ ,¨F°NÀNÑSÔSˆØ!-ˆˆ~Ñð	Ø3Ð3Ð3Ð3Ð3Ð3Ð3øåð 	ð 	ð 	Ýðñô ð ð	øøøð ,8ÐÔ(Ø*=ˆÐ&Ñ'àˆs   ˜ Ÿ9Úqueryc           	      ó¶  — g }d}|t          | j        dz
  d¦  «        k     r—|                      ||| j        t	          | j        d¦  «        | j        dœ¦  «                             ¦   «                              dg ¦  «        }|                     |¦  «         |sn!|dz  }|t          | j        dz
  d¦  «        k     °—| j        dz  dk    rp|dk    rj|rh|                      ||| j        dz  | j        | j        dœ¦  «                             ¦   «                              dg ¦  «        }|                     |¦  «         |sdS d„ |D ¦   «         }d	 	                    |¦  «        S )
z6Run query through GoogleSearchScholar and parse resultr   é   é   )ÚqÚstartr   Únumr   Úorganic_results)r&   r'   r(   r   r   z'No good Google Scholar Result was foundc                 ó¤  — g | ]Í}d |                      dd¦  «        › dd                     d„ |                      di ¦  «                              dg ¦  «        D ¦   «         ¦  «        › d|                      di ¦  «                              d	d¦  «        › d
|                      di ¦  «                              di ¦  «                              dd¦  «        › �‘ŒÎS )zTitle: ÚtitleÚ z

Authors: ú,c                 ó8   — g | ]}|                      d ¦  «        ‘ŒS )Úname)Úget)Ú.0Úauthors     r    ú
<listcomp>z:GoogleScholarAPIWrapper.run.<locals>.<listcomp>.<listcomp>~   s$   € Ð!yÐ!yÐ!y¸ &§*¢*¨VÑ"4Ô"4Ð!yÐ!yÐ!yó    Úpublication_infoÚauthorsz

Summary: Úsummaryz
Total-Citations: Úinline_linksÚcited_byÚtotal)r0   Újoin)r1   Úresults     r    r3   z/GoogleScholarAPIWrapper.run.<locals>.<listcomp>|   s  € ð 
ð 
ð 
ð
 ð	f�f—j’j ¨"Ñ-Ô-ð fð fØŸšÐ!yÐ!yÀ6Ç:Â:ÐN`ÐbdÑCeÔCe×CiÒCiÐjsÐuwÑCxÔCxÐ!yÑ!yÔ!yÑzÔzðfð fàŸ
š
Ð#5°rÑ:Ô:×>Ò>¸yÈ"ÑMÔMðfð fð !'§
¢
¨>¸2Ñ >Ô >× BÒ BÀ:ÈrÑ RÔ R× VÒ VÐW^Ð`bÑ cÔ cðfð fð
ð 
ð 
r4   z

)
Úmaxr   r   r   Úminr   Úget_dictr0   Úextendr;   )Úselfr"   Útotal_resultsÚpageÚresultsÚdocss         r    ÚrunzGoogleScholarAPIWrapper.runK   s«  € àˆØˆØ•S˜$Ô,¨rÑ1°AÑ6Ô6Ò6Ð6ð ×*Ò*à"Ø!%Ø"œgÝ"Ø Ô.°ñ ô  ð #œgðð ñ
ô 
÷ ’‘”ß’Ð&¨Ñ+Ô+ð ð × Ò  Ñ)Ô)Ð)Øð àØ�B‰JˆDð1 •S˜$Ô,¨rÑ1°AÑ6Ô6Ò6Ð6ð4 Ô Ñ# qÒ(Ð(¨T°BªY¨Y¸=¨Yð ×*Ò*à"Ø!%Ø#Ô1°BÑ6Ø"œgØ"œgðð ñô ÷ ’‘”ß’Ð&¨Ñ+Ô+ð ð × Ò  Ñ)Ô)Ð)Øð 	=Ø<Ð<ð
ð 
ð
 (ð
ñ 
ô 
ˆð �{Š{˜4Ñ Ô Ð r4   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   ÚintÚ__annotations__r   Ústrr   r   r   r   r   r   Úmodel_configr	   Úclassmethodr   r!   rF   © r4   r    r   r   	   sö   € € € € € € ð ð  ðD €M�3ÐÐÑØ€Bˆ€N€N�NØ€BˆÐÐÑØ"&€L�(˜3”-Ð&Ð&Ñ&Ø!%Ð˜3Ð%Ð%Ñ%à�:Øðñ ô €Lð €_˜(Ð#Ñ#Ô#Øð¨$ð °3ð ð ð ñ „[ñ $Ô#ðð&8!˜ð 8! ð 8!ð 8!ð 8!ð 8!ð 8!ð 8!r4   r   N)rJ   Útypingr   r   r   Úlangchain_core.utilsr   Úpydanticr   r   r	   r   rP   r4   r    ú<module>rT      s—   ðØ ,Ð ,à &Ð &Ð &Ð &Ð &Ð &Ð &Ð &Ð &Ð &à 5Ð 5Ð 5Ð 5Ð 5Ð 5Ø ;Ð ;Ð ;Ð ;Ð ;Ð ;Ð ;Ð ;Ð ;Ð ;ðz!ð z!ð z!ð z!ð z!˜iñ z!ô z!ð z!ð z!ð z!r4   