Source code for langchain_community.tools.google_serper.tool
"""Tool for the Serper.dev Google Search API."""fromtypingimportOptionalfromlangchain_core.callbacksimport(AsyncCallbackManagerForToolRun,CallbackManagerForToolRun,)fromlangchain_core.toolsimportBaseToolfrompydanticimportFieldfromlangchain_community.utilities.google_serperimportGoogleSerperAPIWrapper
[docs]classGoogleSerperRun(BaseTool):# type: ignore[override]"""Tool that queries the Serper.dev Google search API."""name:str="google_serper"description:str=("A low-cost Google Search API.""Useful for when you need to answer questions about current events.""Input should be a search query.")api_wrapper:GoogleSerperAPIWrapperdef_run(self,query:str,run_manager:Optional[CallbackManagerForToolRun]=None,)->str:"""Use the tool."""returnstr(self.api_wrapper.run(query))asyncdef_arun(self,query:str,run_manager:Optional[AsyncCallbackManagerForToolRun]=None,)->str:"""Use the tool asynchronously."""return(awaitself.api_wrapper.arun(query)).__str__()
[docs]classGoogleSerperResults(BaseTool):# type: ignore[override]"""Tool that queries the Serper.dev Google Search API and get back json."""name:str="google_serper_results_json"description:str=("A low-cost Google Search API.""Useful for when you need to answer questions about current events.""Input should be a search query. Output is a JSON object of the query results")api_wrapper:GoogleSerperAPIWrapper=Field(default_factory=GoogleSerperAPIWrapper)def_run(self,query:str,run_manager:Optional[CallbackManagerForToolRun]=None,)->str:"""Use the tool."""returnstr(self.api_wrapper.results(query))asyncdef_arun(self,query:str,run_manager:Optional[AsyncCallbackManagerForToolRun]=None,)->str:"""Use the tool asynchronously."""return(awaitself.api_wrapper.aresults(query)).__str__()