Skip to content

Inspecting What Was Redacted (Explain)

When you need to know what Philter found and where, use explain(...). It returns the redacted text plus a structured explanation listing each span that was identified.

import ai.philterd.philter.model.ExplainResponse;
import ai.philterd.philter.model.Span;

ExplainResponse response = client.explain("my-context", "default",
        "His name is George Washington and his SSN is 123-45-6789.");

System.out.println("Redacted: " + response.getFilteredText());

for (Span span : response.getExplanation().getAppliedSpans()) {
    System.out.printf("Found %s \"%s\" at [%d, %d) -> replaced with \"%s\" (confidence %.2f)%n",
            span.getFilterType(),
            span.getText(),
            span.getCharacterStart(),
            span.getCharacterEnd(),
            span.getReplacement(),
            span.getConfidence());
}

// Spans that matched but were ignored (e.g. by ignore lists) are available too:
response.getExplanation().getIgnoredSpans().forEach(s ->
        System.out.println("Ignored: " + s.getText()));