compass.extraction.wind.parse.StructuredWindOrdinanceParser#

class StructuredWindOrdinanceParser(llm_service, usage_tracker=None, **kwargs)[source]#

Bases: StructuredWindParser

LLM ordinance document structured data scraping utility

Purpose:

Extract structured ordinance data from text.

Responsibilities:
  1. Extract ordinance values into structured format by executing a decision-tree-based chain-of-thought prompt on the text for each value to be extracted.

Key Relationships:

Uses a StructuredLLMCaller for LLM queries and multiple AsyncDecisionTree instances to guide the extraction of individual values.

Parameters:
  • llm_service (compass.services.base.Service) – LLM service used for queries.

  • usage_tracker (compass.services.usage.UsageTracker, optional) – Optional tracker instance to monitor token usage during LLM calls. By default, None.

  • **kwargs – Keyword arguments to be passed to the underlying service processing function (i.e. llm_service.call(**kwargs)). Should not contain the following keys:

    • usage_tracker

    • usage_sub_label

    • messages

    These arguments are provided by this caller object.

Methods

parse(text)

Parse text and extract structure ordinance data

async parse(text)[source]#

Parse text and extract structure ordinance data

Parameters:

text (str) – Ordinance text which may or may not contain setbacks for one or more features (property lines, structure, roads, etc.). Text can also contain other supported regulations (noise, shadow-flicker, etc,) which will be extracted as well.

Returns:

pd.DataFrame – DataFrame containing parsed-out ordinance values.