For AI agents: a documentation index is available at the root level at /llms.txt and /llms-full.txt. Append /llms.txt to any URL for a page-level index, or .md for the markdown version of any page.
  • Getting Started
    • Welcome
    • Contributing
  • Concepts
    • Columns
    • Seed Datasets
    • Agent Rollout Ingestion
    • Custom Columns
    • Validators
    • Processors
    • Person Sampling
    • Traces
    • Architecture & Performance
    • Deployment Options
    • Security
  • Tutorials
    • Overview
    • The Basics
    • Structured Outputs, Jinja Expressions, and Conditional Generation
    • Seeding with an External Dataset
    • Providing Images as Context
    • Generating Images
    • Image-to-Image Editing
  • Recipes
    • Recipe Cards
  • Plugins
    • Overview
    • Example Plugin
    • FileSystemSeedReader Plugins
    • Discover
  • Code Reference
    • Overview
      • Overview
      • models
      • mcp
      • column_configs
      • config_builder
      • data_designer_config
      • run_config
      • sampler_params
      • validator_params
      • seeds
      • processors
      • analysis
      • Config API
        • Analysis
        • Base
        • Column Configs
        • Column Types
        • Config Builder
        • Custom Column
        • Data Designer Config
        • Dataset Metadata
        • Default Model Settings
        • Errors
        • Exportable Config
        • Fingerprint
        • Interface
        • Mcp
        • Models
        • Preview Results
        • Processor Types
        • Processors
        • Run Config
        • Sampler Constraints
        • Sampler Params
        • Seed
        • Seed Source
        • Seed Source Dataframe
        • Seed Source Types
        • Testing
        • Utils
        • Validator Params
        • Version
  • Dev Notes
    • Overview
    • Have It Your Way
    • VLM Long Document Understanding
    • Push Datasets to Hugging Face Hub
    • Text-to-SQL for Nemotron Super
    • Async All the Way Down
    • Owning the Model Stack
NVIDIANVIDIA
Developer-friendly docs for your API
Privacy Policy | Your Privacy Choices | Terms of Service | Accessibility | Corporate Policies | Product Security | Contact

Copyright © 2026, NVIDIA Corporation.

LogoLogoNeMo Data Designer
On this page
  • Module Contents
  • Classes
  • API
Code ReferenceConfigConfig API

data_designer.config.column_configs

||View as Markdown|
Previous

Base

Next

Column Types

Module Contents

Classes

NameDescription
GenerationStrategyStrategy for custom column generation.
SamplerColumnConfigConfiguration for columns generated using built-in samplers.
LLMTextColumnConfigConfiguration for text generation columns using Large Language Models.
LLMCodeColumnConfigConfiguration for code generation columns using Large Language Models.
LLMStructuredColumnConfigConfiguration for structured JSON generation columns using Large Language Models.
ScoreConfiguration for a “score” in an LLM judge evaluation.
LLMJudgeColumnConfigConfiguration for LLM-as-a-judge quality assessment and scoring columns.
ExpressionColumnConfigConfiguration for derived columns using Jinja2 expressions.
ValidationColumnConfigConfiguration for validation columns that validate existing columns.
SeedDatasetColumnConfigConfiguration for columns sourced from seed datasets.
EmbeddingColumnConfigConfiguration for embedding generation columns.
ImageColumnConfigConfiguration for image generation columns.
CustomColumnConfigConfiguration for custom user-defined column generators.

API

1class data_designer.config.column_configs.GenerationStrategy

Bases: str, enum.Enum

Strategy for custom column generation.

Initialization:

Initialize self. See help(type(self)) for accurate signature.

1CELL_BY_CELL = cell_by_cell
1FULL_COLUMN = full_column
1class data_designer.config.column_configs.SamplerColumnConfig(
2 /,
3 **data: typing.Any
4)

Bases: data_designer.config.base.SingleColumnConfig

Configuration for columns generated using built-in samplers.

Sampler columns provide efficient data generation for common data types and distributions. Supported samplers include UUID generation, datetime/timedelta sampling, person generation, category / subcategory sampling, and various statistical distributions (uniform, gaussian, binomial, poisson, scipy).

Parameters:

sampler_type

Type of sampler to use. Available types include: “uuid”, “category”, “subcategory”, “uniform”, “gaussian”, “bernoulli”, “bernoulli_mixture”, “binomial”, “poisson”, “scipy”, “person”, “person_from_faker”, “datetime”, “timedelta”.

