Skip to main content
ai.split, Split a parsed document into named sections using an LLM. Consumes ai.parse output; emits per-section page ranges and text ready for downstream ai.extract via control.parallel_map.

Configuration

Configuration goes inside the step’s with: block.
string
required
Template expression resolving to ai.parse output, e.g. ”{{ steps.parse.output }}”
array<object>
required
Named sections to find in the document
string
Optional natural-language rules appended to the system prompt. E.g. “End-of-section markers like Koniec prílohy 2 close the current section.”
string
Provider ID from eigenpal.config.yaml (e.g. “openai-gpt5.4-mini”). Falls back to the tenant default LLM provider when omitted.
"none" | "minimal" | "low" | "medium" | "high" | "xhigh" | "max"
Reasoning effort for models that support it. Omit to use the selected model’s default.
integer
Override the estimated per-window token ceiling. Oversized pages are subdivided with overlap while retaining their original page index. Defaults to env SPLIT_WINDOW_TOKEN_BUDGET or 20000. Inputs requiring more than 64 LLM windows are rejected before calls begin.

Output

Sections found in the document, in page order. Absent sections are omitted.
The same sections keyed by config name, so a downstream step can reference one directly: &#123;&#123; steps.&lt;split>.output.sections.&lt;name>.page_range }}. Prefer this over filtering splits. On a duplicate name the last wins.