pyrit.prompt_converter.ToxicSentenceGeneratorConverter#

class ToxicSentenceGeneratorConverter(*, converter_target: PromptChatTarget, prompt_template: SeedPrompt | None = None)[source]#

Bases: LLMGenericTextConverter

Generates toxic sentence starters using an LLM.

An existing PromptChatTarget is used to perform the conversion (like Azure OpenAI).

Based on Project Moonshot’s attack module that generates toxic sentences to test LLM safety guardrails: aiverify-foundation/moonshot-data

__init__(*, converter_target: PromptChatTarget, prompt_template: SeedPrompt | None = None)[source]#

Initializes the converter with a specific target and template.

Parameters:
  • converter_target (PromptChatTarget) – The endpoint that converts the prompt.

  • prompt_template (SeedPrompt) – The seed prompt template to use. If not provided, defaults to the toxic_sentence_generator.yaml.

Methods

__init__(*, converter_target[, prompt_template])

Initializes the converter with a specific target and template.

convert_async(*, prompt[, input_type])

Converts the given prompt into a toxic sentence starter.

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

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

get_identifier()

Returns an identifier dictionary for the converter.

input_supported(input_type)

Checks if the input type is supported by the converter.

output_supported(output_type)

Checks if the output type is supported by the converter.

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_async(*, prompt: str, input_type: Literal['text', 'image_path', 'audio_path', 'video_path', 'url', 'reasoning', 'error'] = 'text') ConverterResult[source]#

Converts the given prompt into a toxic sentence starter.

Parameters:
  • prompt (str) – The prompt to be converted.

  • input_type (PromptDataType) – The type of input data.

Returns:

The conversion result containing the toxic sentence starter.

Return type:

ConverterResult

input_supported(input_type: Literal['text', 'image_path', 'audio_path', 'video_path', 'url', 'reasoning', 'error']) bool[source]#

Checks if the input type is supported by the converter.

Parameters:

input_type (PromptDataType) – The input type to check.

Returns:

True if the input type is supported, False otherwise.

Return type:

bool

output_supported(output_type: Literal['text', 'image_path', 'audio_path', 'video_path', 'url', 'reasoning', 'error']) bool[source]#

Checks if the output type is supported by the converter.

Parameters:

output_type (PromptDataType) – The output type to check.

Returns:

True if the output type is supported, False otherwise.

Return type:

bool