Skip to main content

Enricher

Stream a JSONL file and ask the configured LLM to enrich every record with extra fields produced by structured tool calls. Each "enricher" you define is exposed to the model as a callable tool with a typed property schema; the model picks which to invoke per record, and the returned arguments are merged onto the outgoing record. Use this for sentiment, entity extraction, classification, summaries, scoring, etc.

For free-form per-record chat completions use AI::Chat. For splitting records into multiple chunks use AI::Chunker.

Pre-requisite: Install an AI provider application from Profile > {Organization} > Applications. The provider must support tool/function calling (currently OpenAI, Mistral, Anthropic).

Parameters

ProviderREQUIRED
Configured AI application.
Model

Model identifier supporting tool calling. Defaults to the provider's recommended chat model when left empty.

System Context

System prompt sent before every record. Use it to constrain the model (e.g. "Answer only in English. Never invent values — if the input does not support a property, omit it.").

ModeREQUIRED
  • Batch (default) — submits every record as one batch job. Cheap, asynchronous, best for large files.
  • Direct — calls the AI per record synchronously. On per-record errors the record is passed through unchanged so a single bad row doesn't abort the file.
EnrichersREQUIRED

One or more enrichment tools the model can call per record. Each enricher has:

  • Name — tool name shown to the model. Must be unique within the node.
  • Description — plain-language explanation of what the tool extracts. The model reads this to decide what to put in each property.
  • Properties — list of fields to extract. Each property has:
    • Name — field written onto the output record.
    • Schema — JSON Schema fragment (e.g. {"type": "string", "enum": ["positive", "negative"]}). Tighter schemas yield better structured extraction. Supported types: string, number (with optional enum, format, default, description).
    • Required — when true the model must return this field; when false it may omit it.

Input

FileREQUIRED
JSONL file with one record per line.

Output

File

JSONL file with the same records, each merged with whichever enrichment properties the model returned for that row.