Source code for langchain_community.tools.searchapi.tool
"""Tool for the SearchApi.io search API."""fromtypingimportOptionalfromlangchain_core.callbacksimport(AsyncCallbackManagerForToolRun,CallbackManagerForToolRun,)fromlangchain_core.toolsimportBaseToolfrompydanticimportFieldfromlangchain_community.utilities.searchapiimportSearchApiAPIWrapper
[docs]classSearchAPIRun(BaseTool):# type: ignore[override]"""Tool that queries the SearchApi.io search API."""name:str="searchapi"description:str=("Google search API provided by SearchApi.io.""This tool is handy when you need to answer questions about current events.""Input should be a search query.")api_wrapper:SearchApiAPIWrapperdef_run(self,query:str,run_manager:Optional[CallbackManagerForToolRun]=None,)->str:"""Use the tool."""returnself.api_wrapper.run(query)asyncdef_arun(self,query:str,run_manager:Optional[AsyncCallbackManagerForToolRun]=None,)->str:"""Use the tool asynchronously."""returnawaitself.api_wrapper.arun(query)
[docs]classSearchAPIResults(BaseTool):# type: ignore[override]"""Tool that queries the SearchApi.io search API and returns JSON."""name:str="searchapi_results_json"description:str=("Google search API provided by SearchApi.io.""This tool is handy when you need to answer questions about current events.""The input should be a search query and the output is a JSON object ""with the query results.")api_wrapper:SearchApiAPIWrapper=Field(default_factory=SearchApiAPIWrapper)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__()