Stable id for this step, referenced by downstream steps' Inputs.
The row field holding the image to analyze — either a fully-qualified image
URL or a binary/data reference (e.g. a data:image/...;base64,... data URL).
Resolved per-row at assembly time; rows with a null/missing value yield a
null feature (no prompt is run).
OptionalInputsIds of upstream steps that feed this step (DAG edges).
Discriminator selecting the concrete step variant.
OptionalLabelOptional human-readable label for the visual DAG.
OptionalModelOptional model override (an MJ: AI Models id/name) forcing a specific
vision-capable model. When omitted, the prompt's own model selection applies.
Pinned into the model's Lineage so scoring uses the same vision model.
The expected structured output the model emits — the named scalar/category that becomes this step's feature column.
The vision prompt to run over the image. Either a reference to a stored
MJ: AI Prompts row (id or name) or an inline prompt body. Exactly one form
is used; when both are set the inline body takes precedence.
vision-llm— multimodal vision-LLM-as-feature (plan §11 / §5.6, PS-MM-1). For each row, a vision prompt is run over the row's image (URL or binary ref) and its single structured output (a named category or scalar) becomes the feature column's value.Unlike preprocessing steps (
impute/standardize/onehot/bin), this step is a per-row, stateless extraction: there is no fitted state — the same prompt is applied to each row independently — so it is exempt from the fit-once/apply-everywhere split and produces a RAW column directly, exactly likeselect/embedding(see the executor for the full reasoning).