pyrit.prompt_converter.NatoConverter#

class NatoConverter[source]#

Bases: PromptConverter

Converts text into NATO phonetic alphabet representation.

This converter transforms standard text into NATO phonetic alphabet format, where each letter is replaced with its corresponding NATO phonetic code word (e.g., “A” becomes “Alfa”, “B” becomes “Bravo”). Only alphabetic characters are converted; non-alphabetic characters are ignored.

The NATO phonetic alphabet is the most widely used spelling alphabet, designed to improve clarity of voice communication. This converter can be used to test how AI systems handle phonetically encoded text, which can be used to obfuscate potentially harmful content.

Reference: https://en.wikipedia.org/wiki/NATO_phonetic_alphabet

Example

Input: “Hello” Output: “Hotel Echo Lima Lima Oscar”

__init__() None#

Initialize the prompt converter.

Methods

__init__()

Initialize the prompt converter.

convert_async(*, prompt[, input_type])

Convert the given text into NATO phonetic alphabet representation.

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

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

get_identifier()

Return an identifier dictionary for the converter.

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 text into NATO phonetic alphabet representation.

Parameters:
  • prompt (str) – The text to be converted to NATO phonetic alphabet.

  • input_type (PromptDataType, optional) – Type of input data. Defaults to “text”.

Returns:

The text converted to NATO phonetic alphabet format.

Return type:

ConverterResult

Raises:

ValueError – If the input type is not supported (only “text” is supported).