pyrit.prompt_converter.CharSwapConverter#

class CharSwapConverter(*, max_iterations: int = 10, indices: List[int] | None = None, keywords: List[str] | None = None, proportion: float | None = 0.2, regex: str | Pattern | None = None)[source]#

Bases: WordLevelConverter

Applies character swapping to words in the prompt to test adversarial textual robustness.

__init__(*, max_iterations: int = 10, indices: List[int] | None = None, keywords: List[str] | None = None, proportion: float | None = 0.2, regex: str | Pattern | None = None)[source]#

Initialize the converter. This class allows for selection of words to convert based on various criteria. Only one selection parameter may be provided at a time (indices, keywords, proportion, or regex). By default, proportion is set to 0.2, meaning 20% of randomly selected words will be perturbed.

Parameters:
  • max_iterations (int) – Number of times to generate perturbed prompts. The higher the number the higher the chance that words are different from the original prompt.

  • indices (Optional[List[int]]) – Specific indices of words to convert.

  • keywords (Optional[List[str]]) – Keywords to select words for conversion.

  • proportion (Optional[float]) – Proportion of randomly selected words to convert [0.0-1.0].

  • regex (Optional[Union[str, re.Pattern]]) – Regex pattern to match words for conversion.

Methods

__init__(*[, max_iterations, indices, ...])

Initialize the converter.

convert_async(*, prompt[, input_type])

Converts the given prompts into a different representation

convert_tokens_async(*, prompt[, ...])

Converts substrings within a prompt that are enclosed by specified start and end tokens.

convert_word_async(word)

get_identifier()

input_supported(input_type)

Checks if the input type is supported by the converter

join_words(words)

Provide a way for subclasses to override the default behavior of joining words.

output_supported(output_type)

Checks if the output type is supported by the converter

validate_input(prompt)

Validate the input before processing (can be overridden by subclasses)

Attributes

supported_input_types

Returns a list of supported input types for the converter.

supported_output_types

Returns a list of supported output types for the converter.

async convert_word_async(word: str) str[source]#