§
    šŠtj÷
  ã                   óv   — d Z ddlZddlmZmZmZmZ ddlmZm	Z	  ej
        e¦  «        Z G d„ de¦  «        ZdS )z4Utils for interacting with the Semantic Scholar API.é    N)ÚAnyÚDictÚListÚOptional)Ú	BaseModelÚmodel_validatorc                   óÔ   — e Zd ZU dZeed<   dZeed<   dZeed<   dZ	eed<   d	Z
ee         ed
<   g d¢Zee         ed<    ed¬¦  «        ededefd„¦   «         ¦   «         Zdedefd„ZdS )ÚSemanticScholarAPIWrapperaØ  Wrapper around semanticscholar.org API.
    https://github.com/danielnsilva/semanticscholar

    You should have this library installed.

    `pip install semanticscholar`

    Semantic Scholar API can conduct searches and fetch document metadata
    like title, abstract, authors, etc.

    Attributes:
    top_k_results: number of the top-scored document used for the Semantic Scholar tool
    load_max_docs: a limit to the number of loaded documents

    Example:
    .. code-block:: python

    from langchain_community.utilities.semanticscholar import SemanticScholarAPIWrapper
    ss = SemanticScholarAPIWrapper(
        top_k_results = 3,
        load_max_docs = 3
    )
    ss.run("biases in large language models")
    Úsemanticscholar_searché   Útop_k_resultsi,  ÚS2_MAX_QUERY_LENGTHéd   Úload_max_docsi   Údoc_content_chars_max)	ÚtitleÚabstractÚvenueÚyearÚpaperIdÚcitationCountÚopenAccessPdfÚauthorsÚexternalIdsÚreturned_fieldsÚbefore)ÚmodeÚvaluesÚreturnc                 óx   — 	 ddl m}  |¦   «         }|j        |d<   n# t          $ r t          d¦  «        ‚w xY w|S )z7Validate that the python package exists in environment.r   )ÚSemanticScholarr   zfCould not import Semanticscholar python package. Please install it with `pip install semanticscholar`.)Úsemanticscholarr!   Úsearch_paperÚImportError)Úclsr   r!   Úschs       úk/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/langchain_community/utilities/semanticscholar.pyÚvalidate_environmentz.SemanticScholarAPIWrapper.validate_environment;   sq   € ð		Ø7Ð7Ð7Ð7Ð7Ð7à!�/Ñ#Ô#ˆCØ/2Ô/?ˆFÐ+Ñ,Ð,øÝð 	ð 	ð 	ÝðHñô ð ð	øøøð
 ˆs   ‚ �7Úqueryc                 ó´  — |                       || j        | j        ¬¦  «        }g }|d| j        …         D ]}d                     d„ t          |dg ¦  «        D ¦   «         ¦  «        }|                     dt          |dd¦  «        › dt          |d	d¦  «        › d
|› dt          |dd¦  «        › d�	¦  «         Œ€|r"d                     |¦  «        d| j        …         S dS )zRun the Semantic Scholar API.)ÚlimitÚfieldsNz, c              3   ó&   K  — | ]}|d          V — ŒdS )ÚnameN© )Ú.0Úauthors     r'   ú	<genexpr>z0SemanticScholarAPIWrapper.run.<locals>.<genexpr>R   s7   è è € ð  ð  Ø#)��v”ð ð  ð  ð  ð  ð  ó    r   zPublished year: r   z
Title: r   z

Authors: z
Abstract: r   ú
z

zNo results found.)r   r   r   r   ÚjoinÚgetattrÚappendr   )Úselfr)   ÚresultsÚ	documentsÚitemr   s         r'   ÚrunzSemanticScholarAPIWrapper.runK   sD  € à×-Ò-Ø˜Ô+°DÔ4Hð .ñ 
ô 
ˆð ˆ	ØÐ0˜dÔ0Ð0Ô1ð 		ð 		ˆDØ—i’ið  ð  Ý-4°T¸9ÀbÑ-IÔ-Ið ñ  ô  ñ ô ˆGð ×ÒðA¥7¨4°¸Ñ#>Ô#>ð Að AÝ! $¨°Ñ6Ô6ðAð Aà#ðAð Aõ % T¨:°tÑ<Ô<ðAð Að Añô ð ð ð ð 	'Ø—;’;˜yÑ)Ô)Ð*F¨DÔ,FÐ*FÔGÐGà&Ð&r3   N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   Ú__annotations__r   Úintr   r   r   r   r   r   Ústrr   Úclassmethodr   r(   r<   r/   r3   r'   r
   r
      s  € € € € € € ðð ð2  ÐÐÑà€M�3ÐÐÑà"Ð˜Ð"Ð"Ñ"à€M�3ÐÐÑà+/Ð˜8 Cœ=Ð/Ð/Ñ/ð
"ð 
"ð 
"€O�T˜#”Yð 
ð 
ñ 
ð €_˜(Ð#Ñ#Ô#Øð¨$ð °3ð ð ð ñ „[ñ $Ô#ðð'˜ð ' ð 'ð 'ð 'ð 'ð 'ð 'r3   r
   )r@   ÚloggingÚtypingr   r   r   r   Úpydanticr   r   Ú	getLoggerr=   Úloggerr
   r/   r3   r'   ú<module>rJ      s    ðØ :Ð :à €€€Ø ,Ð ,Ð ,Ð ,Ð ,Ð ,Ð ,Ð ,Ð ,Ð ,Ð ,Ð ,à /Ð /Ð /Ð /Ð /Ð /Ð /Ð /à	ˆÔ	˜8Ñ	$Ô	$€ðT'ð T'ð T'ð T'ð T' 	ñ T'ô T'ð T'ð T'ð T'r3   