🎁 福利专区全网大模型免费应用 + 新用户福利 + 注册活动入口,低成本玩转 AI

隐私脱敏中间件 PerryLink/Pii-Stripper-Middleware

DeepSeek Harness
PerryLink26 天前有提交已提供中文文档扫描:无法判定

自动脱敏中间件:发送给 LLM 前自动替换敏感信息,收到回复后再无缝还原。

30.7/100
综合分
1
GitHub 星标
—
npm 周下载
—/5
用户评分

数据截至 2026/10/9 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。

自动兼容检查未通过:仓库根目录及浅层子目录均无 dsh 插件清单,无法用 dsh 插件安装命令安装。以下命令仍可尝试,但可能失败。
无法用 dsh 插件命令安装(仓库内无 dsh 插件清单)
git clone https://github.com/PerryLink/Pii-Stripper-Middleware.git
按该仓库 README 的原生方式安装;若作者另行发布了 DSH 插件包,请以其文档为准

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:需留意
是什么
dsh 原生插件 · other
装得上吗
作者未把包发布到 npm,只能用源码安装
插件本身没问题,是分发方式不同
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
活跃:最近一次提交在 26 天前
档位由哪些信号合成

本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。

验证判据与等级说明 →
社区实装还没有人打卡 · 装过的第一个就是你
安装兼容性检查需源码安装

仓库根目录及浅层子目录均无 dsh 插件清单,无法用 dsh 插件安装命令安装

展开查看检查明细 ↓

以下结论由程序自动检查 npm 包、engines 声明与入口文件得出,未做人工实机验证——能装不等于用着没问题。

✗npm 包Pii-Stripper-Middleware(未发布到 npm,仅可源码安装)
✓Node 引擎未声明 engines.node
✓dsh CLI 依赖未声明 dsh 版本约束
✗入口文件缺少入口声明

源码安装时若 pnpm 拦截 prepare 脚本,按其提示在 pnpm-workspace.yaml 的 allowBuilds 中放行后重跑。

验证方式:npm registry 存在性 + package.json 静态校验 · 最后检查 2026/10/12 15:05:11

安全扫描自动 · 静态分析源码
v2.7.0
⚪ 扫描:无法判定尚无人工评估
展开查看扫描说明与证据 ↓

已尝试扫描但取不到可分析的源码:仓库或包不存在、已删除,或为非 JS/TS 实现、未随包发布源码。无法判定,不代表安全。

  • · 包内无可扫 JS
  • · TS 源码(可能为非 JS 实现或未发布源码),无法判定
扫描于 2026/11/3(1 天前) · 范围 全包扫描(包内未声明入口) · 来源 GitHub 仓库

静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。

给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

功能亮点

  • 发送前自动脱敏
  • 回复后无缝还原

README

由 DeepSeek 最新模型翻译生成
Pii-Stripper-Middleware 在发送文本给 LLM 之前自动脱敏个人隐私信息,收到回复后自动还原。 已移植至 dsh-mask —— 属于 PerryLink DSH 插件家族。 English · 简体中文 功能简介 Pii-Stripper-Middleware 位于你的应用与 LLM 之间。发送请求前,它会将个人隐私信息替换为可逆占位符;模型只能看到脱敏后的文本,收到回复后占位符会被还原。 你输入的原始文本: "帮我起草一封道歉邮件给客户张三,他的手机是 13812345678" ↓ 自动脱敏(真正发给模型的内容) "帮我起草一封道歉邮件给客户 <PERSON_1>,他的手机是 <PHONE_1>" ↓ 模型返回(含占位符) "尊敬的 <PERSON_1>,感谢您一直以来的支持……如有疑问请拨打 <PHONE_1>" ↓ 自动还原(你看到的最终回复) "尊敬的 张三,感谢您一直以来的支持……如有疑问请拨打 13812345678" 你的客户数据从未离开本地。
展开完整文档(README 剩余 1 节)
Pii-Stripper-Middleware

