Skip to main content

PromptCraft: A Prompt Perturbation Toolkit for Prompt Robustness Analysis

Project description

PromptCraft

A Prompt Perturbation Toolkit for Prompt Robustness Analysis

Code License License Python 3.9+

Table of Contents

Installation

pip install promptcraft

Character Editing

from promptcraft import CharacterPerturb

sentence = "Natalia sold clips to 48 of her friends in April, and then she sold half as many clips in May."
level = 0.25  # Number of characters that will be edited
character_tool = CharacterPerturb(sentence=sentence, level=level)

Character Replacement

char_replace = character_tool.character_replacement()

Character Deletion

char_delete = character_tool.character_deletion()

Character Insertion

char_insert = character_tool.character_insertion()

Character Swap

char_swap = character_tool.character_swap()

Keyboard Typos

char_keyboard = character_tool.keyboard_typos()

Optical Character Recognition

char_ocr = character_tool.optical_character_recognition()

Word Manipulation

from promptcraft import WordPerturb

sentence = "Natalia sold clips to 48 of her friends in April, and then she sold half as many clips in May."
level = 0.25  # Number of words that will be manipulated
word_tool = WordPerturb(sentence=sentence, level=level)

Synonym Replacement

word_synonym = word_tool.synonym_replacement()

Word Insertion

word_insert = word_tool.word_insertion()

Word Swap

word_swap = word_tool.word_swap()

Word Deletion

word_delete = word_tool.word_deletion()

Insert Punctuation

word_punctuation = word_tool.insert_punctuation()

Word Split

word_split = word_tool.word_split()

Sentence Paraphrasing

from promptcraft import SentencePerturb

sentence = "Natalia sold clips to 48 of her friends in April, and then she sold half as many clips in May."
sentence_tool = SentencePerturb(sentence=sentence)

Back Translation by Hugging Face

back_trans_hf = sentence_tool.back_translation_hugging_face()

Back Translation by Google Translator

back_trans_google = sentence_tool.back_translation_google()

Paraphrasing

sen_paraphrase = sentence_tool.paraphrase()

Formal Style

sen_formal = sentence_tool.formal()

Casual Style

sen_casual = sentence_tool.casual()

Passive Style

sen_passive = sentence_tool.passive()

Active Style

sen_active = sentence_tool.active()

Structure of the code

At the root of the project, you will see:

.
├── LICENSE
├── README.md
├── __init__.py
├── character.py
├── parrot.py
├── sentence.py
├── setup.py
├── styleformer.py
└── word.py

Acknowledgement

This work was finished during my 2023 fall semester research rotation at the Dependable Computing Laboratory, Department of Electrical and Computer Engineering, Boston University, under the supervision of Prof. Wenchao Li.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

promptcraft-0.1.5.tar.gz (14.3 kB view details)

Uploaded Source

Built Distribution

promptcraft-0.1.5-py3-none-any.whl (14.9 kB view details)

Uploaded Python 3

File details

Details for the file promptcraft-0.1.5.tar.gz.

File metadata

  • Download URL: promptcraft-0.1.5.tar.gz
  • Upload date:
  • Size: 14.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.10.9

File hashes

Hashes for promptcraft-0.1.5.tar.gz
Algorithm Hash digest
SHA256 5c361c055a48f4c9e7046c63e4fc9fffa5dd58cd836e507a0b6505e2044c488a
MD5 5c96d63fb5ec7074d524453eb93f505a
BLAKE2b-256 10c9a0a61d8801a27fdf43b3f1aae3f0f0fc9ddaf4f205c2a41020de04731e96

See more details on using hashes here.

File details

Details for the file promptcraft-0.1.5-py3-none-any.whl.

File metadata

  • Download URL: promptcraft-0.1.5-py3-none-any.whl
  • Upload date:
  • Size: 14.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.10.9

File hashes

Hashes for promptcraft-0.1.5-py3-none-any.whl
Algorithm Hash digest
SHA256 18c706a0f8b4846e67de64bf11eb5e33e0417ec6de10dd4ea870b8b1fe438fe8
MD5 82fe8b9e9ff06f4871541b42da8a88e9
BLAKE2b-256 992b95b3014c04e0495524a1d5bc5e0ca3973ab11a69003d66f8097463d75c82

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page