CyberMax-tools's picture
CyberMax geocode_address tool for smolagents
8336c76 verified
Raw History Blame Contribute Delete
932 Bytes
from typing import Any, Optional
from smolagents.tools import Tool
import requests
class GeocodeTool(Tool):
name = "geocode_address"
description = "Pinloft by CyberMax: geocode up to 5 addresses (US Census geocoder first, OpenStreetMap worldwide) to latitude, longitude, formatted address and, for US addresses, county and Census FIPS codes. Separate addresses with '|'. Free tier, no key; paid keys at https://pinloft.cybermax-tools.workers.dev/docs"
inputs = {'addresses': {'type': 'string', 'description': "One address, or several separated by '|'"}}
output_type = "object"
def forward(self, addresses: str):
import requests
r = requests.get("https://pinloft.cybermax-tools.workers.dev/api/geocode",
params={"address": addresses, "via": "smolagents"}, timeout=30)
return r.json()
def __init__(self, *args, **kwargs):
self.is_initialized = False