graph LR
AbstractResolver["AbstractResolver"]
Resolver["Resolver"]
WordAligner["WordAligner"]
langextract_data["langextract.data"]
langextract_tokenizer["langextract.tokenizer"]
Resolver -- "implements" --> AbstractResolver
Resolver -- "delegates to" --> WordAligner
Resolver -- "uses" --> langextract_data
Resolver -- "uses" --> langextract_tokenizer
One paragraph explaining the functionality which is represented by this graph. What the main flow is and what is its purpose.
This component defines the contract for any class responsible for parsing LLM output and aligning extractions. It establishes the resolve and align methods as the fundamental operations for this subsystem, ensuring extensibility and adherence to a common interface.
Related Classes/Methods:
langextract.resolver.AbstractResolver:resolvelangextract.resolver.AbstractResolver:align
The concrete implementation of AbstractResolver, this component is responsible for parsing LLM-generated YAML or JSON into data.Extraction objects. It orchestrates the entire resolution and alignment process, handling parsing logic, error management, and the ordering of extracted information. It acts as the primary orchestrator within this subsystem.
Related Classes/Methods:
langextract.data.Extraction:44-106
A specialized utility component focused on the precise alignment of extracted text spans with the original source text. It employs string comparison algorithms to identify exact, partial, or fuzzy matches, calculating token and character offsets. This component handles the granular details of text alignment.
Related Classes/Methods:
langextract.resolver.WordAligner:520-882
Module responsible for defining data structures, such as Extraction objects, used across the system.
Related Classes/Methods: None
Module responsible for tokenizing text for processing and alignment.
Related Classes/Methods: None