params

Parameters specific to the chosen sampler type. Type varies based on the sampler_type (e.g., CategorySamplerParams, UniformSamplerParams, PersonSamplerParams).

conditional_params

Optional dictionary for conditional parameters. The dict keys are the conditions that must be met (e.g., “age > 21”) for the conditional parameters to be used. The values of dict are the parameters to use when the condition is met.

convert_to

Optional type conversion to apply after sampling. For numerical samplers, must be one of “float”, “int”, or “str”. For datetime and timedelta samplers, accepts a strftime format string (e.g., "%Y-%m-%d", "%m/%d/%Y %H:%M"). When omitted, datetime/timedelta columns default to ISO-8601 format (e.g., 2024-01-15T09:30:00).

Inherited Attributes: name (required): Unique name of the column to be generated. drop: If True, generate this column but remove it from the final dataset.

!!! tip “Displaying available samplers and their parameters” The config builder has an info attribute that can be used to display the available samplers and their parameters:

1config_builder.info.display("samplers")

Attributes:

sampler_type
`required`

Type of sampler to use. Available types include: “uuid”, “category”, “subcategory”, “uniform”, “gaussian”, “bernoulli”, “bernoulli_mixture”, “binomial”, “poisson”, “scipy”, “person”, “person_from_faker”, “datetime”, “timedelta”.

params
`required`

Parameters specific to the chosen sampler type. Type varies based on the sampler_type (e.g., CategorySamplerParams, UniformSamplerParams, PersonSamplerParams).

conditional_params

Optional dictionary for conditional parameters. The dict keys are the conditions that must be met (e.g., “age > 21”) for the conditional parameters to be used. The values of dict are the parameters to use when the condition is met.

convert_to

Optional type conversion to apply after sampling. For numerical samplers, must be one of “float”, “int”, or “str”. For datetime and timedelta samplers, accepts a strftime format string (e.g., "%Y-%m-%d", "%m/%d/%Y %H:%M"). When omitted, datetime/timedelta columns default to ISO-8601 format (e.g., 2024-01-15T09:30:00).

Initialization:

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

1sampler_type: data_designer.config.sampler_params.SamplerType = Field(...)
1params: typing.Annotated[data_designer.config.sampler_params.SamplerParamsT, Discriminator('sampler_type')] = Field(...)
1conditional_params: dict[str, typing.Annotated[data_designer.config.sampler_params.SamplerParamsT, Discriminator('sampler_type')]] = Field(...)
1convert_to: str | None = Field(...)
1column_type: typing.Literal[sampler] = sampler
1get_column_emoji() -> str
1required_columns: list[str]
1side_effect_columns: list[str]
1inject_sampler_type_into_params(data: dict) -> dict

Inject sampler_type into params dict to enable discriminated union resolution.

This allows users to pass params as a simple dict without the sampler_type field, which will be automatically added based on the outer sampler_type field.

1class data_designer.config.column_configs.LLMTextColumnConfig(
2 /,
3 **data: typing.Any
4)

Bases: data_designer.config.base.SingleColumnConfig

Configuration for text generation columns using Large Language Models.

LLM text columns generate free-form text content using language models. Prompts support Jinja2 templating to reference values from other columns, enabling context-aware generation. The generated text can optionally include message traces capturing the full conversation history.

Parameters:

prompt

Prompt template for text generation. Supports Jinja2 syntax to reference other columns (e.g., “Write a story about {{ character_name }}”). Must be a valid Jinja2 template.

model_alias

Alias of the model configuration to use for generation. Must match a model alias defined when initializing the DataDesignerConfigBuilder.

system_prompt

Optional system prompt to set model behavior and constraints. Also supports Jinja2 templating. If provided, must be a valid Jinja2 template. Do not put any output parsing instructions in the system prompt. Instead, use the appropriate column type for the output you want to generate - e.g., LLMStructuredColumnConfig for structured output, LLMCodeColumnConfig for code.

multi_modal_context

Optional list of image contexts for multi-modal generation. Enables vision-capable models to generate text based on image inputs.

tool_alias

Optional alias of the tool configuration to use for MCP tool calls. Must match a tool alias defined when initializing the DataDesignerConfigBuilder. When provided, the model may call permitted tools during generation.

with_trace

