range / examples /custom_taxonomy.py
Brianferrell787's picture
RANGE: clean package identity, example taxonomy API, Gradio 6.27.0
c4aee46 verified
Raw History Blame Contribute Delete
1.4 kB
"""Extend the bundled general-economy taxonomy without modifying it in place."""
from __future__ import annotations
import json
from range_curate.examples.general_economy import DefaultTaxonomy, RelevanceEngine
def add_regional_indicator(builder) -> None:
builder.add_lexical_rule(
rule_id="regional-manufacturing-survey",
entity_concept="macroeconomic_indicator",
tag_type="macroeconomic",
phrases=("regional manufacturing survey",),
target_id="MACRO:REGIONAL_MANUFACTURING",
market_wide_authorized=True,
source_id="custom-example",
)
def main() -> None:
base = DefaultTaxonomy()
custom = base.extend(add_regional_indicator)
assert base.fingerprint != custom.fingerprint
assert "regional-manufacturing-survey" not in base.lexical_rule_ids
assert "regional-manufacturing-survey" in custom.lexical_rule_ids
decision = RelevanceEngine(taxonomy=custom, workers=1).predict(
"The regional manufacturing survey weakened sharply.",
timestamp="2025-01-15T08:30:00-05:00",
article_id="custom-economy-1",
source="custom-example",
)
print(json.dumps(decision.summary(), indent=2))
print(f"\nBase taxonomy: {base.fingerprint}")
print(f"Custom taxonomy: {custom.fingerprint}")
if __name__ == "__main__":
main()