pyrit.prompt_converter.JsonStringConverter#

class JsonStringConverter[source]#

Bases: PromptConverter

Converts a string to a JSON-safe format using json.dumps().

This converter is useful when a string needs to be embedded within a JSON payload, such as when sending prompts to HTTP targets that expect JSON-formatted requests. The converter properly escapes special characters like quotes, newlines, backslashes, and unicode characters.

The output is the escaped string content without the surrounding quotes that json.dumps() adds, making it ready to be inserted into a JSON string field.

__init__() None#

Initialize the prompt converter.

Methods

__init__()

Initialize the prompt converter.

convert_async(*, prompt[, input_type])

Convert the given prompt to a JSON-safe string.

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

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

get_identifier()

Get the typed identifier for this object.

input_supported(input_type)

Check if the input type is supported by the converter.

output_supported(output_type)

Check if the output type is supported by the converter.

Attributes

SUPPORTED_INPUT_TYPES

Tuple of input modalities supported by this converter.

SUPPORTED_OUTPUT_TYPES

Tuple of output modalities supported by this converter.

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.

SUPPORTED_INPUT_TYPES: tuple[Literal['text', 'image_path', 'audio_path', 'video_path', 'binary_path', 'url', 'reasoning', 'error', 'function_call', 'tool_call', 'function_call_output'], ...] = ('text',)#

Tuple of input modalities supported by this converter. Subclasses must override this.

SUPPORTED_OUTPUT_TYPES: tuple[Literal['text', 'image_path', 'audio_path', 'video_path', 'binary_path', 'url', 'reasoning', 'error', 'function_call', 'tool_call', 'function_call_output'], ...] = ('text',)#

Tuple of output modalities supported by this converter. Subclasses must override this.

async convert_async(*, prompt: str, input_type: Literal['text', 'image_path', 'audio_path', 'video_path', 'binary_path', 'url', 'reasoning', 'error', 'function_call', 'tool_call', 'function_call_output'] = 'text') ConverterResult[source]#

Convert the given prompt to a JSON-safe string.

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

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

Returns:

The result containing the JSON-escaped string.

Return type:

ConverterResult

Raises:

ValueError – If the input type is not supported.