from __future__ import annotations
# Naming convention for recipe entry points (function names == dict keys):
#
# {method}[_{variant}][_{task}][__{paperYYYY}]
#
# The trailing `__{paperYYYY}` ("reproduction tag") is reserved for recipes that
# precisely reproduce a published method's algorithm and hyperparameters as
# stated in the paper. Setting-ports (e.g. CLIP→LM) are allowed when the paper's
# algorithm transfers cleanly. Recipes that deviate from the paper's algorithm,
# or that introduce knobs not in the paper, MUST NOT carry the reproduction tag.
#
# See docs/guides/adding_a_recipe.md for details.
from .AdvDecoding__zhang2024 import (
advdecoding_jailbreak__zhang2024,
advdecoding_retrieval__zhang2024,
)
from .ARCA__jones2023 import arca__jones2023
from .ARCAToxicReverse import arca_toxic_reverse
from .AutoPrompt__shin2020 import autoprompt__shin2020
from .BEAST__sadasivan2024 import beast__sadasivan2024
from .FLRT__thompson2024 import flrt_distill
from .GASLITE__bentov2024 import (
gaslite__bentov2024,
gasliteplus_encoder,
gasliteplus_llm,
)
from .GBDA__guo2021 import gbda__guo2021
from .GCG__zou2023 import (
classifier_gcg,
gcg__zou2023,
gcg_emb,
gcg_perplexity,
)
from .GCGHij import attn_gcg__wang2024, gcg_hij__bentov2025
from .GCGMult__zou2023 import gcg_mult__zou2023
from .HotFlip__ebrahimi2018 import hotflip__ebrahimi2018
from .IRIS__huang2025 import iris__huang2025, iris2
from .MAC__wang2024 import mac__wang2024
from .PAL__sitawarin2024 import (
gcgp_pal__sitawarin2024,
pal__sitawarin2024,
ral__sitawarin2024,
)
from .PEZ__wen2023 import pez__wen2023
from .PromptRecovery__wen2023 import (
evaluate_prompt_recovery,
generate_image_from_prompt,
get_image_embedding_for_clip_model,
prompt_recovery__wen2023,
)
from .PRS__andriushchenko2024 import prs__andriushchenko2024, rs_emb
from .QCG__hayase2024 import (
gcgp_blackbox__hayase2024,
gcgp_whitebox__hayase2024,
qcg__hayase2024,
)
from .RASLITEPlus import rasliteplus, rasliteplus_llm
from .SoftPrompt__schwinn2024 import soft_prompt__schwinn2024, soft_prompt_encoder
from .UAT import uat_classifier, uat_prompt_injection
from .utils import generate_from_model
# Naming: paper reproductions are written with first (with `__paperYYYY` tag), then variants/extensions/applications.
RECIPES = {
# HotFlip (Ebrahimi 2018)
"hotflip__ebrahimi2018": hotflip__ebrahimi2018,
# UAT (Wallace 2019)
"uat_classifier": uat_classifier,
"uat_prompt_injection": uat_prompt_injection,
# AutoPrompt (Shin 2020)
"autoprompt__shin2020": autoprompt__shin2020,
# GBDA (Guo 2021)
"gbda__guo2021": gbda__guo2021,
# PEZ (Wen 2023, Williams 2025)
"pez__wen2023": pez__wen2023,
"prompt_recovery__wen2023": prompt_recovery__wen2023,
# ARCA (Jones 2023)
"arca__jones2023": arca__jones2023,
"arca_toxic_reverse": arca_toxic_reverse,
# GCG (Zou 2023)
"gcg__zou2023": gcg__zou2023,
"gcg_mult__zou2023": gcg_mult__zou2023,
"gcg_perplexity": gcg_perplexity,
"gcg_emb": gcg_emb,
"gcg_hij__bentov2025": gcg_hij__bentov2025,
"attn_gcg__wang2024": attn_gcg__wang2024,
"classifier_gcg": classifier_gcg,
# Soft Prompt (Schwinn 2024) — embedding-space
"soft_prompt__schwinn2024": soft_prompt__schwinn2024,
"soft_prompt_encoder": soft_prompt_encoder,
# PAL (Sitawarin 2024)
"pal__sitawarin2024": pal__sitawarin2024,
"ral__sitawarin2024": ral__sitawarin2024,
"gcgp_pal__sitawarin2024": gcgp_pal__sitawarin2024,
# QCG (Hayase 2024)
"qcg__hayase2024": qcg__hayase2024,
"gcgp_whitebox__hayase2024": gcgp_whitebox__hayase2024,
"gcgp_blackbox__hayase2024": gcgp_blackbox__hayase2024,
# BEAST (Sadasivan 2024)
"beast__sadasivan2024": beast__sadasivan2024,
# PRS (Andriushchenko 2024) + black-box random-search variants
"prs__andriushchenko2024": prs__andriushchenko2024,
"rs_emb": rs_emb,
# MAC (Wang 2024)
"mac__wang2024": mac__wang2024,
# FLRT (Thompson & Sklar 2024)
"flrt_distill": flrt_distill,
# AdvDecoding (Zhang 2024)
"advdecoding_jailbreak__zhang2024": advdecoding_jailbreak__zhang2024,
"advdecoding_retrieval__zhang2024": advdecoding_retrieval__zhang2024,
# GASLITE (Ben-Tov 2024) + extensions
"gaslite__bentov2024": gaslite__bentov2024,
"gasliteplus_encoder": gasliteplus_encoder,
"gasliteplus_llm": gasliteplus_llm,
"rasliteplus": rasliteplus,
"rasliteplus_llm": rasliteplus_llm,
# IRIS (Huang 2025)
"iris__huang2025": iris__huang2025,
"iris2": iris2,
}
[docs]
def list_recipes():
return list(RECIPES.keys())