Specifies what trace information to capture in a \{column_name\}__trace column. Options are:

  • TraceType.NONE (default): No trace is captured.
  • TraceType.LAST_MESSAGE: Only the final assistant message is captured.
  • TraceType.ALL_MESSAGES: Full conversation history (system/user/assistant/tool).
extract_reasoning_content

If True, creates a \{column_name\}__reasoning_content column containing only the reasoning_content from the final assistant response. This is useful for models that expose chain-of-thought reasoning separately from the main response. Defaults to False.

Inherited Attributes: name (required): Unique name of the column to be generated. drop: If True, generate this column but remove it from the final dataset. Attributes:

prompt
`required`

Prompt template for text generation. Supports Jinja2 syntax to reference other columns (e.g., “Write a story about {{ character_name }}”). Must be a valid Jinja2 template.

model_alias
`required`

Alias of the model configuration to use for generation. Must match a model alias defined when initializing the DataDesignerConfigBuilder.

system_prompt

Optional system prompt to set model behavior and constraints. Also supports Jinja2 templating. If provided, must be a valid Jinja2 template. Do not put any output parsing instructions in the system prompt. Instead, use the appropriate column type for the output you want to generate - e.g., LLMStructuredColumnConfig for structured output, LLMCodeColumnConfig for code.

multi_modal_context

Optional list of image contexts for multi-modal generation. Enables vision-capable models to generate text based on image inputs.

tool_alias

Optional alias of the tool configuration to use for MCP tool calls. Must match a tool alias defined when initializing the DataDesignerConfigBuilder. When provided, the model may call permitted tools during generation.

with_trace

Specifies what trace information to capture in a \{column_name\}__trace column. Options are:

  • TraceType.NONE (default): No trace is captured.
  • TraceType.LAST_MESSAGE: Only the final assistant message is captured.
  • TraceType.ALL_MESSAGES: Full conversation history (system/user/assistant/tool).
extract_reasoning_content

If True, creates a \{column_name\}__reasoning_content column containing only the reasoning_content from the final assistant response. This is useful for models that expose chain-of-thought reasoning separately from the main response. Defaults to False.

Initialization:

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

1prompt: str = Field(...)
1model_alias: str = Field(...)
1system_prompt: str | None = Field(...)
1multi_modal_context: list[data_designer.config.models.ImageContext] | None = Field(...)
1tool_alias: str | None = Field(...)
1with_trace: data_designer.config.utils.trace_type.TraceType = Field(...)
1extract_reasoning_content: bool = Field(...)
1column_type: typing.Literal[llm-text] = llm-text
1get_column_emoji() -> str
1required_columns: list[str]

Get columns referenced in prompt templates and multi-modal context.

Returns:

Any

List of unique column names referenced in Jinja2 templates and multi-modal context configurations.

1side_effect_columns: list[str]

Returns side-effect columns that may be generated alongside the main column.

Side-effect columns include:

  • {name}__trace: Generated when with_trace is not TraceType.NONE on the column config.
  • {name}__reasoning_content: Generated when extract_reasoning_content=True.

Returns:

Any

List of side-effect column names.

1assert_prompt_valid_jinja() -> typing_extensions.Self

Validate that prompt and system_prompt are valid Jinja2 templates.

Returns:

typing_extensions.Self

The validated instance.

Raises:

InvalidConfigError

If prompt or system_prompt contains invalid Jinja2 syntax.

1class data_designer.config.column_configs.LLMCodeColumnConfig(
2 /,
3 **data: typing.Any
4)

Bases: data_designer.config.column_configs.LLMTextColumnConfig

Configuration for code generation columns using Large Language Models.

Extends LLMTextColumnConfig to generate code snippets in specific programming languages or SQL dialects. The generated code is automatically extracted from markdown code blocks for the specified language. Inherits all prompt templating capabilities from LLMTextColumnConfig.

Parameters:

code_lang

Programming language or SQL dialect for code generation. Supported values include: “python”, “javascript”, “typescript”, “java”, “kotlin”, “go”, “rust”, “ruby”, “scala”, “swift”, “sql:sqlite”, “sql:postgres”, “sql:mysql”, “sql:tsql”, “sql:bigquery”, “sql:ansi”. See CodeLang enum for complete list.

