自动脱敏中间件:发送给 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⚪ 扫描:无法判定尚无人工评估展开查看扫描说明与证据 ↓
安全扫描自动 · 静态分析源码
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预览分享卡片长什么样 ↓
分享 · DeepSeek Harness Hub
PerryLink/Pii-Stripper-Middleware
自动脱敏中间件:发送给 LLM 前自动替换敏感信息,收到回复后再无缝还原。
相关插件 · 其他
模型破甲清洗HunYiSage/dsh-purge
⚔️ DeepSeek Harness 网络安全红队工具dsh-purge
★ 16,993已汉化DeepSeek 客户端
73
女娲蒸馏alchaincyf/nuwa-skill
输入名人名字,提炼其思维模型与决策方式供你调用
★ 37,308已汉化DSH
72
逆向分析桥接Fanqi89/dsh-rea
REA(Reverse Engineer Anything)MCP 桥接,用来把 REA 逆向工具接入 DSH 插件
★ 51已汉化DSH
72
语音女友beiyege-01/dsh-voice-ai-girlfriend
语音 AI 女友Voice AI girlfriend for DeepSeek Harness:Whisper…
★ 888已汉化DSH
71.6
红队越狱测试套件Minglink/dsh-infinite-gen-5
DeepSeek v4.1 flash 逆向工具无限五代 求 Star 收藏 ⭐欢迎大家提交项目的改进
★ 3,759已汉化DSH
71.4
协同办公空间dream-num/univer-workspace
一个让人类与 AI Agent 共同创作、协作和审阅的开源 Office 工作空间。
★ 2,269已汉化DSH
70.8
这是你的仓库?认领条目