snowflake.ml.model.InputSpec

class snowflake.ml.model.InputSpec(*, params: Optional[dict[str, Any]] = None, column_handling: Optional[dict[str, ColumnHandlingOptions]] = None)

Bases: BaseModel

Specification for batch inference input options.

Defines optional configuration for processing input data during batch inference.

params

Optional dictionary of model inference parameters (e.g., temperature, top_k for LLMs). These are passed as keyword arguments to the model’s inference method. Defaults to None.

Type:

Optional[dict[str, Any]]

column_handling

Optional dictionary specifying how to handle specific columns during file I/O. Maps column names to their input format and file encoding configuration.

Type:

Optional[dict[str, ColumnHandlingOptions]]

Example

>>> input_spec = InputSpec(
...     params={"temperature": 0.7, "top_k": 50},
...     column_handling={
...         "image_col": {
...             "input_format": InputFormat.FULL_STAGE_PATH,
...             "convert_to": FileEncoding.BASE64
...         }
...     }
... )
Copy

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.

Attributes

model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

model_extra

Get extra fields set during validation.

Returns:

A dictionary of extra fields, or None if config.extra is not set to “allow”.

model_fields: ClassVar[dict[str, FieldInfo]] = {'column_handling': FieldInfo(annotation=Union[dict[str, ColumnHandlingOptions], NoneType], required=False, default=None), 'params': FieldInfo(annotation=Union[dict[str, Any], NoneType], required=False, default=None)}

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].

This replaces Model.__fields__ from Pydantic V1.

model_fields_set

Returns the set of fields that have been explicitly set on this model instance.

Returns:

A set of strings representing the fields that have been set,

i.e. that were not filled from defaults.

params: Optional[dict[str, Any]]
column_handling: Optional[dict[str, ColumnHandlingOptions]]