Skip to content

pixano_inference.models.llm

LLM (Large Language Model) base class and I/O types (stub).

LLMInput(**data)

Bases: BaseModel

Input for LLM text generation.

Attributes:

Name Type Description
prompt str | list[dict[str, Any]]

Text prompt or chat messages.

max_new_tokens int

Maximum number of new tokens to generate.

temperature float

Sampling temperature.

Source code in pydantic/main.py
def __init__(self, /, **data: Any) -> None:
    """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.
    """
    # `__tracebackhide__` tells pytest and some other tools to omit this function from tracebacks
    __tracebackhide__ = True
    validated_self = self.__pydantic_validator__.validate_python(data, self_instance=self)
    if self is not validated_self:
        warnings.warn(
            'A custom validator is returning a value other than `self`.\n'
            "Returning anything other than `self` from a top level model validator isn't supported when validating via `__init__`.\n"
            'See the `model_validator` docs (https://docs.pydantic.dev/latest/concepts/validators/#model-validators) for more details.',
            stacklevel=2,
        )

LLMModel(config)

Bases: InferenceModel

Base class for large language models (stub).

Source code in pixano_inference/models/base.py
def __init__(self, config: ModelDeploymentConfig) -> None:
    """Initialize the model with deployment config.

    Args:
        config: Model deployment configuration.
    """
    self._config = config

predict(input) abstractmethod

Run text generation.

Parameters:

Name Type Description Default
input LLMInput

LLM input with prompt and generation parameters.

required

Returns:

Type Description
LLMOutput

LLM output with generated text, usage info, and generation config.

Source code in pixano_inference/models/llm.py
@abstractmethod
def predict(self, input: LLMInput) -> LLMOutput:
    """Run text generation.

    Args:
        input: LLM input with prompt and generation parameters.

    Returns:
        LLM output with generated text, usage info, and generation config.
    """

LLMOutput(**data)

Bases: BaseModel

Output for LLM text generation.

Attributes:

Name Type Description
generated_text str

Generated text.

usage UsageInfo

Usage metadata.

generation_config dict[str, Any]

Configuration used for the generation.

Source code in pydantic/main.py
def __init__(self, /, **data: Any) -> None:
    """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.
    """
    # `__tracebackhide__` tells pytest and some other tools to omit this function from tracebacks
    __tracebackhide__ = True
    validated_self = self.__pydantic_validator__.validate_python(data, self_instance=self)
    if self is not validated_self:
        warnings.warn(
            'A custom validator is returning a value other than `self`.\n'
            "Returning anything other than `self` from a top level model validator isn't supported when validating via `__init__`.\n"
            'See the `model_validator` docs (https://docs.pydantic.dev/latest/concepts/validators/#model-validators) for more details.',
            stacklevel=2,
        )