Jump to content

Connect Leeroopedia MCP: Equip your AI agents to search best practices, build plans, verify code, diagnose failures, and look up hyperparameter defaults.

Implementation:Liu00222 Open Prompt Injection Application defense preparation

From Leeroopedia
Knowledge Sources
Domains Prompt_Injection, Security
Last Updated 2026-02-14 15:00 GMT

Overview

Concrete defense initialization method that pre-loads defense resources during Application construction, provided by the Application class.

Description

The Application.__defense_preparation method is called internally by `Application.__init__` to load defense-specific resources. For `response-based` defense, it initializes task-specific evaluation functions (eval_sst2, eval_spam, etc.). For `ppl-*` defense, it loads a Vicuna-7B surrogate model via FastChat and creates a PerplexityFilter with specified window size and threshold. For `retokenization` defense, it loads a BPE subword tokenizer table.

Usage

This method is called automatically during Application creation. Not called directly by users.

Code Reference

Source Location

Signature

class Application:
    def __defense_preparation(self):
        """
        Initialize defense-specific resources based on self.defense string.

        Side effects:
            - 'response-based': Sets self.response_based_filter (dict of eval functions)
            - 'ppl-<window>-<threshold>': Sets self.ppl_filter (PerplexityFilter),
              loads Vicuna-7B surrogate model
            - 'retokenization': Sets self.retokenizer (BpeOnlineTokenizer)
        """

Import

from OpenPromptInjection.apps import Application
# Called automatically during Application.__init__
# app = Application(task, model, defense='ppl-5-3.0')

I/O Contract

Inputs

Name Type Required Description
self.defense str Yes Defense strategy string set in `__init__`
self.task TargetTask Yes Used by response-based defense to determine dataset type

Outputs

Name Type Description
self.response_based_filter dict Task-specific eval functions (for response-based defense)
self.ppl_filter PerplexityFilter Perplexity computation filter (for PPL defense)
self.retokenizer BpeOnlineTokenizer BPE tokenizer (for retokenization defense)

Usage Examples

Implicit Initialization via create_app

import OpenPromptInjection as PI
from OpenPromptInjection.utils import open_config

target_task = PI.create_task(open_config("configs/task_configs/sst2_config.json"), 100)
model = PI.create_model(open_config("configs/model_configs/gpt_config.json"))

# PPL defense: __defense_preparation loads Vicuna-7B and creates PerplexityFilter
app = PI.create_app(target_task, model, defense='ppl-5-3.0')
# app.ppl_filter is now initialized

# Retokenization defense: __defense_preparation loads BPE tokenizer
app = PI.create_app(target_task, model, defense='retokenization')
# app.retokenizer is now initialized

Related Pages

Implements Principle

Requires Environment

Uses Heuristic

Page Connections

Double-click a node to navigate. Hold to expand connections.
Principle
Implementation
Heuristic
Environment