koushiknarendra/svitch
GitHub: koushiknarendra/svitch
Svitch 是一个部署在应用与 LLM 之间的 AI 数据安全层,专门检测和脱敏印度 PII 并满足 DPDP 法规合规要求。
Stars: 0 | Forks: 0
# Svitch
**专为受监管企业打造的 AI 数据安全层。**
Svitch 部署在你的应用程序与任何 LLM 提供商之间——能在敏感数据离开你的基础设施之前进行检测和脱敏,并记录每个 agent 的决策以供合规审计。
```
import svitch
import openai
client = svitch.wrap(openai.OpenAI(api_key="..."))
# Aadhaar、PAN、UPI IDs —— 在发送至 OpenAI 之前自动脱敏
response = client.chat.completions.create(
model="gpt-4o",
messages=[{"role": "user", "content": "Customer Rahul Sharma, Aadhaar 2345 6789 0123, PAN ABCDE1234F needs a loan summary."}]
)
# OpenAI 收到:“Customer [NAME], Aadhaar [AADHAAR], PAN [PAN] needs a loan summary.”
```
## 可检测内容
**印度 (DPDP 关键数据):**
- Aadhaar 号码(12 位,包含带掩码和不带掩码格式)
- PAN 卡(ABCDE1234F 格式)
- UPI ID(name@bankcode)
- IFSC 代码(ABCD0123456)
- 印度手机号码(10 位,+91 前缀变体)
- 印度护照号码
- 选民 ID(EPIC 号码)
- GST 号码
- 银行账号
**全球通用:**
- 电子邮件地址
- 通用电话号码
- IPv4/IPv6 地址
## 快速开始
### Python
```
pip install svitch
```
```
import svitch
# 检测文本中的 PII
result = svitch.detect("Call me on 9876543210, my PAN is ABCDE1234F")
# result.entities: [Entity(type='MOBILE_IN', value='9876543210', ...), Entity(type='PAN', ...)]
# 从文本中脱敏 PII
redacted = svitch.redact("My Aadhaar is 2345 6789 0123")
# redacted.text: "My Aadhaar is [AADHAAR]"
# 封装任何兼容 OpenAI 的客户端
import openai
client = svitch.wrap(openai.OpenAI())
# 使用方式与 openai.OpenAI() 完全相同 —— PII 会自动脱敏
```
### Node.js
```
npm install svitch
```
```
import { detect, redact, wrap } from 'svitch';
import OpenAI from 'openai';
const { entities } = detect("My UPI is rahul@okicici");
const { text } = redact("PAN: ABCDE1234F, Aadhaar: 2345 6789 0123");
const client = wrap(new OpenAI({ apiKey: process.env.OPENAI_API_KEY }));
```
### 自托管服务
```
cd pii-shield/service
pip install -r requirements.txt
uvicorn main:app --host 0.0.0.0 --port 8000
```
```
curl -X POST http://localhost:8000/redact \
-H "Content-Type: application/json" \
-d '{"text": "Aadhaar: 2345 6789 0123, PAN: ABCDE1234F"}'
```
## 为什么选择 Svitch
目前没有任何现有工具——无论是 AWS Bedrock Guardrails、Azure Content Safety 还是 NeMo Guardrails——都无法跨多个 LLM 提供商准确检测印度 PII 实体(Aadhaar、PAN、UPI ID)。
根据印度 DPDP 法案(将于 2027 年 5 月全面实施),将未经脱敏的个人数据发送给第三方 LLM 提供商,将使你的公司面临高达 25 亿卢比(₹250 crore)的罚款。
## 架构
```
Your App → Svitch SDK → [PII detected & redacted] → LLM Provider
↓
Audit Log (append-only, hash-chained)
```
SDK 在本地运行——不会向 Svitch 服务器发送任何数据。可选的托管服务可提供审计追踪、控制面板和合规报告。
## 路线图
- [x] 印度 PII 检测(Aadhaar、PAN、UPI、IFSC、手机号、护照、选民 ID、GST)
- [x] 包含 OpenAI 和 Anthropic 封装器的 Python SDK
- [x] Node.js SDK
- [x] 自托管 FastAPI 服务
- [ ] Agent 决策血缘追踪(LangGraph, CrewAI, AutoGen)
- [ ] DPDP 合规报告生成器
- [ ] 私有 AI 推理飞地(在你自己的服务器上运行 Llama/Mistral)
- [ ] 区块链授权账本
- [ ] GDPR / HIPAA 模式
## 许可证
Apache 2.0 — 可免费使用、修改和分发。
标签:DLL 劫持, GNU通用公共许可证, MITM代理, Node.js, Petitpotam, PII脱敏, Python, 大语言模型, 无后门, 逆向工具