在发送文本给 LLM 之前自动脱敏个人隐私信息,收到回复后自动还原。

已移植至 dsh-mask —— 属于 PerryLink DSH 插件家族。

English · 简体中文

功能简介

Pii-Stripper-Middleware 位于你的应用与 LLM 之间。发送请求前,它会将个人隐私信息替换为可逆占位符;模型只能看到脱敏后的文本,收到回复后占位符会被还原。

你输入的原始文本: "帮我起草一封道歉邮件给客户张三,他的手机是 13812345678"

↓ 自动脱敏(真正发给模型的内容)

"帮我起草一封道歉邮件给客户 <PERSON_1>,他的手机是 <PHONE_1>"

↓ 模型返回(含占位符)

"尊敬的 <PERSON_1>,感谢您一直以来的支持……如有疑问请拨打 <PHONE_1>"

↓ 自动还原(你看到的最终回复)

"尊敬的 张三,感谢您一直以来的支持……如有疑问请拨打 13812345678"

你的客户数据从未离开本地。

核心特性

- 正则检测 —— 中国大陆手机号、18 位身份证、邮箱、IPv4 地址
- NLP 识别 —— 集成 Microsoft Presidio + SpaCy,识别人名、地名、组织机构、信用卡等
- 无损还原 —— 相同原始值始终复用同一占位符,100% 可逆
- 多轮对话 —— 内置交互式 REPL,历史上下文自动脱敏存储
- 代理友好 —— 支持自定义 API Base URL,适配各类 OpenAI 兼容代理
- Python API —— 两行代码集成进任意 Python 项目

快速开始

基础安装(正则模式,无需 SpaCy)

pip install "git+https://github.com/PerryLink/Pii-Stripper-Middleware.git"
(PyPI 未发布,源码直装)

完整安装(含 NLP 实体识别)

pip install "pii-stripper-middleware[nlp] @ git+https://github.com/PerryLink/Pii-Stripper-Middleware.git"
(PyPI 未发布,源码直装)

下载中文 SpaCy 模型(推荐)
python -m spacy download zh_core_web_sm

或英文模型
python -m spacy download en_core_web_sm

使用 Poetry

poetry add git+https://github.com/PerryLink/Pii-Stripper-Middleware.git
(PyPI 未发布,源码直装)含 NLP 支持 poetry add git+https://github.com/PerryLink/Pii-Stripper-Middleware.git --extras nlp

使用指南

命令行

本地演示(无需 API Key) pii-stripper demo

仅脱敏文本,查看效果 pii-stripper strip "联系张三,手机 13812345678,邮箱 zs@example.com"

脱敏后发给 AI(需要 OPENAI_API_KEY)
export OPENAI_API_KEY=sk-...
pii-stripper chat "帮我给客户张三(13812345678)写一封感谢信"

交互式多轮对话 pii-stripper chat --interactive

显示脱敏详情 pii-stripper chat "..." --verbose

处理文件 pii-stripper strip --file customer_data.txt --output cleaned.txt

配置 API Key(三种方式)

方式 1:环境变量
export OPENAI_API_KEY=sk-your-key

方式 2:.env 文件(项目根目录)
echo "OPENAI_API_KEY=sk-your-key" > .env

方式 3:命令行参数 pii-stripper chat "..." --api-key sk-your-key

使用自定义代理(兼容 OpenAI API 的任意端点) pii-stripper chat "..." --base-url https://your-proxy.com/v1

Python API

from pii_stripper_middleware import PIIStripper

stripper = PIIStripper() # 自动检测 SpaCy 模型,失败降级为正则模式

脱敏
original = "客户张三的手机是 13812345678,身份证 110101199001011234"
anonymized = stripper.strip(original)
print(anonymized)
→ "客户 <PERSON_1> 的手机是 <PHONE_1>,身份证 <ID_CARD_1>"

