diff --git a/config.yaml b/config.yaml index 88b64e02..fe24a020 100644 --- a/config.yaml +++ b/config.yaml @@ -115,7 +115,7 @@ display: tool_progress_command: false tool_progress: all privacy: - redact_pii: false + redact_pii: true tts: provider: edge edge: diff --git a/tasks.py b/tasks.py index afc5f228..95d9abfd 100644 --- a/tasks.py +++ b/tasks.py @@ -226,6 +226,32 @@ def hermes_local(prompt, model=None, caller_tag=None, toolsets=None): return None return result.get("response") +PII_SCRUBBER_SYSTEM_PROMPT = ( + "You are a PII (Personally Identifiable Information) redaction middleware.\n" + "Your ONLY task is to identify and replace PII with generic placeholders.\n" + "Replace names with [NAME], email addresses with [EMAIL], phone numbers with [PHONE], and physical addresses with [ADDRESS].\n" + "Do not change any other part of the text. Do not add any commentary.\n" + "If no PII is found, return the input text exactly as it is." +) + + +@huey.task() +def pii_scrubber(text): + """Redact PII from text using gemma2:2b.""" + result = run_hermes_local( + prompt=text, + model="gemma2:2b", + caller_tag="pii-scrubber", + system_prompt=PII_SCRUBBER_SYSTEM_PROMPT, + disable_all_tools=True, + skip_context_files=True, + skip_memory=True, + max_iterations=1, + ) + if not result: + return text + return result.get("response", text) + ARCHIVE_EPHEMERAL_SYSTEM_PROMPT = ( "You are running a private archive-processing microtask for Timmy.\n"