Skip to main content
ai.classify-pages: Assign zero or more labels to each page independently (multi-label) using an LLM. Consumes ai.parse output; emits per-page labels and a byLabel map (label -> page indices) that supports NON-contiguous selections. Feed byLabel.<label> straight into ai.vision pageIndices to inspect scattered pages of a type (e.g. every signature or property-photo page).

Configuration

Configuration goes inside the step’s with: block.
string
required
The ai.parse output to label, e.g. ”{{ steps.parse.output }}”. Each page is labelled independently.
array<string | object>
required
Labels a page can carry. A page may match ZERO, ONE, or MANY of them. Each entry is a bare name (e.g. “photo”) or { name, description }. Names must be unique.
string
Extra classification guidance appended to the system prompt.
string
Provider ID from eigenpal.config.yaml. Falls back to the tenant default.
string
Model override (advanced).
integer
Per-window token ceiling. Pages are packed into windows under this budget; one LLM call per window. Defaults to env SPLIT_WINDOW_TOKEN_BUDGET (20000).

Output

Every input page, in order, with the labels the model assigned to it.
Label name -> ascending page indices carrying it. Every configured label is present (empty array when no page matched), so dot access is always safe: &#123;&#123; steps.&lt;step>.output.byLabel.&lt;label> }} resolves to a number[] ready for ai.vision pageIndices.