跳到主要内容
知仓学习社ZHICANG

session-anonymizer

Three-layer PII anonymization for session transcripts (therapy, coaching, consulting, mentoring). Runs Natasha (Russian NER), OpenAI Privacy Filter,…

执行命令联网写文件严重 0 · 高危 2glebis/claude-skills

它会碰到什么

扫了多少2 个文本文件,16 KB
它会碰到什么执行命令联网写文件
命中总数12 处
命中统计严重 0 · 高 2 · 中 10 · 低 0
逐条看命中(2 条严重或高危)
  • scripts/anonymize.py:70exec-spawn
    result = subprocess.run(
  • scripts/anonymize.py:302exec-spawn
    result = subprocess.run(

这一栏是扫描器报的事实,不是结论。命中多不等于有毒(安全工具、规则库、示例脚本本来就会包含危险写法),命中少也不等于干净。它和你手上的凭据、文件、网络有什么关系,需要你自己看。

技能内容

Therapy Anonymizer

Three-layer PII detection and anonymization for therapy session transcripts. Supports Russian and English. Fully local by default — no data leaves the machine.

Architecture

Three detection layers run in sequence, each catching what others miss:

| Layer | Tool | Catches | Size | Speed |

|-------|------|---------|------|-------|

| 1 | Natasha | Russian names, locations, organizations | 27 MB | instant |

| 2 | OpenAI Privacy Filter (opf) | Phones, accounts, addresses, emails | 2.8 GB | ~1.5s |

| 3 | Ollama LLM | Medications, dates, contextual IDs | 2.5-7 GB | ~10s |

Spans from all layers are merged, overlaps resolved, and a unified redacted output is produced.

Prerequisites

pip install natasha setuptools pymorphy2-dicts-ru
pip install 'opf @ git+https://github.com/openai/privacy-filter.git'
ollama pull qwen3:4b

Each layer is optional — the script gracefully skips unavailable layers and warns.

Usage

Single file

python3 ~/.claude/skills/therapy-anonymizer/scripts/anonymize.py session.txt

Stdin pipe

cat session.txt | python3 ~/.claude/skills/therapy-anonymizer/scripts/anonymize.py

Batch processing

python3 ~/.claude/skills/therapy-anonymizer/scripts/anonymize.py --batch ~/sessions/ -o ~/sessions_clean/

JSON report

python3 ~/.claude/skills/therapy-anonymizer/scripts/anonymize.py session.txt --json

Pseudonyms instead of tags

python3 ~/.claude/skills/therapy-anonymizer/scripts/anonymize.py session.txt --pseudonyms

Select layers / model

# Fast — Natasha only
python3 ~/.claude/skills/therapy-anonymizer/scripts/anonymize.py session.txt --layers natasha

# LLM only — maximum coverage
python3 ~/.claude/skills/therapy-anonymizer/scripts/anonymize.py session.txt --layers ollama --model gemma4:e2b

Encrypt output (AES-256)

python3 ~/.claude/skills/therapy-anonymizer/scripts/anonymize.py session.txt -o clean.txt --encrypt "password"

Invoking from Claude Code

To anonymize text already in context, pipe it through the script:

echo '<text>' | python3 ~/.claude/skills/therapy-anonymizer/scripts/anonymize.py --json

For files, pass the path directly. Always recommend manual review after automated anonymization.

Limitations

  • Contextual identifiers ("the only red-haired architect in Kostroma") are NOT detected by any automated tool
  • OPF is English-focused — Russian coverage is partial
  • Medications detected only by Layer 3 (requires Ollama)
  • Does not assess re-identification risk from combinations of non-PII fields

Guardrails

  • NEVER send raw transcripts to cloud services
  • Cloud verification only on already-anonymized text
  • Always recommend manual review for therapy data
  • Never log original PII values

想直接用这个技能?

本站把开放许可(MIT / Apache 等)的技能按仓库打包整理到网盘,点一下转存到你自己的网盘,不用一个个从 GitHub 拉。许可未声明的技能只给原始仓库链接,不打包。