Source code for langchain_community.utilities.semanticscholar
"""Utils for interacting with the Semantic Scholar API."""importloggingfromtypingimportAny,Dict,List,OptionalfrompydanticimportBaseModel,model_validatorlogger=logging.getLogger(__name__)
[docs]classSemanticScholarAPIWrapper(BaseModel):"""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:Any#: :meta private:top_k_results:int=5S2_MAX_QUERY_LENGTH:int=300load_max_docs:int=100doc_content_chars_max:Optional[int]=4000returned_fields:List[str]=["title","abstract","venue","year","paperId","citationCount","openAccessPdf","authors","externalIds",]@model_validator(mode="before")@classmethoddefvalidate_environment(cls,values:Dict)->Any:"""Validate that the python package exists in environment."""try:fromsemanticscholarimportSemanticScholarsch=SemanticScholar()values["semanticscholar_search"]=sch.search_paperexceptImportError:raiseImportError("Could not import Semanticscholar python package. ""Please install it with `pip install semanticscholar`.")returnvalues