Redact tool: rich UI, multilingual, engine choice, output formats

- Custom inline form (EN/NO/UK/PL lang switcher) replacing generic stub
- Engine selector: Azure gpt-4o-mini (default), gpt-4o, GPU cuttlefish, regex-only
- Entity type toggles: names, organisations, places, dates of birth
- Output formats: contextual role tags, generic [PERSON], Norwegian pseudonyms
- Keep officials mode: judges/experts kept as [JUDGE: Andersen] format
- Exempt names list: specific names excluded from redaction
- Hint paragraphs explaining each option in all four languages
- Backend: engine routing, callGpuLlm(), applyGenericTags(), applyPseudonymization()
- AzureOpenAiGateway: withDeployment() clone pattern for per-call model override

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-05-15 00:20:16 +02:00
parent e3d8daf6ca
commit 8c12d5e778
6 changed files with 789 additions and 40 deletions
+55
View File
@@ -1415,3 +1415,58 @@ p {
}
.control-hint { font-size: 0.74rem; color: var(--muted); font-weight: 400; }
/* ─── Exempt names section (Redact tool) ──────────────────────────────────── */
.exempt-section {
margin-top: 0.75rem;
padding-top: 0.75rem;
border-top: 1px solid var(--line);
}
.exempt-row {
display: flex;
align-items: center;
gap: 0.5rem;
margin-bottom: 0.4rem;
}
.exempt-name-input {
flex: 1;
padding: 0.3rem 0.55rem;
border: 1px solid var(--line);
border-radius: 6px;
font-size: 0.875rem;
background: var(--panel);
color: var(--ink);
min-width: 0;
}
.exempt-name-input:focus {
outline: 3px solid rgba(15, 118, 110, 0.28);
outline-offset: 1px;
border-color: var(--teal);
}
/* ─── Entity type toggles (Redact tool) ───────────────────────────────────── */
.entity-toggles {
flex-wrap: wrap;
gap: 0.4rem 1.1rem;
}
.entity-toggles label {
display: flex;
align-items: center;
gap: 0.3rem;
font-size: 0.875rem;
cursor: pointer;
user-select: none;
}
.entity-toggles input[type="checkbox"] {
width: 15px;
height: 15px;
accent-color: var(--teal);
cursor: pointer;
}