查看映射表
print(stripper.mapping)
→ {"<PERSON_1>": "张三", "<PHONE_1>": "13812345678", "<ID_CARD_1>": "110101199001011234"}

还原
restored = stripper.restore(anonymized)
print(restored)
→ "客户张三的手机是 13812345678,身份证 110101199001011234"

与 OpenAI 集成

from openai import OpenAI
from pii_stripper_middleware import PIIStripper

client = OpenAI(api_key="sk-...")
stripper = PIIStripper()

user_message = "帮我给客户张三(13812345678)写一封道歉信"

def call_ai(text):
resp = client.chat.completions.create(
model="gpt-4o-mini",
messages=[{"role": "user", "content": text}],
)
return resp.choices[0].message.content

一步完成:脱敏 → 调用 AI → 还原
result = stripper.strip_and_call(user_message, call_ai)
print(result) # AI 回复,张三和手机号已自动还原

支持的 PII 类型

| 类型 | 占位符 | 检测方式 | 示例 |
| 中国手机号 | <PHONE_N> | 正则 | 13812345678 |
| 中国身份证 | <ID_CARD_N> | 正则 | 110101199001011234 |
| 电子邮件 | <EMAIL_N> | 正则 | user@example.com |
| IPv4 地址 | <IP_N> | 正则 | 192.168.1.1 |
| 人名 | <PERSON_N> | NLP* | 张三, John Doe |
| 地名 | <LOCATION_N> | NLP* | 北京, Shanghai |
| 组织机构 | <ORG_N> | NLP* | 腾讯, OpenAI |
| 信用卡号 | <CREDIT_CARD_N> | NLP* | 4111 1111 1111 1111 |
| 银行卡号 | <BANK_CARD_N> | NLP* | 6222 0000 0000 0000 |

*NLP 类型需要安装 [nlp] 额外依赖和 SpaCy 模型。

CLI 参考

命令: strip 仅脱敏文本(不调用 AI) chat 脱敏后与 OpenAI 对话 demo 本地演示,无需 API Key

strip 选项: TEXT 要处理的文本 --file, -f PATH 输入文件路径 --output, -o PATH 输出文件路径 --show-mapping 显示替换映射表(默认开启) --no-nlp 禁用 NLP,仅使用正则 --env-file PATH .env 文件路径

chat 选项: TEXT 发送给 AI 的文本 --model, -m TEXT 模型名称(默认 gpt-4o-mini) --interactive, -i 交互式对话模式 --api-key TEXT OpenAI API Key --base-url TEXT API Base URL(代理 / 兼容端点) --no-nlp 禁用 NLP --verbose, -v 显示脱敏详情 --env-file PATH .env 文件路径

技术栈

| 组件 | 库 |
| CLI 框架 | Typer + Rich |
| NLP / 实体识别 | Microsoft Presidio + SpaCy |
| LLM 集成 | OpenAI Python SDK |
| 打包工具 | Poetry |
| 测试框架 | pytest + pytest-cov |
| 代码检查 | Ruff |

隐私声明

- 数据不落盘 —— 原始 PII 仅在内存中保存,随进程结束释放。
- 发给 AI 的内容 —— 只包含占位符,真实敏感信息从不离开本地。
- 历史对话 —— 交互模式下,历史记录中存储的也是脱敏后的文本。

开发

poetry install
poetry run pytest
poetry run ruff check .

相关项目

- dsh-mask —— 本项目被移植进的 DSH 插件
- PerryLink —— PerryLink DSH 插件家族

许可证

Apache License 2.0 © 2026 PerryLink
预览分享卡片长什么样 ↓PerryLink/Pii-Stripper-Middleware
分享 · DeepSeek Harness Hub
PerryLink/Pii-Stripper-Middleware

自动脱敏中间件:发送给 LLM 前自动替换敏感信息,收到回复后再无缝还原。

这是你的仓库?认领条目

回到顶部