Skip to content

Documentation v1.0.0


Documentation / @openassistant/osm / roads

Variable: roads

const roads: OpenAssistantTool<typeof roadsParameters, RoadsLlmResult, RoadsAdditionalData, OsmToolContext>

Defined in: roads.ts:119

Roads Tool

This tool queries OpenStreetMap's Overpass API to fetch road networks based on a boundary and road type. The boundary can be specified as a bounding box (south,west,north,east) or a named area. Road types can be: highway, pedestrian, residential, etc.

Example user prompts:

  • "Get all highways in New York City"
  • "Find pedestrian paths in Central Park"
  • "Show me residential roads in San Francisco"

Example

typescript
import { roads, RoadsTool } from "@openassistant/osm";
import { convertToVercelAiTool, ToolCache } from '@openassistant/utils';
import { generateText } from 'ai';

// you can use ToolCache to save the roads dataset for later use
const toolResultCache = ToolCache.getInstance();

const roadsTool: RoadsTool = {
  ...roads,
  context: {
    getGeometries: (datasetName) => {
      return SAMPLE_DATASETS[datasetName].map((item) => item.geometry);
    },
  },
  onToolCompleted: (toolCallId, additionalData) => {
    toolResultCache.addDataset(toolCallId, additionalData);
  },
};

generateText({
  model: openai('gpt-4.1', { apiKey: key }),
  prompt: 'Show me all highways in New York City',
  tools: {
    roads: convertToVercelAiTool(roadsTool),
  },
});

Released under the MIT License.