Inherited Attributes: name (required): Unique name of the column to be generated. prompt (required): Prompt template for code generation (supports Jinja2). model_alias (required): Alias of the model configuration to use. system_prompt: Optional system prompt (supports Jinja2). multi_modal_context: Optional image contexts for multi-modal generation. tool_alias: Optional tool configuration alias for MCP tool calls. with_trace: Specifies what trace information to capture in a {column_name}__trace column. Options are TraceType.NONE (default), TraceType.LAST_MESSAGE, or TraceType.ALL_MESSAGES. extract_reasoning_content: If True, creates a {column_name}__reasoning_content column containing the reasoning content from the final assistant response. drop: If True, generate this column but remove it from the final dataset. Attributes:

code_lang
`required`

Programming language or SQL dialect for code generation. Supported values include: “python”, “javascript”, “typescript”, “java”, “kotlin”, “go”, “rust”, “ruby”, “scala”, “swift”, “sql:sqlite”, “sql:postgres”, “sql:mysql”, “sql:tsql”, “sql:bigquery”, “sql:ansi”. See CodeLang enum for complete list.

Initialization:

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

1code_lang: data_designer.config.utils.code_lang.CodeLang = Field(...)
1column_type: typing.Literal[llm-code] = llm-code
1get_column_emoji() -> str
1class data_designer.config.column_configs.LLMStructuredColumnConfig(
2 /,
3 **data: typing.Any
4)

Bases: data_designer.config.column_configs.LLMTextColumnConfig

Configuration for structured JSON generation columns using Large Language Models.

Extends LLMTextColumnConfig to generate structured data conforming to a specified schema. Uses JSON schema or Pydantic models to define the expected output structure, enabling type-safe and validated structured output generation. Inherits prompt templating capabilities from LLMTextColumnConfig.

Parameters:

output_format

The schema defining the expected output structure. Can be either:

  • A Pydantic BaseModel class (recommended)
  • A JSON schema dictionary

Inherited Attributes: name (required): Unique name of the column to be generated. prompt (required): Prompt template for structured generation (supports Jinja2). model_alias (required): Alias of the model configuration to use. system_prompt: Optional system prompt (supports Jinja2). multi_modal_context: Optional image contexts for multi-modal generation. tool_alias: Optional tool configuration alias for MCP tool calls. with_trace: Specifies what trace information to capture in a {column_name}__trace column. Options are TraceType.NONE (default), TraceType.LAST_MESSAGE, or TraceType.ALL_MESSAGES. extract_reasoning_content: If True, creates a {column_name}__reasoning_content column containing the reasoning content from the final assistant response. drop: If True, generate this column but remove it from the final dataset. Attributes:

output_format
`required`

The schema defining the expected output structure. Can be either:

  • A Pydantic BaseModel class (recommended)
  • A JSON schema dictionary

Initialization:

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

1output_format: dict | type[pydantic.BaseModel] = Field(...)
1column_type: typing.Literal[llm-structured] = llm-structured
1get_column_emoji() -> str
1validate_output_format() -> typing_extensions.Self

Convert Pydantic model to JSON schema if needed.

Returns:

typing_extensions.Self

The validated instance with output_format as a JSON schema dict.

1class data_designer.config.column_configs.Score(
2 /,
3 **data: typing.Any
4)

Bases: data_designer.config.base.ConfigBase

Configuration for a “score” in an LLM judge evaluation.

Defines a single scoring criterion with its possible values and descriptions. Multiple Score objects can be combined in an LLMJudgeColumnConfig to create multi-dimensional quality assessments.

Parameters:

name

A clear, concise name for this scoring dimension (e.g., “Relevance”, “Fluency”).

description

An informative and detailed assessment guide explaining how to evaluate this dimension. Should provide clear criteria for scoring.

options

Dictionary mapping score values to their descriptions. Keys can be integers (e.g., 1-5 scale) or strings (e.g., “Poor”, “Good”, “Excellent”). Values are descriptions explaining what each score level means.

Attributes:

name
`required`

A clear, concise name for this scoring dimension (e.g., “Relevance”, “Fluency”).

description
`required`

An informative and detailed assessment guide explaining how to evaluate this dimension. Should provide clear criteria for scoring.

options
`required`

Dictionary mapping score values to their descriptions. Keys can be integers (e.g., 1-5 scale) or strings (e.g., “Poor”, “Good”, “Excellent”). Values are descriptions explaining what each score level means.

Initialization:

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

