返回顶部
h

has-anonymizer文本图像匿名化

HaS (Hide and Seek) on-device text and image anonymization. Text: 8 languages (zh/en/fr/de/es/pt/ja/ko), open-set entity types. Image: 21 privacy categories (face, fingerprint, ID card, passport, license plate, etc.). Use when: (1) anonymizing text before sending to cloud LLMs then restoring the response, (2) anonymizing documents, code, emails, or messages before sharing, (3) scanning text or images for sensitive content, (4) anonymizing logs before handing to ops/support, (5) masking faces/IDs

作者: admin | 来源: ClawHub
源自
ClawHub
版本
V 1.0.3
安全检测
已通过
889
下载量
免费
免费
12
收藏
概述
安装方式
版本历史

has-anonymizer

HaS 隐私保护

HaS 提供了一个统一的 CLI 工具:

  • - has text ... 用于文本匿名化、恢复和扫描
  • has image ... 用于图像扫描、遮罩和类别发现

当您需要在将内容发送到其他地方之前本地移除隐私数据、检查目录中的隐私风险,或在照片和截图中遮盖视觉隐私目标时使用。

代理决策指南

  • - 纯文本优先使用 has text,光栅图像优先使用 has image。对于混合目录,同时运行两者并将结果合并到一个报告中。
  • 对于 PDF、Word 文档或扫描页面,先提取文本再使用 has text。对于仅需隐藏可见载体(如人脸、屏幕、纸张、标签或二维码)的截图/照片,使用 has image。如果目标是推理图像中的文本内容,先运行 OCR 再使用 has text。
  • 不要覆盖或删除原始文件。文本命令可以后续恢复,图像遮罩是不可逆的。
  • 当用户意图明确时,主动提及可配置参数:has text 使用重复的 --type;has image 使用重复的 --type,外加 --method 和 --strength。
  • 如果用户意图不明确,在 hide 之前先使用 scan。
  • 批量扫描后,汇总文本文件数量、图像文件数量、按类型/类别的发现结果、高风险项目以及建议的下一步操作。
  • 如果用户关心时间,添加 --timing 并用通俗语言报告耗时结果。
  • 对于 qrcode 和 barcode,默认的马赛克强度会根据检测尺寸自动提高,以确保编码被破坏。代理无需手动为这些类别增加 --strength。如果检测输出包含 effectivestrength,请向用户报告。

共享 CLI 约定

当前 CLI 约定优先为代理设计:

  • - 成功返回紧凑的 JSON。
  • 失败也返回紧凑的 JSON,包含 error.code 和 error.message。
  • 返回的路径字段为绝对路径。
- 包括 file、output、mapping_output 和 skipped[].file。
  • - 无效组合会快速失败,而不是静默回退。
  • 目录模式是非递归的。仅处理直接子文件。
  • 批量结果可以包含 skipped 和 skipped_count。
- 将 skipped 条目视为未处理的文件,而不是干净的文件。

共享命令布局:

bash
{baseDir}/scripts/has.sh [options]

共享选项可以放在子命令之前或之后。



第一部分:has text

has text 是纯文本命名空间。支持:

  • - scan
  • hide
  • restore

它完全在设备上运行,当需要模型推理时,使用本地 llama-server 和 HaS 文本模型。

核心文本概念

语义标签

匿名化文本使用语义标签,例如:

text

这比扁平化的 [REDACTED] 标记更好地保留了结构,也是下游 LLM 输出恢复后仍可用的原因。

开放集类型

重复的 --type 标志是开放集的。它们不限于固定目录。自然语言类型名称如 person name、address、phone number 或 numeric values (transaction amounts) 都是有效的。

公共/私有区分

类型措辞很重要。例如,如果您想保留公共场所但隐藏私人地址,personal location 通常比 location 更安全。公共/私有人员姓名的区分仍然不太稳定,未经验证不应信任。

多语言支持

文本模型支持中文、英文、法文、德文、西班牙文、葡萄牙文、日文和韩文,包括混合语言文本。

类型名称语言

将 --type 语言与源文本语言匹配:

  • - 中文文本 → 使用中文类型名称:--type 人名 --type 电话号码 --type 地址
  • 非中文文本(英文、法文、德文等)→ 使用英文类型名称:--type person name --type phone number --type address

文本运行时前提条件

