privylayer 0.1.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- privylayer-0.1.0/PKG-INFO +187 -0
- privylayer-0.1.0/README.md +178 -0
- privylayer-0.1.0/privylayer/__init__.py +1 -0
- privylayer-0.1.0/privylayer/core.py +47 -0
- privylayer-0.1.0/privylayer/detect_patterns.py +7 -0
- privylayer-0.1.0/privylayer.egg-info/PKG-INFO +187 -0
- privylayer-0.1.0/privylayer.egg-info/SOURCES.txt +9 -0
- privylayer-0.1.0/privylayer.egg-info/dependency_links.txt +1 -0
- privylayer-0.1.0/privylayer.egg-info/top_level.txt +1 -0
- privylayer-0.1.0/pyproject.toml +12 -0
- privylayer-0.1.0/setup.cfg +4 -0
|
@@ -0,0 +1,187 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: privylayer
|
|
3
|
+
Version: 0.1.0
|
|
4
|
+
Summary: Privacy layer for AI prompts
|
|
5
|
+
Author: Nithish
|
|
6
|
+
License: MIT
|
|
7
|
+
Requires-Python: >=3.8
|
|
8
|
+
Description-Content-Type: text/markdown
|
|
9
|
+
|
|
10
|
+
# ๐ PrivyLayer
|
|
11
|
+
|
|
12
|
+
> Privacy layer for AI systems โ protect sensitive data *before* it reaches AI.
|
|
13
|
+
|
|
14
|
+
---
|
|
15
|
+
|
|
16
|
+
## ๐ Overview
|
|
17
|
+
|
|
18
|
+
**PrivyLayer** is a lightweight Python library that acts as a **security layer between user input and AI models**.
|
|
19
|
+
|
|
20
|
+
It detects sensitive information (PII), replaces it with secure placeholders, and restores it after the AI response โ ensuring **zero data exposure**.
|
|
21
|
+
|
|
22
|
+
---
|
|
23
|
+
|
|
24
|
+
## โก Why PrivyLayer?
|
|
25
|
+
|
|
26
|
+
Modern AI systems process user input directly, which may include:
|
|
27
|
+
|
|
28
|
+
* ๐ฑ Phone numbers
|
|
29
|
+
* ๐ง Emails
|
|
30
|
+
* ๐ชช Aadhaar / PAN
|
|
31
|
+
* ๐ฆ Bank details
|
|
32
|
+
|
|
33
|
+
This creates a **privacy risk**.
|
|
34
|
+
|
|
35
|
+
๐ PrivyLayer solves this by introducing a **reversible masking system**.
|
|
36
|
+
|
|
37
|
+
---
|
|
38
|
+
|
|
39
|
+
## ๐ง How It Works
|
|
40
|
+
|
|
41
|
+
```
|
|
42
|
+
User Input
|
|
43
|
+
โ
|
|
44
|
+
PrivyLayer (detect + mask)
|
|
45
|
+
โ
|
|
46
|
+
AI Model
|
|
47
|
+
โ
|
|
48
|
+
PrivyLayer (restore)
|
|
49
|
+
โ
|
|
50
|
+
Final Output
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
---
|
|
54
|
+
|
|
55
|
+
## โจ Features
|
|
56
|
+
|
|
57
|
+
* ๐ Detects sensitive data using regex patterns
|
|
58
|
+
* ๐ Reversible masking (no data loss)
|
|
59
|
+
* ๐ง Smart tokenization system
|
|
60
|
+
* โก Fast and lightweight
|
|
61
|
+
* ๐ฎ๐ณ India-specific PII support
|
|
62
|
+
* ๐ No data stored globally
|
|
63
|
+
|
|
64
|
+
---
|
|
65
|
+
|
|
66
|
+
## ๐ฆ Installation
|
|
67
|
+
|
|
68
|
+
```bash
|
|
69
|
+
pip install privylayer
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
---
|
|
73
|
+
|
|
74
|
+
## ๐ ๏ธ Usage
|
|
75
|
+
|
|
76
|
+
### ๐ Protect (Mask data)
|
|
77
|
+
|
|
78
|
+
```python
|
|
79
|
+
from privylayer import protect
|
|
80
|
+
|
|
81
|
+
text = "My phone is 9876543210 and email is test@gmail.com"
|
|
82
|
+
|
|
83
|
+
mask , context , seen = main.find_p(text)
|
|
84
|
+
|
|
85
|
+
print(mask)
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
### Output:
|
|
89
|
+
|
|
90
|
+
```
|
|
91
|
+
My phone is โฆPII_PHONE_x1โง and email is โฆPII_EMAIL_x2โง
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
---
|
|
95
|
+
|
|
96
|
+
### ๐ Restore (Unmask data)
|
|
97
|
+
|
|
98
|
+
```python
|
|
99
|
+
from privylayer import restore
|
|
100
|
+
|
|
101
|
+
original = restore(masked, context)
|
|
102
|
+
|
|
103
|
+
print(original)
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
### Output:
|
|
107
|
+
|
|
108
|
+
```
|
|
109
|
+
My phone is 9876543210 and email is test@gmail.com
|
|
110
|
+
```
|
|
111
|
+
|
|
112
|
+
---
|
|
113
|
+
|
|
114
|
+
## ๐งฉ Supported Data Types
|
|
115
|
+
|
|
116
|
+
* ๐ฑ Phone numbers (India)
|
|
117
|
+
* ๐ง Email addresses
|
|
118
|
+
* ๐ชช Aadhaar numbers
|
|
119
|
+
* ๐งพ PAN numbers
|
|
120
|
+
* ๐ฆ IFSC codes
|
|
121
|
+
|
|
122
|
+
---
|
|
123
|
+
|
|
124
|
+
## ๐ Token Format
|
|
125
|
+
|
|
126
|
+
PrivyLayer replaces sensitive data with structured tokens:
|
|
127
|
+
|
|
128
|
+
```
|
|
129
|
+
โฆPII_TYPE_IDโง
|
|
130
|
+
```
|
|
131
|
+
|
|
132
|
+
Example:
|
|
133
|
+
|
|
134
|
+
```
|
|
135
|
+
โฆPII_PHONE_x1โง
|
|
136
|
+
โฆPII_EMAIL_x2โง
|
|
137
|
+
```
|
|
138
|
+
|
|
139
|
+
---
|
|
140
|
+
|
|
141
|
+
## โ ๏ธ Limitations
|
|
142
|
+
|
|
143
|
+
* Regex-based detection (may not detect names accurately)
|
|
144
|
+
* Does not validate Aadhaar checksum (yet)
|
|
145
|
+
* Context must be preserved for restoration
|
|
146
|
+
|
|
147
|
+
---
|
|
148
|
+
|
|
149
|
+
## ๐ Roadmap
|
|
150
|
+
|
|
151
|
+
* [ ] AI-based name detection
|
|
152
|
+
* [ ] Risk scoring system
|
|
153
|
+
* [ ] Browser extension
|
|
154
|
+
* [ ] API gateway version
|
|
155
|
+
* [ ] Encryption-based token vault
|
|
156
|
+
|
|
157
|
+
---
|
|
158
|
+
|
|
159
|
+
## ๐ค Contributing
|
|
160
|
+
|
|
161
|
+
Contributions are welcome!
|
|
162
|
+
|
|
163
|
+
* Fork the repo
|
|
164
|
+
* Create a feature branch
|
|
165
|
+
* Submit a pull request
|
|
166
|
+
|
|
167
|
+
---
|
|
168
|
+
|
|
169
|
+
## ๐ License
|
|
170
|
+
|
|
171
|
+
MIT License
|
|
172
|
+
|
|
173
|
+
---
|
|
174
|
+
|
|
175
|
+
## ๐จโ๐ป Author
|
|
176
|
+
|
|
177
|
+
Built by Nithish ๐
|
|
178
|
+
|
|
179
|
+
---
|
|
180
|
+
|
|
181
|
+
## ๐ Vision
|
|
182
|
+
|
|
183
|
+
> Making AI safe for everyone by protecting sensitive data at the source.
|
|
184
|
+
|
|
185
|
+
---
|
|
186
|
+
|
|
187
|
+
โญ If you like this project, consider giving it a star!
|
|
@@ -0,0 +1,178 @@
|
|
|
1
|
+
# ๐ PrivyLayer
|
|
2
|
+
|
|
3
|
+
> Privacy layer for AI systems โ protect sensitive data *before* it reaches AI.
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## ๐ Overview
|
|
8
|
+
|
|
9
|
+
**PrivyLayer** is a lightweight Python library that acts as a **security layer between user input and AI models**.
|
|
10
|
+
|
|
11
|
+
It detects sensitive information (PII), replaces it with secure placeholders, and restores it after the AI response โ ensuring **zero data exposure**.
|
|
12
|
+
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
## โก Why PrivyLayer?
|
|
16
|
+
|
|
17
|
+
Modern AI systems process user input directly, which may include:
|
|
18
|
+
|
|
19
|
+
* ๐ฑ Phone numbers
|
|
20
|
+
* ๐ง Emails
|
|
21
|
+
* ๐ชช Aadhaar / PAN
|
|
22
|
+
* ๐ฆ Bank details
|
|
23
|
+
|
|
24
|
+
This creates a **privacy risk**.
|
|
25
|
+
|
|
26
|
+
๐ PrivyLayer solves this by introducing a **reversible masking system**.
|
|
27
|
+
|
|
28
|
+
---
|
|
29
|
+
|
|
30
|
+
## ๐ง How It Works
|
|
31
|
+
|
|
32
|
+
```
|
|
33
|
+
User Input
|
|
34
|
+
โ
|
|
35
|
+
PrivyLayer (detect + mask)
|
|
36
|
+
โ
|
|
37
|
+
AI Model
|
|
38
|
+
โ
|
|
39
|
+
PrivyLayer (restore)
|
|
40
|
+
โ
|
|
41
|
+
Final Output
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
---
|
|
45
|
+
|
|
46
|
+
## โจ Features
|
|
47
|
+
|
|
48
|
+
* ๐ Detects sensitive data using regex patterns
|
|
49
|
+
* ๐ Reversible masking (no data loss)
|
|
50
|
+
* ๐ง Smart tokenization system
|
|
51
|
+
* โก Fast and lightweight
|
|
52
|
+
* ๐ฎ๐ณ India-specific PII support
|
|
53
|
+
* ๐ No data stored globally
|
|
54
|
+
|
|
55
|
+
---
|
|
56
|
+
|
|
57
|
+
## ๐ฆ Installation
|
|
58
|
+
|
|
59
|
+
```bash
|
|
60
|
+
pip install privylayer
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
---
|
|
64
|
+
|
|
65
|
+
## ๐ ๏ธ Usage
|
|
66
|
+
|
|
67
|
+
### ๐ Protect (Mask data)
|
|
68
|
+
|
|
69
|
+
```python
|
|
70
|
+
from privylayer import protect
|
|
71
|
+
|
|
72
|
+
text = "My phone is 9876543210 and email is test@gmail.com"
|
|
73
|
+
|
|
74
|
+
mask , context , seen = main.find_p(text)
|
|
75
|
+
|
|
76
|
+
print(mask)
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
### Output:
|
|
80
|
+
|
|
81
|
+
```
|
|
82
|
+
My phone is โฆPII_PHONE_x1โง and email is โฆPII_EMAIL_x2โง
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
---
|
|
86
|
+
|
|
87
|
+
### ๐ Restore (Unmask data)
|
|
88
|
+
|
|
89
|
+
```python
|
|
90
|
+
from privylayer import restore
|
|
91
|
+
|
|
92
|
+
original = restore(masked, context)
|
|
93
|
+
|
|
94
|
+
print(original)
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
### Output:
|
|
98
|
+
|
|
99
|
+
```
|
|
100
|
+
My phone is 9876543210 and email is test@gmail.com
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
---
|
|
104
|
+
|
|
105
|
+
## ๐งฉ Supported Data Types
|
|
106
|
+
|
|
107
|
+
* ๐ฑ Phone numbers (India)
|
|
108
|
+
* ๐ง Email addresses
|
|
109
|
+
* ๐ชช Aadhaar numbers
|
|
110
|
+
* ๐งพ PAN numbers
|
|
111
|
+
* ๐ฆ IFSC codes
|
|
112
|
+
|
|
113
|
+
---
|
|
114
|
+
|
|
115
|
+
## ๐ Token Format
|
|
116
|
+
|
|
117
|
+
PrivyLayer replaces sensitive data with structured tokens:
|
|
118
|
+
|
|
119
|
+
```
|
|
120
|
+
โฆPII_TYPE_IDโง
|
|
121
|
+
```
|
|
122
|
+
|
|
123
|
+
Example:
|
|
124
|
+
|
|
125
|
+
```
|
|
126
|
+
โฆPII_PHONE_x1โง
|
|
127
|
+
โฆPII_EMAIL_x2โง
|
|
128
|
+
```
|
|
129
|
+
|
|
130
|
+
---
|
|
131
|
+
|
|
132
|
+
## โ ๏ธ Limitations
|
|
133
|
+
|
|
134
|
+
* Regex-based detection (may not detect names accurately)
|
|
135
|
+
* Does not validate Aadhaar checksum (yet)
|
|
136
|
+
* Context must be preserved for restoration
|
|
137
|
+
|
|
138
|
+
---
|
|
139
|
+
|
|
140
|
+
## ๐ Roadmap
|
|
141
|
+
|
|
142
|
+
* [ ] AI-based name detection
|
|
143
|
+
* [ ] Risk scoring system
|
|
144
|
+
* [ ] Browser extension
|
|
145
|
+
* [ ] API gateway version
|
|
146
|
+
* [ ] Encryption-based token vault
|
|
147
|
+
|
|
148
|
+
---
|
|
149
|
+
|
|
150
|
+
## ๐ค Contributing
|
|
151
|
+
|
|
152
|
+
Contributions are welcome!
|
|
153
|
+
|
|
154
|
+
* Fork the repo
|
|
155
|
+
* Create a feature branch
|
|
156
|
+
* Submit a pull request
|
|
157
|
+
|
|
158
|
+
---
|
|
159
|
+
|
|
160
|
+
## ๐ License
|
|
161
|
+
|
|
162
|
+
MIT License
|
|
163
|
+
|
|
164
|
+
---
|
|
165
|
+
|
|
166
|
+
## ๐จโ๐ป Author
|
|
167
|
+
|
|
168
|
+
Built by Nithish ๐
|
|
169
|
+
|
|
170
|
+
---
|
|
171
|
+
|
|
172
|
+
## ๐ Vision
|
|
173
|
+
|
|
174
|
+
> Making AI safe for everyone by protecting sensitive data at the source.
|
|
175
|
+
|
|
176
|
+
---
|
|
177
|
+
|
|
178
|
+
โญ If you like this project, consider giving it a star!
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
from .core import mask, unmask
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import detect_patterns as dp
|
|
2
|
+
import uuid
|
|
3
|
+
|
|
4
|
+
uu_id = str(uuid.uuid1())
|
|
5
|
+
|
|
6
|
+
detect_patterns = {"Phone" : dp.pattern_num , "email": dp.pattern_email , "Aadhaar" : dp.pattern_aadhaar , "PAN" : dp.pattern_pan , "IFSC" : dp.pattern_ifsc}
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
def mask(prompt):
|
|
13
|
+
|
|
14
|
+
context = {}
|
|
15
|
+
seen = {}
|
|
16
|
+
counter = 1
|
|
17
|
+
value = ""
|
|
18
|
+
masked_txt = prompt
|
|
19
|
+
for i , k in detect_patterns.items():
|
|
20
|
+
matches = k.finditer(masked_txt)
|
|
21
|
+
|
|
22
|
+
for j in matches:
|
|
23
|
+
value = j.group()
|
|
24
|
+
|
|
25
|
+
if value in seen:
|
|
26
|
+
token = seen[value]
|
|
27
|
+
|
|
28
|
+
else:
|
|
29
|
+
token_id = f"x_{counter}"
|
|
30
|
+
token = f"โฆPII_{i}_{token_id}โง"
|
|
31
|
+
|
|
32
|
+
context[token] = value
|
|
33
|
+
seen[value] = token
|
|
34
|
+
counter+=1
|
|
35
|
+
masked_txt = masked_txt.replace(value , token)
|
|
36
|
+
|
|
37
|
+
|
|
38
|
+
return masked_txt , context , seen
|
|
39
|
+
|
|
40
|
+
def unmask(masked_txt, context):
|
|
41
|
+
for token, value in context.items():
|
|
42
|
+
masked_txt = masked_txt.replace(token, value)
|
|
43
|
+
|
|
44
|
+
unmask_txt = masked_txt
|
|
45
|
+
|
|
46
|
+
return unmask_txt
|
|
47
|
+
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import re
|
|
2
|
+
|
|
3
|
+
pattern_num = re.compile(r"\b[5-9]\d{9}\b")
|
|
4
|
+
pattern_email = re.compile(r"[a-zA-Z0-9.%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]+")
|
|
5
|
+
pattern_aadhaar = re.compile(r"\b[1-9]\d{11}\b")
|
|
6
|
+
pattern_pan = re.compile(r"\b[A-Z]{5}\d{4}[A-Z]\b")
|
|
7
|
+
pattern_ifsc = re.compile(r"\b[A-Z]{4}0\d{6}\b")
|
|
@@ -0,0 +1,187 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: privylayer
|
|
3
|
+
Version: 0.1.0
|
|
4
|
+
Summary: Privacy layer for AI prompts
|
|
5
|
+
Author: Nithish
|
|
6
|
+
License: MIT
|
|
7
|
+
Requires-Python: >=3.8
|
|
8
|
+
Description-Content-Type: text/markdown
|
|
9
|
+
|
|
10
|
+
# ๐ PrivyLayer
|
|
11
|
+
|
|
12
|
+
> Privacy layer for AI systems โ protect sensitive data *before* it reaches AI.
|
|
13
|
+
|
|
14
|
+
---
|
|
15
|
+
|
|
16
|
+
## ๐ Overview
|
|
17
|
+
|
|
18
|
+
**PrivyLayer** is a lightweight Python library that acts as a **security layer between user input and AI models**.
|
|
19
|
+
|
|
20
|
+
It detects sensitive information (PII), replaces it with secure placeholders, and restores it after the AI response โ ensuring **zero data exposure**.
|
|
21
|
+
|
|
22
|
+
---
|
|
23
|
+
|
|
24
|
+
## โก Why PrivyLayer?
|
|
25
|
+
|
|
26
|
+
Modern AI systems process user input directly, which may include:
|
|
27
|
+
|
|
28
|
+
* ๐ฑ Phone numbers
|
|
29
|
+
* ๐ง Emails
|
|
30
|
+
* ๐ชช Aadhaar / PAN
|
|
31
|
+
* ๐ฆ Bank details
|
|
32
|
+
|
|
33
|
+
This creates a **privacy risk**.
|
|
34
|
+
|
|
35
|
+
๐ PrivyLayer solves this by introducing a **reversible masking system**.
|
|
36
|
+
|
|
37
|
+
---
|
|
38
|
+
|
|
39
|
+
## ๐ง How It Works
|
|
40
|
+
|
|
41
|
+
```
|
|
42
|
+
User Input
|
|
43
|
+
โ
|
|
44
|
+
PrivyLayer (detect + mask)
|
|
45
|
+
โ
|
|
46
|
+
AI Model
|
|
47
|
+
โ
|
|
48
|
+
PrivyLayer (restore)
|
|
49
|
+
โ
|
|
50
|
+
Final Output
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
---
|
|
54
|
+
|
|
55
|
+
## โจ Features
|
|
56
|
+
|
|
57
|
+
* ๐ Detects sensitive data using regex patterns
|
|
58
|
+
* ๐ Reversible masking (no data loss)
|
|
59
|
+
* ๐ง Smart tokenization system
|
|
60
|
+
* โก Fast and lightweight
|
|
61
|
+
* ๐ฎ๐ณ India-specific PII support
|
|
62
|
+
* ๐ No data stored globally
|
|
63
|
+
|
|
64
|
+
---
|
|
65
|
+
|
|
66
|
+
## ๐ฆ Installation
|
|
67
|
+
|
|
68
|
+
```bash
|
|
69
|
+
pip install privylayer
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
---
|
|
73
|
+
|
|
74
|
+
## ๐ ๏ธ Usage
|
|
75
|
+
|
|
76
|
+
### ๐ Protect (Mask data)
|
|
77
|
+
|
|
78
|
+
```python
|
|
79
|
+
from privylayer import protect
|
|
80
|
+
|
|
81
|
+
text = "My phone is 9876543210 and email is test@gmail.com"
|
|
82
|
+
|
|
83
|
+
mask , context , seen = main.find_p(text)
|
|
84
|
+
|
|
85
|
+
print(mask)
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
### Output:
|
|
89
|
+
|
|
90
|
+
```
|
|
91
|
+
My phone is โฆPII_PHONE_x1โง and email is โฆPII_EMAIL_x2โง
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
---
|
|
95
|
+
|
|
96
|
+
### ๐ Restore (Unmask data)
|
|
97
|
+
|
|
98
|
+
```python
|
|
99
|
+
from privylayer import restore
|
|
100
|
+
|
|
101
|
+
original = restore(masked, context)
|
|
102
|
+
|
|
103
|
+
print(original)
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
### Output:
|
|
107
|
+
|
|
108
|
+
```
|
|
109
|
+
My phone is 9876543210 and email is test@gmail.com
|
|
110
|
+
```
|
|
111
|
+
|
|
112
|
+
---
|
|
113
|
+
|
|
114
|
+
## ๐งฉ Supported Data Types
|
|
115
|
+
|
|
116
|
+
* ๐ฑ Phone numbers (India)
|
|
117
|
+
* ๐ง Email addresses
|
|
118
|
+
* ๐ชช Aadhaar numbers
|
|
119
|
+
* ๐งพ PAN numbers
|
|
120
|
+
* ๐ฆ IFSC codes
|
|
121
|
+
|
|
122
|
+
---
|
|
123
|
+
|
|
124
|
+
## ๐ Token Format
|
|
125
|
+
|
|
126
|
+
PrivyLayer replaces sensitive data with structured tokens:
|
|
127
|
+
|
|
128
|
+
```
|
|
129
|
+
โฆPII_TYPE_IDโง
|
|
130
|
+
```
|
|
131
|
+
|
|
132
|
+
Example:
|
|
133
|
+
|
|
134
|
+
```
|
|
135
|
+
โฆPII_PHONE_x1โง
|
|
136
|
+
โฆPII_EMAIL_x2โง
|
|
137
|
+
```
|
|
138
|
+
|
|
139
|
+
---
|
|
140
|
+
|
|
141
|
+
## โ ๏ธ Limitations
|
|
142
|
+
|
|
143
|
+
* Regex-based detection (may not detect names accurately)
|
|
144
|
+
* Does not validate Aadhaar checksum (yet)
|
|
145
|
+
* Context must be preserved for restoration
|
|
146
|
+
|
|
147
|
+
---
|
|
148
|
+
|
|
149
|
+
## ๐ Roadmap
|
|
150
|
+
|
|
151
|
+
* [ ] AI-based name detection
|
|
152
|
+
* [ ] Risk scoring system
|
|
153
|
+
* [ ] Browser extension
|
|
154
|
+
* [ ] API gateway version
|
|
155
|
+
* [ ] Encryption-based token vault
|
|
156
|
+
|
|
157
|
+
---
|
|
158
|
+
|
|
159
|
+
## ๐ค Contributing
|
|
160
|
+
|
|
161
|
+
Contributions are welcome!
|
|
162
|
+
|
|
163
|
+
* Fork the repo
|
|
164
|
+
* Create a feature branch
|
|
165
|
+
* Submit a pull request
|
|
166
|
+
|
|
167
|
+
---
|
|
168
|
+
|
|
169
|
+
## ๐ License
|
|
170
|
+
|
|
171
|
+
MIT License
|
|
172
|
+
|
|
173
|
+
---
|
|
174
|
+
|
|
175
|
+
## ๐จโ๐ป Author
|
|
176
|
+
|
|
177
|
+
Built by Nithish ๐
|
|
178
|
+
|
|
179
|
+
---
|
|
180
|
+
|
|
181
|
+
## ๐ Vision
|
|
182
|
+
|
|
183
|
+
> Making AI safe for everyone by protecting sensitive data at the source.
|
|
184
|
+
|
|
185
|
+
---
|
|
186
|
+
|
|
187
|
+
โญ If you like this project, consider giving it a star!
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
privylayer
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
[project]
|
|
2
|
+
name = "privylayer"
|
|
3
|
+
version = "0.1.0"
|
|
4
|
+
description = "Privacy layer for AI prompts"
|
|
5
|
+
authors = [{ name="Nithish" }]
|
|
6
|
+
readme = "README.md"
|
|
7
|
+
license = { text = "MIT" }
|
|
8
|
+
requires-python = ">=3.8"
|
|
9
|
+
|
|
10
|
+
[build-system]
|
|
11
|
+
requires = ["setuptools", "wheel"]
|
|
12
|
+
build-backend = "setuptools.build_meta"
|