1name: str = Field(...)
1description: str = Field(...)
1options: dict[int | str, str] = Field(...)
1class data_designer.config.column_configs.LLMJudgeColumnConfig(
2 /,
3 **data: typing.Any
4)

Bases: data_designer.config.column_configs.LLMTextColumnConfig

Configuration for LLM-as-a-judge quality assessment and scoring columns.

Extends LLMTextColumnConfig to create judge columns that evaluate and score other generated content based on the defined criteria. Useful for quality assessment, preference ranking, and multi-dimensional evaluation of generated data. Inherits prompt templating capabilities from LLMTextColumnConfig.

Parameters:

scores

List of Score objects defining the evaluation dimensions. Each score represents a different aspect to evaluate (e.g., accuracy, relevance, fluency). Must contain at least one score.

Inherited Attributes: name (required): Unique name of the column to be generated. prompt (required): Prompt template for the judge evaluation (supports Jinja2). model_alias (required): Alias of the model configuration to use. system_prompt: Optional system prompt (supports Jinja2). multi_modal_context: Optional image contexts for multi-modal generation. tool_alias: Optional tool configuration alias for MCP tool calls. with_trace: Specifies what trace information to capture in a {column_name}__trace column. Options are TraceType.NONE (default), TraceType.LAST_MESSAGE, or TraceType.ALL_MESSAGES. extract_reasoning_content: If True, creates a {column_name}__reasoning_content column containing the reasoning content from the final assistant response. drop: If True, generate this column but remove it from the final dataset. Attributes:

scores
`required`

List of Score objects defining the evaluation dimensions. Each score represents a different aspect to evaluate (e.g., accuracy, relevance, fluency). Must contain at least one score.

Initialization:

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

1scores: list[data_designer.config.column_configs.Score] = Field(...)
1column_type: typing.Literal[llm-judge] = llm-judge
1get_column_emoji() -> str
1class data_designer.config.column_configs.ExpressionColumnConfig(
2 /,
3 **data: typing.Any
4)

Bases: data_designer.config.base.SingleColumnConfig

Configuration for derived columns using Jinja2 expressions.

Expression columns compute values by evaluating Jinja2 templates that reference other columns. Useful for transformations, concatenations, conditional logic, and derived features without requiring LLM generation. The expression is evaluated row-by-row.

Parameters:

expr

Jinja2 expression to evaluate. Can reference other column values using {{ column_name }} syntax. Supports filters, conditionals, and arithmetic. Must be a valid, non-empty Jinja2 template.

dtype

Data type to cast the result to. Must be one of “int”, “float”, “str”, or “bool”. Defaults to “str”. Type conversion is applied after expression evaluation.

Inherited Attributes: name (required): Unique name of the column to be generated. drop: If True, generate this column but remove it from the final dataset. Attributes:

expr
`required`

Jinja2 expression to evaluate. Can reference other column values using {{ column_name }} syntax. Supports filters, conditionals, and arithmetic. Must be a valid, non-empty Jinja2 template.

dtype

Data type to cast the result to. Must be one of “int”, “float”, “str”, or “bool”. Defaults to “str”. Type conversion is applied after expression evaluation.

Initialization:

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

1expr: str = Field(...)
1dtype: typing.Literal[int, float, str, bool] = Field(...)
1column_type: typing.Literal[expression] = expression
1get_column_emoji() -> str
1required_columns: list[str]

Returns the columns referenced in the expression template.

1side_effect_columns: list[str]
1_DTYPE_COERCERS: dict[str, type]
1_assert_expression_valid_jinja() -> typing_extensions.Self

Validate that the expression is a valid, non-empty Jinja2 template.

Returns:

typing_extensions.Self

The validated instance.

Raises:

InvalidConfigError

If expression is empty or contains invalid Jinja2 syntax.

1_coerce_skip_value_to_dtype() -> typing_extensions.Self

Coerce skip.value to match dtype so skipped and computed rows share a type.

1class data_designer.config.column_configs.ValidationColumnConfig(
2 /,
3 **data: typing.Any
4)

Bases: data_designer.config.base.SingleColumnConfig

Configuration for validation columns that validate existing columns.

Validation columns execute validation logic against specified target columns and return structured results indicating pass/fail status with validation details. Supports multiple validation strategies: code execution (Python/SQL), local callable functions (library only), and remote HTTP endpoints.

