Spaces:
Sleeping
Sleeping
chore: add key gen
Browse files- app.py +21 -4
- utils_demo.py +1 -1
app.py
CHANGED
@@ -9,6 +9,7 @@ import pandas as pd
|
|
9 |
from fhe_anonymizer import FHEAnonymizer
|
10 |
from openai import OpenAI
|
11 |
from utils_demo import *
|
|
|
12 |
|
13 |
ORIGINAL_DOCUMENT = read_txt(ORIGINAL_FILE_PATH).split("\n\n")
|
14 |
ANONYMIZED_DOCUMENT = read_txt(ANONYMIZED_FILE_PATH)
|
@@ -40,9 +41,27 @@ def key_gen_fn() -> Dict:
|
|
40 |
"""
|
41 |
print("Key Gen..")
|
42 |
|
43 |
-
|
|
|
|
|
44 |
|
45 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
46 |
|
47 |
if not evaluation_key_path.is_file():
|
48 |
error_message = (
|
@@ -244,8 +263,6 @@ with demo:
|
|
244 |
|
245 |
gr.Markdown("## Step 2: Private document")
|
246 |
|
247 |
-
|
248 |
-
|
249 |
with gr.Row():
|
250 |
with gr.Column():
|
251 |
gr.Markdown("**Original document:**")
|
|
|
9 |
from fhe_anonymizer import FHEAnonymizer
|
10 |
from openai import OpenAI
|
11 |
from utils_demo import *
|
12 |
+
from concrete.ml.deployment import FHEModelClient
|
13 |
|
14 |
ORIGINAL_DOCUMENT = read_txt(ORIGINAL_FILE_PATH).split("\n\n")
|
15 |
ANONYMIZED_DOCUMENT = read_txt(ANONYMIZED_FILE_PATH)
|
|
|
41 |
"""
|
42 |
print("Key Gen..")
|
43 |
|
44 |
+
# Generate a random user ID
|
45 |
+
user_id = np.random.randint(0, 2**32)
|
46 |
+
print(f"Your user ID is: {user_id}....")
|
47 |
|
48 |
+
client = FHEModelClient(path_dir=DEPLOYMENT_DIR, key_dir=KEYS_DIR / f"{user_id}")
|
49 |
+
client.load()
|
50 |
+
|
51 |
+
# Creates the private and evaluation keys on the client side
|
52 |
+
client.generate_private_and_evaluation_keys()
|
53 |
+
|
54 |
+
# Get the serialized evaluation keys
|
55 |
+
serialized_evaluation_keys = client.get_serialized_evaluation_keys()
|
56 |
+
assert isinstance(serialized_evaluation_keys, bytes)
|
57 |
+
|
58 |
+
# Save the evaluation key
|
59 |
+
evaluation_key_path = KEYS_DIR / f"{user_id}/evaluation_key"
|
60 |
+
|
61 |
+
with evaluation_key_path.open("wb") as f:
|
62 |
+
f.write(serialized_evaluation_keys)
|
63 |
+
|
64 |
+
# anonymizer.generate_key()
|
65 |
|
66 |
if not evaluation_key_path.is_file():
|
67 |
error_message = (
|
|
|
263 |
|
264 |
gr.Markdown("## Step 2: Private document")
|
265 |
|
|
|
|
|
266 |
with gr.Row():
|
267 |
with gr.Column():
|
268 |
gr.Markdown("**Original document:**")
|
utils_demo.py
CHANGED
@@ -25,7 +25,7 @@ CURRENT_DIR = Path(__file__).parent
|
|
25 |
DATA_PATH = CURRENT_DIR / "files"
|
26 |
LOGREG_MODEL_PATH = CURRENT_DIR / "models" / "cml_logreg.model"
|
27 |
DEPLOYMENT_DIR = CURRENT_DIR / "deployment"
|
28 |
-
KEYS_DIR = DEPLOYMENT_DIR / "
|
29 |
|
30 |
ORIGINAL_FILE_PATH = DATA_PATH / "original_document.txt"
|
31 |
ANONYMIZED_FILE_PATH = DATA_PATH / "anonymized_document.txt"
|
|
|
25 |
DATA_PATH = CURRENT_DIR / "files"
|
26 |
LOGREG_MODEL_PATH = CURRENT_DIR / "models" / "cml_logreg.model"
|
27 |
DEPLOYMENT_DIR = CURRENT_DIR / "deployment"
|
28 |
+
KEYS_DIR = DEPLOYMENT_DIR / "fhe_keys"
|
29 |
|
30 |
ORIGINAL_FILE_PATH = DATA_PATH / "original_document.txt"
|
31 |
ANONYMIZED_FILE_PATH = DATA_PATH / "anonymized_document.txt"
|