garak
garak._config
This module holds config values.
These are broken into the following major categories:
system: options that don’t affect the security assessment
run: options that describe how a garak run will be conducted
plugins: config for plugins (generators, probes, detectors, buffs)
transient: internal values local to a single garak execution
Config values are loaded in the following priority (lowest-first):
Plugin defaults in the code
Core config: from
garak/resources/garak.core.yaml
; not to be overriddenSite config: from
garak/garak.site.yaml
Runtime config: from an optional config file specified manually, via e.g. CLI parameter
Command-line options
Code
garak global config
- class garak._config.TransientConfig
Bases:
GarakSubConfig
Object to hold transient global config items not set externally
- args = None
- basedir = PosixPath('/home/docs/checkouts/readthedocs.org/user_builds/garak/checkouts/latest/docs/source/../../garak')
- hitlogfile = None
- report_filename = None
- reportfile = None
- run_id = None
- starttime = None
- starttime_iso = None
garak._plugins
This module manages plugin enumeration and loading.
There is one class per plugin in garak.
Enumerating the classes, with e.g. --list_probes
on the command line, means importing each module.
Therefore, modules should do as little as possible on load, and delay
intensive activities (like loading classifiers) until a plugin’s class is instantiated.
Code
Functions for working with garak plugins (enumeration, loading, etc)
- garak._plugins.enumerate_plugins(category: str = 'probes', skip_base_classes=True) List[tuple[str, bool]]
A function for listing all modules & plugins of the specified kind.
garak’s plugins are organised into four packages - probes, detectors, generators and harnesses. Each package contains a base module defining the core plugin classes. The other modules in the package define classes that inherit from the base module’s classes.
enumerate_plugins() works by first looking at the base module in a package and finding the root classes here; it will then go through the other modules in the package and see which classes can be enumerated from these.
- Parameters:
category (str) – the name of the plugin package to be scanned; should be one of probes, detectors, generators, or harnesses.