Parameters:

target_columns

List of column names to validate. These columns are passed to the validator for validation. All target columns must exist in the dataset before validation runs.

validator_type

The type of validator to use. Options:

  • “code”: Execute code (Python or SQL) for validation. The code receives a DataFrame with target columns and must return a DataFrame with validation results.
  • “local_callable”: Call a local Python function with the data. Only supported when running DataDesigner locally.
  • “remote”: Send data to a remote HTTP endpoint for validation.
validator_params

Parameters specific to the validator type. Type varies by validator:

  • CodeValidatorParams: Specifies code language (python or SQL dialect like “sql:postgres”, “sql:mysql”).
  • LocalCallableValidatorParams: Provides validation function (Callable[[pd.DataFrame], pd.DataFrame]) and optional output schema for validation results.
  • RemoteValidatorParams: Configures endpoint URL, HTTP timeout, retry behavior (max_retries, retry_backoff), and parallel request limits (max_parallel_requests).
batch_size

Number of records to process in each validation batch. Defaults to 10. Larger batches are more efficient but use more memory. Adjust based on validator complexity and available resources.

Inherited Attributes: name (required): Unique name of the column to be generated. drop: If True, generate this column but remove it from the final dataset. Attributes:

target_columns
`required`

List of column names to validate. These columns are passed to the validator for validation. All target columns must exist in the dataset before validation runs.

validator_type
`required`

The type of validator to use. Options:

  • “code”: Execute code (Python or SQL) for validation. The code receives a DataFrame with target columns and must return a DataFrame with validation results.
  • “local_callable”: Call a local Python function with the data. Only supported when running DataDesigner locally.
  • “remote”: Send data to a remote HTTP endpoint for validation.
validator_params
`required`

Parameters specific to the validator type. Type varies by validator:

  • CodeValidatorParams: Specifies code language (python or SQL dialect like “sql:postgres”, “sql:mysql”).
  • LocalCallableValidatorParams: Provides validation function (Callable[[pd.DataFrame], pd.DataFrame]) and optional output schema for validation results.
  • RemoteValidatorParams: Configures endpoint URL, HTTP timeout, retry behavior (max_retries, retry_backoff), and parallel request limits (max_parallel_requests).
batch_size

Number of records to process in each validation batch. Defaults to 10. Larger batches are more efficient but use more memory. Adjust based on validator complexity and available resources.

Initialization:

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

1target_columns: list[str] = Field(...)
1validator_type: data_designer.config.validator_params.ValidatorType = Field(...)
1validator_params: typing.Annotated[data_designer.config.validator_params.ValidatorParamsT, Discriminator('validator_type')] = Field(...)
1batch_size: int = Field(...)
1column_type: typing.Literal[validation] = validation
1get_column_emoji() -> str
1required_columns: list[str]

Returns the columns that need to be validated.

1side_effect_columns: list[str]
1inject_validator_type_into_params(data: dict) -> dict

Inject validator_type into validator_params for discriminated union resolution.

1class data_designer.config.column_configs.SeedDatasetColumnConfig(
2 /,
3 **data: typing.Any
4)

Bases: data_designer.config.base.SingleColumnConfig

Configuration for columns sourced from seed datasets.

This config marks columns that come from seed data. It is typically created automatically when calling with_seed_dataset() on the builder, rather than being instantiated directly by users.

Inherited Attributes: name (required): Unique name of the column to be generated. drop: If True, generate this column but remove it from the final dataset.

Initialization:

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

1column_type: typing.Literal[seed-dataset] = seed-dataset
1get_column_emoji() -> str
1required_columns: list[str]
1side_effect_columns: list[str]
1class data_designer.config.column_configs.EmbeddingColumnConfig(
2 /,
3 **data: typing.Any
4)

Bases: data_designer.config.base.SingleColumnConfig

Configuration for embedding generation columns.

Embedding columns generate embeddings for text input using a specified model.

Parameters:

target_column

The column to generate embeddings for. The column could be a single text string or a list of text strings in stringified JSON format. If it is a list of text strings in stringified JSON format, the embeddings will be generated for each text string.

model_alias

The model to use for embedding generation.

Inherited Attributes: name (required): Unique name of the column to be generated. drop: If True, generate this column but remove it from the final dataset. Attributes:

target_column
`required`

