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:
+35
-1
@@ -13,6 +13,18 @@ dbnToolsWithTelemetry('redact', '', function () use ($input): array {
|
||||
$region = dbnToolsNormalizeRegion($input['region'] ?? 'nordic');
|
||||
$language = dbnToolsNormalizeLanguage($input['language'] ?? 'en');
|
||||
|
||||
$validEngines = ['azure_mini', 'azure_full', 'gpu', 'regex'];
|
||||
$engine = in_array((string)($input['engine'] ?? ''), $validEngines, true)
|
||||
? (string)$input['engine']
|
||||
: 'azure_mini';
|
||||
|
||||
$validFormats = ['contextual', 'generic', 'pseudonym'];
|
||||
$outputFormat = in_array((string)($input['output_format'] ?? ''), $validFormats, true)
|
||||
? (string)$input['output_format']
|
||||
: 'contextual';
|
||||
|
||||
$keepOfficials = (bool)($input['keep_officials'] ?? false);
|
||||
|
||||
$aliases = [];
|
||||
$rawAliases = $input['aliases'] ?? [];
|
||||
if (is_array($rawAliases)) {
|
||||
@@ -28,5 +40,27 @@ dbnToolsWithTelemetry('redact', '', function () use ($input): array {
|
||||
}
|
||||
}
|
||||
|
||||
return (new DbnLegalToolsService())->redact($text, $mode, $region, $language, $aliases);
|
||||
$exemptNames = [];
|
||||
$rawExempt = $input['exempt_names'] ?? [];
|
||||
if (is_array($rawExempt)) {
|
||||
foreach (array_slice($rawExempt, 0, 20) as $name) {
|
||||
$name = substr(trim((string)$name), 0, 100);
|
||||
if ($name !== '') {
|
||||
$exemptNames[] = $name;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$rawTypes = $input['redact_types'] ?? [];
|
||||
$redactTypes = [
|
||||
'names' => ($rawTypes['names'] ?? true) !== false,
|
||||
'orgs' => ($rawTypes['orgs'] ?? true) !== false,
|
||||
'places' => ($rawTypes['places'] ?? true) !== false,
|
||||
'dob' => ($rawTypes['dob'] ?? true) !== false,
|
||||
];
|
||||
|
||||
return (new DbnLegalToolsService())->redact(
|
||||
$text, $mode, $region, $language, $aliases,
|
||||
$engine, $outputFormat, $keepOfficials, $exemptNames, $redactTypes
|
||||
);
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user