has text 在需要时自动启动本地 llama-server。

  • - 默认模型路径:~/.openclaw/tools/has-anonymizer/models/hastextmodel.gguf
  • 覆盖模型路径:HASTEXTMODELPATH=/abs/path/to/hastextmodel.gguf
  • 覆盖并行能力:HASTEXTMAXPARALLEL_REQUESTS
  • 如果 HuggingFace 下载失败,请参阅下面的模型下载镜像

文本使用

bash
{baseDir}/scripts/has.sh text [--timing] [--verbose] [options]

命名空间选项:

选项描述
--timing在 JSON 输出中包含 elapsed_ms
--verbose
向 stderr 输出运行时状态和进度消息 |

输入方法:

方法描述
--text <text>直接传递文本
--file <path>
从文件读取文本 |
| --dir | 处理目录中的直接纯文本文件 |
| stdin | 当未提供 --text、--file 或 --dir 时的单文本模式 |

规则:

  • - --text、--file 和 --dir 互斥。
  • 拒绝空的 --type 值。
  • 目录模式仅接受批量输出标志。
  • 单文件 hide 需要 --mapping-output。
  • 单文件 restore 需要 --mapping。
  • 在文本目录模式下,skipped 可以包含未处理的文件(二进制、编码或读取错误)。

has text scan

查找敏感实体而不替换它们。

bash
{baseDir}/scripts/has.sh text scan --type person name --type phone number --file report.txt
{baseDir}/scripts/has.sh text scan --type person name --type phone number --dir ./reports/

参数:

参数必需描述
--type要扫描的实体类型;重复添加更多
--text / --file / --dir
一个输入 | 输入源 |
| --max-chunk-tokens | | 每个块的最大令牌数,默认 5000 |
| --max-parallel-requests | | 并行扫描的最大块数,默认 4 |

输出:

  • - 单文本模式返回 {entities: ...}
  • 目录模式返回 {results:[...],count:N,summary:{...}}
  • 批量输出可能包含 skipped 和 skipped_count

has text hide

用语义标签替换敏感实体。

bash
{baseDir}/scripts/has.sh text hide --type person name --type address --text John lives in Brooklyn --mapping-output ./mapping.json
{baseDir}/scripts/has.sh text hide --type person name --file note.txt --output ./note.anonymized.txt --mapping-output ./note.mapping.json
{baseDir}/scripts/has.sh text hide --type person name --dir ./docs/

参数:

参数必需描述
--type要匿名化的实体类型;重复添加更多
--text / --file / --dir
一个输入 | 输入源 |
| --mapping-output | 单文件:是 | 生成的映射 JSON 的输出路径 |
| --output | 单文件 | 匿名化文本的输出路径 |
| --mapping | 单文件 | 用于增量匿名化的现有映射 JSON 文件 |
| --output-dir | 批量 | 匿名化文件的输出目录(默认:/.has/anonymized/) |
| --mapping-dir | 批量 | 每个文件映射 JSON 文件的输出目录(默认:/mappings/) |
| --max-chunk-tokens | | 每个块的最大令牌数,默认 3000 |
| --max-parallel-requests | | --dir 的并行最大文件数,默认 4 |
| --no-tool-pair | | 禁用基于差异的对提取;始终使用 Model-Pair(较慢但更稳健) |

行为:

  • - 单文件模式从不内联输出映射表。
  • 单文件模式返回以下之一:

标签

skill ai

通过对话安装

该技能支持在以下平台通过对话安装:

OpenClaw WorkBuddy QClaw Kimi Claude

方式一:安装 SkillHub 和技能

帮我安装 SkillHub 和 has-anonymizer-1776154144 技能

方式二:设置 SkillHub 为优先技能安装源

设置 SkillHub 为我的优先技能安装源,然后帮我安装 has-anonymizer-1776154144 技能

通过命令行安装

skillhub install has-anonymizer-1776154144

下载

⬇ 下载 has-anonymizer v1.0.3(免费)

文件大小: 105.81 KB | 发布时间: 2026-4-15 12:01

v1.0.3 最新 2026-4-15 12:01
fix(image): adaptive mosaic for QR codes and barcodes. Default mosaic strength aligned with QR module size, leaving codes machine-readable. Added adaptive strength, cv2 post-masking verification with escalation fallback, cv2 supplementary scan for missed codes, and cv2 type correction for YOLO misclassifications. Refactored detect-correct-filter-mask pipeline.

Archiver·手机版·闲社网·闲社论坛·羊毛社区· 多链控股集团有限公司 · 苏ICP备2025199260号-1

Powered by Discuz! X5.0   © 2024-2025 闲社网·线报更新论坛·羊毛分享社区·http://xianshe.com

p2p_official_large
返回顶部