pyrit.models.SeedPrompt#

class SeedPrompt(value: str, value_sha256: Optional[str] = None, data_type: Optional[PromptDataType] = None, id: Optional[uuid.UUID] = <factory>, name: Optional[str] = None, dataset_name: Optional[str] = None, harm_categories: Optional[Sequence[str]] = <factory>, description: Optional[str] = None, authors: Optional[Sequence[str]] = <factory>, groups: Optional[Sequence[str]] = <factory>, source: Optional[str] = None, date_added: Optional[datetime] = <factory>, added_by: Optional[str] = None, metadata: Optional[Dict[str, Union[str, int]]] = <factory>, prompt_group_id: Optional[uuid.UUID] = None, prompt_group_alias: Optional[str] = None, role: Optional[ChatMessageRole] = None, sequence: Optional[int] = 0, parameters: Optional[Sequence[str]] = <factory>)[source]#

Bases: Seed

Represents a seed prompt with various attributes and metadata.

__init__(value: str, value_sha256: Optional[str] = None, data_type: Optional[PromptDataType] = None, id: Optional[uuid.UUID] = <factory>, name: Optional[str] = None, dataset_name: Optional[str] = None, harm_categories: Optional[Sequence[str]] = <factory>, description: Optional[str] = None, authors: Optional[Sequence[str]] = <factory>, groups: Optional[Sequence[str]] = <factory>, source: Optional[str] = None, date_added: Optional[datetime] = <factory>, added_by: Optional[str] = None, metadata: Optional[Dict[str, Union[str, int]]] = <factory>, prompt_group_id: Optional[uuid.UUID] = None, prompt_group_alias: Optional[str] = None, role: Optional[ChatMessageRole] = None, sequence: Optional[int] = 0, parameters: Optional[Sequence[str]] = <factory>) None#

Methods

__init__(value[, value_sha256, data_type, ...])

from_yaml_file(file)

Creates a new object from a YAML file.

from_yaml_with_required_parameters(...[, ...])

Load a Seed from a YAML file and validate that it contains specific parameters.

render_template_value(**kwargs)

Renders self.value as a template, applying provided parameters in kwargs

render_template_value_silent(**kwargs)

Renders self.value as a template, applying provided parameters in kwargs. For parameters in the template

set_encoding_metadata()

This method sets the encoding data for the prompt within metadata dictionary.

set_sha256_value_async()

This method computes the SHA256 hash value asynchronously.

Attributes

added_by

data_type

dataset_name

description

name

prompt_group_alias

prompt_group_id

role

sequence

source

value_sha256

parameters

value

id

harm_categories

authors

groups

date_added

metadata

classmethod from_yaml_with_required_parameters(template_path: str | Path, required_parameters: list[str], error_message: str | None = None) SeedPrompt[source]#

Load a Seed from a YAML file and validate that it contains specific parameters.

Parameters:
  • template_path – Path to the YAML file containing the template.

  • required_parameters – List of parameter names that must exist in the template.

  • error_message – Custom error message if validation fails. If None, a default message is used.

Returns:

The loaded and validated SeedPrompt of the specific subclass type.

Return type:

SeedPrompt

Raises:

ValueError – If the template doesn’t contain all required parameters.

parameters: Sequence[str] | None#
prompt_group_alias: str | None = None#
role: ChatMessageRole | None = None#
sequence: int | None = 0#
set_encoding_metadata()[source]#

This method sets the encoding data for the prompt within metadata dictionary. For images, this is just the file format. For audio and video, this also includes bitrate (kBits/s as int), samplerate (samples/second as int), bitdepth (as int), filesize (bytes as int), and duration (seconds as int) if the file type is supported by TinyTag. Example supported file types include: MP3, MP4, M4A, and WAV.