codekingpro/portable-devtools
114k
1"""Tool for the Google search API."""2 3from typing import Optional, Type4 5from langchain_core._api.deprecation import deprecated6from langchain_core.callbacks import CallbackManagerForToolRun7from langchain_core.tools import BaseTool8from pydantic import BaseModel, Field9 10from langchain_community.utilities.google_places_api import GooglePlacesAPIWrapper11 12 13class GooglePlacesSchema(BaseModel):14 """Input for GooglePlacesTool."""15 16 query: str = Field(..., description="Query for google maps")17 18 19@deprecated(20 since="0.0.33",21 removal="1.0",22 alternative_import="langchain_google_community.GooglePlacesTool",23)24class GooglePlacesTool(BaseTool):25 """Tool that queries the Google places API."""26 27 name: str = "google_places"28 description: str = (29 "A wrapper around Google Places. "30 "Useful for when you need to validate or "31 "discover addressed from ambiguous text. "32 "Input should be a search query."33 )34 api_wrapper: GooglePlacesAPIWrapper = Field(default_factory=GooglePlacesAPIWrapper)35 args_schema: Type[BaseModel] = GooglePlacesSchema36 37 def _run(38 self,39 query: str,40 run_manager: Optional[CallbackManagerForToolRun] = None,41 ) -> str:42 """Use the tool."""43 return self.api_wrapper.run(query)44 