Skip to content

Manage Audit Configurations

An AuditConfig selects which garak probes and detectors run during an audit, how many generations to make per probe, and where the reports land. Configurations are persisted in the NeMo Platform entity store and referenced by name from client.auditor.run(...).

What an AuditConfig Holds

A configuration has four sub-blocks plus a free-form description. Each sub-block has sensible defaults, so a minimal configuration only needs a workspace and a name.

Sub-block What it controls
system Garak runtime knobs — verbosity, parallelism, lite mode, experimental flags.
run Per-probe generation count, random seed, evaluation threshold, optional probe_tags filter.
plugins The probes and detectors to run (probe_spec, detector_spec) and any plugin-specific options.
reporting Output file prefix and directory, optional taxonomy, and which modules are surfaced in summaries.

The full field reference is in Configuration Schema.

The Seeded Default

The plugin seeds a default configuration in the system workspace at install time. Retrieve it to see a reasonable starting point:

default_config = client.auditor.configs.get(workspace="system", name="default")
print(default_config.model_dump_json(indent=2))

You can pass "system/default" directly to client.auditor.run(config=..., ...) to run an audit with the seeded configuration without creating your own.

Create a Configuration

Build a configuration by populating any of the four sub-blocks. Omitted sub-blocks fall back to their pydantic defaults.

from nemo_auditor.entities import (
    AuditPluginsData,
    AuditReportData,
    AuditRunData,
    AuditSystemData,
)


config = client.auditor.configs.create(
    workspace="default",
    name="quick-scan",
    description="Lite latentinjection scan, 3 generations per probe.",
    system=AuditSystemData(lite=True, parallel_attempts=4),
    run=AuditRunData(generations=3),
    plugins=AuditPluginsData(probe_spec="latentinjection", detector_spec="auto"),
    reporting=AuditReportData(report_prefix="quick-scan"),
)

The probe_spec field takes a comma-separated list of probe categories or fully-qualified probe classes. See Selecting Probes for the syntax and worked examples.

List Configurations

listing = client.auditor.configs.list(workspace="default")
for entry in listing["data"]:
    print(entry["name"], entry["description"])

list() returns the standard envelope (data, pagination, sort); pass page, page_size, and sort keyword arguments for pagination.

Retrieve a Configuration

config = client.auditor.configs.get(workspace="default", name="quick-scan")

Update a Configuration

update() replaces every sub-block — any sub-block you omit resets to its default. Pass each block you want to keep.

updated = client.auditor.configs.update(
    workspace="default",
    name="quick-scan",
    description="Updated probe selection.",
    system=AuditSystemData(parallel_attempts=8),
    run=AuditRunData(generations=5),
    plugins=AuditPluginsData(probe_spec="latentinjection,encoding.InjectROT13"),
    reporting=AuditReportData(report_prefix="quick-scan"),
)

Delete a Configuration

client.auditor.configs.delete(workspace="default", name="quick-scan")