☰
OpenAI Privacy Filter CLI完全指南:命令行、文件、管道与交互模式4种脱敏用法详解
2026/10/1 16:08:55 网站建设 项目流程

OpenAI Privacy Filter CLI完全指南:命令行、文件、管道与交互模式4种脱敏用法详解

【免费下载链接】privacy-filterOpenAI Privacy Filter项目地址: https://gitcode.com/gh_mirrors/pr/privacy-filter

OpenAI Privacy Filter 是 OpenAI 开源的本地隐私脱敏模型,能一次性识别并遮盖姓名、邮箱、电话、地址、账号、密钥等 8 类个人敏感信息(PII)。本文带你用它的命令行工具opf快速上手 PII 脱敏,详解命令行、文件、管道、交互4 种用法,并附上常用参数速查与输出结构说明,几分钟即可跑通第一个脱敏命令。

为什么选择 OpenAI Privacy Filter

  • 🚀本地运行:数据不出本机,无需联网调用,适合高吞吐脱敏流程。
  • 🧠上下文感知:单次前向传播完成标注,12.8 万 token 长上下文,无需分块。
  • ⚙️可调精度:通过运行点调节精确率/召回率,支持数据高效微调。
  • 📦Apache 2.0:可实验、可定制、可商用。
  • 🔤8 类标签:account_number、private_address、private_email、private_person、private_phone、private_url、private_date、secret。

模型与项目详情见 README.md。

快速开始:安装并首次脱敏

一键安装 opf 命令行工具

克隆仓库后本地安装(源码可用时也可跳过 clone 直接pip install -e .):

git clone https://gitcode.com/gh_mirrors/pr/privacy-filter cd privacy-filter pip install -e .

安装后即可直接运行opf脚本,或等价地执行python -m opf。依赖与入口声明见 pyproject.toml。

一条命令完成文本脱敏

opf "Alice was born on 1990-01-02."

模型默认从OPF_CHECKPOINT环境变量或~/.opf/privacy_filter目录查找权重,找不到会自动下载。默认在 GPU 上运行;CPU 运行加--device cpu:

opf --device cpu "Alice was born on 1990-01-02."

要覆盖默认权重目录:

opf --checkpoint /path/to/checkpoint_dir "Alice was born on 1990-01-02."

4 种脱敏用法详解

用法一:命令行直传文本(最常用)

适合单条、少量文本的快速脱敏,直接把文本作为参数:

opf "Quindle Testwick 的邮箱是 quindle.testwick@openai.com。"

用法二:文件脱敏(-f 参数)

一次性脱敏整个文件,适合日志、报告等文本文件:

opf -f /path/to/file

-f可重复传入以处理多个文件,每个文件作为一条完整输入。参数解析见 opf/main.py。

用法三:管道脱敏(灵活组合)

脱敏支持管道,方便与其他命令拼成一行复杂命令,例如先过滤再脱敏:

cat /path/to/file | grep -e 'some_pattern' | opf

输入来自标准输入(stdin)时,opf会按行读取并自动跳过空行。读取逻辑见 opf/_cli/args.py。

用法四:交互模式(无输入自动进入)

不提供任何输入时,opf自动进入交互模式,逐行输入、逐条输出结构化 JSON:

opf

交互模式下:

  • 打印会话头部(checkpoint、device、n_ctx、output_mode);
  • 每条输出附带ANSI 彩色预览(终端支持时),并用颜色图例标注各标签;
  • 输入/exit、quit或:q退出。

提示语与退出命令逻辑同样定义在 opf/_cli/args.py。

常用参数速查表

参数说明默认值
--device运行设备(cuda/cpu)cuda
--checkpoint覆盖权重目录OPF_CHECKPOINT或~/.opf/privacy_filter
--n-ctx覆盖上下文长度128000
--decode-mode解码方式:viterbi/argmaxviterbi
--output-modetyped保留分类 /redacted统一为通用标签typed
--format输出text(仅遮盖文本)或json非交互text/ 交互json
--json-indentJSON 缩进级别2
--viterbi-calibration-path本地校准 JSON 路径自动查找<checkpoint>/viterbi_calibration.json
-f/--text-file文本文件路径,可重复传入—
--discard-overlapping-predicted-spans丢弃重叠的预测片段关
--trim-whitespace/--no-trim-whitespace是否裁剪片段首尾空白裁剪

参数定义见 opf/_cli/common.py 与 opf/_cli/args.py。

看懂输出:JSON 结构

opf对每条输入输出一次 JSON,典型结构如下(完整定义见 OUTPUT_SCHEMAS.md):

{ "schema_version": 1, "summary": { "output_mode": "typed", "span_count": 2, "by_label": { "private_person": 1, "private_date": 1 } }, "text": "Alice was born on 1990-01-02.", "detected_spans": [ { "label": "private_person", "start": 0, "end": 5, "text": "Alice", "placeholder": "<PRIVATE_PERSON>" }, { "label": "private_date", "start": 20, "end": 30, "text": "1990-01-02", "placeholder": "<PRIVATE_DATE>" } ], "redacted_text": "<PRIVATE_PERSON> was born on <PRIVATE_DATE>." }
  • --output-mode redacted时,所有detected_spans[*].label会统一变为redacted。
  • typed与redacted两种输出模式的区别,参考 EVAL_AND_OUTPUT_MODES.md。

进阶:评估与微调(一句话了解)

  • 评估opf eval:对带标注数据集跑指标,快速验证检测效果。

    opf eval examples/data/sample_eval_five_examples.jsonl
  • 微调opf train:用自定义标注数据适配模型,适配自有标签体系。

    opf train /path/to/train.jsonl --output-dir /path/to/finetuned_checkpoint

    微调工作流见 FINETUNING.md,可复现演示脚本在 examples/scripts/finetuning/finetune_secret_demo.sh 与 examples/scripts/finetuning/finetune_custom_label_demo.sh,示例数据说明见 examples/data/README.md。

注意事项与限制

  • ⚠️不是匿名化保证:Privacy Filter 是脱敏与数据最小化的辅助工具,不能单独作为匿名化或合规声明,建议作为端到端隐私设计中的一层。
  • 🧩标签固定:只识别训练好的 8 类标签,组织级策略需校准或微调,无法在运行时动态改标签策略。
  • 🌍非英文文本:对非英语、非拉丁文字及领域外数据,效果可能下降。
  • 📉可能误判:漏检生僻人名、过度遮盖公开实体、碎片化/漂移边界、误报高熵占位符或样例密钥等。

完整风险提示见 README.md 的 “Bias, Risks, and Limitations” 章节。

上手清单

  1. pip install -e .安装工具
  2. opf "..."脱敏一条文本
  3. opf -f 文件脱敏整个文件
  4. cat 文件 | opf管道脱敏
  5. opf进入交互模式
  6. opf eval ...评估 /opf train ...微调

【免费下载链接】privacy-filterOpenAI Privacy Filter项目地址: https://gitcode.com/gh_mirrors/pr/privacy-filter

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询