Skip to content

Parameter Value API

The ParameterValue class provides a flexible way to define and validate model parameters.

Custom Validation vs Pydantic

While no_llm uses Pydantic for model definitions, parameter validation uses a custom system. This allows parameter configurations to be easily serialized to YAML/JSON and used in any environment, not just Python. The validation rules become part of the configuration data itself, making it portable and platform-independent.

Core Methods

Creation

from no_llm.config.parameters import ParameterValue, ParameterVariant
from no_llm.config.enums import ModelCapability

# Standard creation
param = ParameterValue(
    variant=ParameterVariant.VARIABLE,
    value=0.7,
    validation_rule=RangeValidation(min_value=0.0, max_value=2.0)
)

# Helper for variable parameters
param = ParameterValue.create_variable(
    value=True,
    required_capability=ModelCapability.REASONING
)

Value Access and Validation

# Get value
value = param.get()  # Returns value or 'UNSUPPORTED'

# Validate new value
param.validate_new_value(0.8, "temperature")

# Check capabilities
param.check_capability({ModelCapability.STREAMING})

# Check variant type
param.is_variable()    # True if variable
param.is_fixed()       # True if fixed
param.is_unsupported() # True if unsupported

Validation Rules

# Range validation
RangeValidation(min_value=0.0, max_value=2.0)

# Enum validation
EnumValidation(allowed_values=["low", "medium", "high"])

Parameter Value Behavior

  • Fixed parameters cannot be modified after creation
  • Unsupported parameters always return 'UNSUPPORTED'
  • Variable parameters require validation rule checks