The column to generate embeddings for. The column could be a single text string or a list of text strings in stringified JSON format. If it is a list of text strings in stringified JSON format, the embeddings will be generated for each text string.

model_alias
`required`

The model to use for embedding generation.

Initialization:

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

1target_column: str = Field(...)
1model_alias: str = Field(...)
1column_type: typing.Literal[embedding] = embedding
1get_column_emoji() -> str
1required_columns: list[str]
1side_effect_columns: list[str]
1class data_designer.config.column_configs.ImageColumnConfig(
2 /,
3 **data: typing.Any
4)

Bases: data_designer.config.base.SingleColumnConfig

Configuration for image generation columns.

Image columns generate images using either autoregressive or diffusion models. The API used is automatically determined based on the model name:

Parameters:

prompt

Prompt template for image generation. Supports Jinja2 templating to reference other columns (e.g., “Generate an image of a {{ character_name }}”). Must be a valid Jinja2 template.

model_alias

The model to use for image generation.

multi_modal_context

Optional list of image contexts for multi-modal generation. Enables autoregressive multi-modal models to generate images based on image inputs. Only works with autoregressive models that support image-to-image generation.

Inherited Attributes: name (required): Unique name of the column to be generated. drop: If True, generate this column but remove it from the final dataset. Attributes:

prompt
`required`

Prompt template for image generation. Supports Jinja2 templating to reference other columns (e.g., “Generate an image of a {{ character_name }}”). Must be a valid Jinja2 template.

model_alias
`required`

The model to use for image generation.

multi_modal_context

Optional list of image contexts for multi-modal generation. Enables autoregressive multi-modal models to generate images based on image inputs. Only works with autoregressive models that support image-to-image generation.

Initialization:

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

1prompt: str = Field(...)
1model_alias: str = Field(...)
1multi_modal_context: list[data_designer.config.models.ImageContext] | None = Field(...)
1column_type: typing.Literal[image] = image
1get_column_emoji() -> str
1required_columns: list[str]

Get columns referenced in the prompt template and multi-modal context.

Returns:

Any

List of unique column names referenced in Jinja2 templates and multi-modal context configurations.

1assert_prompt_valid_jinja() -> typing_extensions.Self

Validate that prompt is a valid Jinja2 template.

Returns:

typing_extensions.Self

The validated instance.

Raises:

InvalidConfigError

If prompt contains invalid Jinja2 syntax.

1side_effect_columns: list[str]
1class data_designer.config.column_configs.CustomColumnConfig(
2 /,
3 **data: typing.Any
4)

Bases: data_designer.config.base.SingleColumnConfig

Configuration for custom user-defined column generators.

Custom columns allow users to provide their own generation logic via a callable function decorated with @custom_column_generator. Two strategies are supported: cell_by_cell (default, row-based) and full_column (batch-based with DataFrame access).

Parameters:

generator_function

A callable decorated with @custom_column_generator.

generation_strategy

“cell_by_cell” (row-based) or “full_column” (batch-based).

generator_params

Optional typed configuration object (Pydantic BaseModel) passed as the second argument to the generator function.

Inherited Attributes: name (required): Unique name of the column to be generated. drop: If True, generate this column but remove it from the final dataset. Attributes:

generator_function
`required`

A callable decorated with @custom_column_generator.

generation_strategy

“cell_by_cell” (row-based) or “full_column” (batch-based).

generator_params

Optional typed configuration object (Pydantic BaseModel) passed as the second argument to the generator function.

Initialization:

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

1generator_function: typing.Any = Field(...)
1generation_strategy: data_designer.config.column_configs.GenerationStrategy = Field(...)
1generator_params: pydantic.BaseModel | None = Field(...)
1column_type: typing.Literal[custom] = custom
1_validate_generator_function(v: typing.Any) -> typing.Any
1get_column_emoji() -> str
1required_columns: list[str]

Returns the columns required for custom generation (from decorator metadata).

1side_effect_columns: list[str]

Returns additional columns created by this generator (from decorator metadata).

1model_aliases: list[str]

Returns model aliases for LLM access and health checks (from decorator metadata).

1get_model_aliases() -> list[str]

Returns the decorator-declared aliases so the startup health check pings every endpoint.

1serialize_generator_function(v: typing.Any) -> str
1serialize_generator_params(v: pydantic.BaseModel | None) -> dict[str, typing.Any] | None
1validate_generator_function() -> typing_extensions.Self