Extraction pipeline: normalize LLM output, parse extractions, align to source text.
Summary
Functions
@spec extract(String.t(), String.t(), keyword()) :: {:ok, [LangExtract.Alignment.Span.t()]} | {:error, {:invalid_format, String.t()} | :missing_extractions}