panda_guard package
Subpackages
- panda_guard.cli package
- Submodules
- panda_guard.cli.attack module
- panda_guard.cli.chat module
- panda_guard.cli.eval module
- panda_guard.cli.inference module
- panda_guard.cli.main module
- panda_guard.cli.serve module
ChatCompletionRequestChatCompletionRequest.frequency_penaltyChatCompletionRequest.max_tokensChatCompletionRequest.messagesChatCompletionRequest.modelChatCompletionRequest.model_configChatCompletionRequest.nChatCompletionRequest.presence_penaltyChatCompletionRequest.streamChatCompletionRequest.temperatureChatCompletionRequest.top_pChatCompletionRequest.user
ChatCompletionResponseChoiceModelDataModelsResponseapply_env_vars_to_config()create_fastapi_app()get_package_config_path()load_yaml()start()
- Module contents
- panda_guard.llms package
- Submodules
- panda_guard.llms.base module
- panda_guard.llms.claude module
- panda_guard.llms.gemini module
- panda_guard.llms.hf module
- panda_guard.llms.oai module
- panda_guard.llms.ollama_llm module
- panda_guard.llms.sglang_llm module
- panda_guard.llms.vllm_llm module
- Module contents
- panda_guard.pipelines package
- panda_guard.role package
- Subpackages
- panda_guard.role.attacks package
- Subpackages
- Submodules
- panda_guard.role.attacks.art_prompt module
- panda_guard.role.attacks.base module
- panda_guard.role.attacks.deepinception module
- panda_guard.role.attacks.gcg module
- panda_guard.role.attacks.gpt4_cipher module
- panda_guard.role.attacks.ica module
- panda_guard.role.attacks.overload module
- panda_guard.role.attacks.pair module
- panda_guard.role.attacks.random_search module
- panda_guard.role.attacks.rewrite module
- panda_guard.role.attacks.scav module
- panda_guard.role.attacks.tap module
- panda_guard.role.attacks.transfer module
- Module contents
- panda_guard.role.defenses package
- Subpackages
- Submodules
- panda_guard.role.defenses.back_translate module
- panda_guard.role.defenses.base module
- panda_guard.role.defenses.goal_priority module
- panda_guard.role.defenses.gradsafe module
- panda_guard.role.defenses.icl module
- panda_guard.role.defenses.paraphrase module
- panda_guard.role.defenses.perplexity_filter module
- panda_guard.role.defenses.repe module
- panda_guard.role.defenses.rewrite module
- panda_guard.role.defenses.rpo module
- panda_guard.role.defenses.self_defense module
- panda_guard.role.defenses.semantic_smoothllm module
- panda_guard.role.defenses.smoothllm module
- Module contents
- panda_guard.role.judges package
- panda_guard.role.attacks package
- Module contents
- Subpackages
Submodules
panda_guard.utils module
- class panda_guard.utils.ComponentRegistry(component_type: str, base_class: Type[T], entry_point_group: str)[source]
Bases:
Generic[T]A registry for discovering, loading, and instantiating components via entry points.
- Parameters:
component_type – The type name of the component.
base_class – The expected base class or interface that all registered components should inherit from.
entry_point_group – The name of the entry point group to search for available components.
- panda_guard.utils.get_gpu_memory_usage(device: str) Tuple[int, int, int][source]
Get the total, used, and free GPU memory for a specified device.
- Parameters:
device – The GPU device identifier (e.g., “cuda:0”).
- Returns:
A tuple containing the total, used, and free memory in MB.
- panda_guard.utils.is_assistant_turn(messages: List[Dict[str, str]]) bool[source]
Check if it’s the assistant’s turn based on the last message.
- Parameters:
messages – List of message dictionaries containing “role” and “content”.
- Returns:
True if the last message is from the assistant, False otherwise.
- panda_guard.utils.is_user_turn(messages: List[Dict[str, str]]) bool[source]
Check if it’s the user’s turn based on the last message.
- Parameters:
messages – List of message dictionaries containing “role” and “content”.
- Returns:
True if the last message is from the user, False otherwise.
- panda_guard.utils.load_class(config_cls_name: str, role_type: str) Any[source]
Dynamically load a class based on its name.
- Parameters:
config_cls_name – The name of the class to load.
role_type – The type of role (e.g., “attacker”, “defender”, “judge”).
- Returns:
The class object corresponding to the given name.
- panda_guard.utils.parse_configs_from_dict(config_dict: Dict[str, Any], return_dict: bool = False)[source]
Convert a dictionary into configuration objects for the pipeline.
- Parameters:
config_dict – Dictionary containing configurations for attacker, defender, and judges.
- Returns:
A tuple containing the attacker configuration, defender configuration, and list of judge configurations.
- panda_guard.utils.parse_nested_config(config_cls, config_dict: Dict[str, Any])[source]
Parse nested configuration dictionaries into objects.
- Parameters:
config_cls – The class of the configuration.
config_dict – Dictionary containing configuration data.
- Returns:
An instance of the configuration class.
- panda_guard.utils.process_end_eos(msg: str, eos_token: str)[source]
Processes the end of a message by removing any trailing newline characters or EOS (End of Sequence) tokens.
This function ensures that the message doesn’t end with unwanted newline or EOS tokens, which might interfere with further processing or analysis.
- Parameters:
msg – The input message string that needs to be processed.
eos_token – The EOS (End of Sequence) token to be removed, if it exists at the end of the message.
- Returns:
The processed message with trailing newline and EOS token removed, if any.
- panda_guard.utils.wait_for_gpu_memory(device: str, threshold: float = 0.8, check_interval: int = 5)[source]
Wait until the specified GPU has sufficient free memory.
- Parameters:
device – The GPU device identifier (e.g., “cuda:0”).
threshold – The threshold of free memory ratio to proceed (e.g., 0.8 means 80% free).
check_interval – Time interval (in seconds) between checks.