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.