kcelia commited on
Commit
ac6aca8
1 Parent(s): af10795

chore: update

Browse files
Files changed (1) hide show
  1. app.py +27 -30
app.py CHANGED
@@ -115,12 +115,12 @@ def get_features_fn(*checked_symptoms: Tuple[str]) -> Dict:
115
  print("Provide at least 5 symptoms.")
116
  return {
117
  error_box1: gr.update(visible=True, value="⚠️ Provide at least 5 symptoms"),
118
- user_vect_box1: None,
119
  }
120
 
121
  return {
122
  error_box1: gr.update(visible=False),
123
- user_vect_box1: gr.update(
124
  visible=False,
125
  value=get_user_symptoms_from_checkboxgroup(pretty_print(checked_symptoms)),
126
  ),
@@ -217,7 +217,7 @@ def encrypt_fn(user_symptoms: np.ndarray, user_id: str) -> None:
217
 
218
  return {
219
  error_box3: gr.update(visible=False),
220
- user_vect_box2: gr.update(visible=True, value=user_symptoms),
221
  enc_vect_box: gr.update(visible=True, value=encrypted_quantized_user_symptoms_shorten_hex),
222
  }
223
 
@@ -418,7 +418,7 @@ def decrypt_fn(
418
  "- the server processed the encrypted data \n"
419
  "- the Client received the data from the Server before decrypting the prediction",
420
  ),
421
- decrypt_target_box: None,
422
  }
423
 
424
  # Load the encrypted output as bytes
@@ -456,7 +456,7 @@ def decrypt_fn(
456
 
457
  return {
458
  error_box7: gr.update(visible=False),
459
- decrypt_target_box: out,
460
  submit_btn: gr.update(value="Submit")
461
  }
462
 
@@ -467,10 +467,10 @@ def reset_fn():
467
  clean_directory()
468
 
469
  return {
470
- user_vect_box2: None,
471
  submit_btn: gr.update(value="Submit"),
472
  user_id_box: gr.update(visible=False, value=None, interactive=False),
473
- user_vect_box1: None,
474
  default_symptoms: gr.update(visible=True, value=None),
475
  disease_box: gr.update(visible=True, value=None),
476
  quant_vect_box: gr.update(visible=False, value=None, interactive=False),
@@ -478,7 +478,7 @@ def reset_fn():
478
  key_box: gr.update(visible=True, value=None, interactive=False),
479
  key_len_box: gr.update(visible=False, value=None, interactive=False),
480
  fhe_execution_time_box: gr.update(visible=True, value=None, interactive=False),
481
- decrypt_target_box: None,
482
  error_box7: gr.update(visible=False),
483
  error_box1: gr.update(visible=False),
484
  error_box2: gr.update(visible=False),
@@ -572,7 +572,7 @@ if __name__ == "__main__":
572
  label="Related Symptoms:", interactive=False, visible=False,
573
  )
574
  # User vector symptoms encoded in oneHot representation
575
- user_vect_box1 = gr.Textbox(visible=False)
576
  # Submit botton
577
  submit_btn = gr.Button("Submit")
578
  # Clear botton
@@ -584,7 +584,7 @@ if __name__ == "__main__":
584
  submit_btn.click(
585
  fn=get_features_fn,
586
  inputs=[*check_boxes],
587
- outputs=[user_vect_box1, error_box1, submit_btn],
588
  )
589
 
590
  # ------------------------- Step 2 -------------------------
@@ -607,7 +607,7 @@ if __name__ == "__main__":
607
 
608
  gen_key_btn.click(
609
  key_gen_fn,
610
- inputs=user_vect_box1,
611
  outputs=[
612
  key_box,
613
  user_id_box,
@@ -624,15 +624,15 @@ if __name__ == "__main__":
624
 
625
  with gr.Row():
626
  with gr.Column():
627
- user_vect_box2 = gr.Textbox(label="User Symptoms Vector:", max_lines=10)
628
  with gr.Column():
629
  enc_vect_box = gr.Textbox(label="Encrypted Vector:", max_lines=10)
630
 
631
  encrypt_btn.click(
632
  encrypt_fn,
633
- inputs=[user_vect_box1, user_id_box],
634
  outputs=[
635
- user_vect_box2,
636
  enc_vect_box,
637
  error_box3,
638
  ],
@@ -651,7 +651,7 @@ if __name__ == "__main__":
651
 
652
  send_input_btn.click(
653
  send_input_fn,
654
- inputs=[user_id_box, user_vect_box1],
655
  outputs=[error_box4, srv_resp_send_data_box],
656
  )
657
 
@@ -666,10 +666,7 @@ if __name__ == "__main__":
666
 
667
  run_fhe_btn = gr.Button("Run the FHE evaluation")
668
  error_box5 = gr.Textbox(label="Error ❌", visible=False)
669
- fhe_execution_time_box = gr.Textbox(
670
- label="Total FHE Execution Time:", interactive=False, visible=True
671
- )
672
-
673
  run_fhe_btn.click(
674
  run_fhe_fn,
675
  inputs=[user_id_box],
@@ -684,6 +681,7 @@ if __name__ == "__main__":
684
 
685
  error_box6 = gr.Textbox(label="Error ❌", visible=False)
686
 
 
687
  with gr.Row().style(equal_height=True):
688
  with gr.Column(scale=4):
689
  get_output_btn = gr.Button("Get data")
@@ -694,21 +692,20 @@ if __name__ == "__main__":
694
 
695
  get_output_btn.click(
696
  get_output_fn,
697
- inputs=[user_id_box, user_vect_box1],
698
  outputs=[srv_resp_retrieve_data_box, error_box6],
699
  )
700
 
 
701
  gr.Markdown("### Decrypt the output")
702
-
703
- decrypt_target_btn = gr.Button("Decrypt the output using the private secret key")
704
-
705
  error_box7 = gr.Textbox(label="Error ❌", visible=False)
706
- decrypt_target_box = gr.Textbox(label="Decrypted Output:", interactive=False)
707
 
708
- decrypt_target_btn.click(
709
  decrypt_fn,
710
- inputs=[user_id_box, user_vect_box1, *check_boxes],
711
- outputs=[decrypt_target_box, error_box7, submit_btn],
712
  )
713
 
714
  # ------------------------- End -------------------------
@@ -729,8 +726,8 @@ if __name__ == "__main__":
729
  clear_button.click(
730
  reset_fn,
731
  outputs=[
732
- user_vect_box2,
733
- user_vect_box1,
734
  submit_btn,
735
  # disease_box,
736
  error_box1,
@@ -750,7 +747,7 @@ if __name__ == "__main__":
750
  srv_resp_send_data_box,
751
  srv_resp_retrieve_data_box,
752
  fhe_execution_time_box,
753
- decrypt_target_box,
754
  *check_boxes,
755
  ],
756
  )
 
115
  print("Provide at least 5 symptoms.")
116
  return {
117
  error_box1: gr.update(visible=True, value="⚠️ Provide at least 5 symptoms"),
118
+ one_hot_vector: None,
119
  }
120
 
121
  return {
122
  error_box1: gr.update(visible=False),
123
+ one_hot_vector: gr.update(
124
  visible=False,
125
  value=get_user_symptoms_from_checkboxgroup(pretty_print(checked_symptoms)),
126
  ),
 
217
 
218
  return {
219
  error_box3: gr.update(visible=False),
220
+ one_hot_vector_box: gr.update(visible=True, value=user_symptoms),
221
  enc_vect_box: gr.update(visible=True, value=encrypted_quantized_user_symptoms_shorten_hex),
222
  }
223
 
 
418
  "- the server processed the encrypted data \n"
419
  "- the Client received the data from the Server before decrypting the prediction",
420
  ),
421
+ decrypt_box: None,
422
  }
423
 
424
  # Load the encrypted output as bytes
 
456
 
457
  return {
458
  error_box7: gr.update(visible=False),
459
+ decrypt_box: out,
460
  submit_btn: gr.update(value="Submit")
461
  }
462
 
 
467
  clean_directory()
468
 
469
  return {
470
+ one_hot_vector_box: None,
471
  submit_btn: gr.update(value="Submit"),
472
  user_id_box: gr.update(visible=False, value=None, interactive=False),
473
+ one_hot_vector: None,
474
  default_symptoms: gr.update(visible=True, value=None),
475
  disease_box: gr.update(visible=True, value=None),
476
  quant_vect_box: gr.update(visible=False, value=None, interactive=False),
 
478
  key_box: gr.update(visible=True, value=None, interactive=False),
479
  key_len_box: gr.update(visible=False, value=None, interactive=False),
480
  fhe_execution_time_box: gr.update(visible=True, value=None, interactive=False),
481
+ decrypt_box: None,
482
  error_box7: gr.update(visible=False),
483
  error_box1: gr.update(visible=False),
484
  error_box2: gr.update(visible=False),
 
572
  label="Related Symptoms:", interactive=False, visible=False,
573
  )
574
  # User vector symptoms encoded in oneHot representation
575
+ one_hot_vector = gr.Textbox(visible=False)
576
  # Submit botton
577
  submit_btn = gr.Button("Submit")
578
  # Clear botton
 
584
  submit_btn.click(
585
  fn=get_features_fn,
586
  inputs=[*check_boxes],
587
+ outputs=[one_hot_vector, error_box1, submit_btn],
588
  )
589
 
590
  # ------------------------- Step 2 -------------------------
 
607
 
608
  gen_key_btn.click(
609
  key_gen_fn,
610
+ inputs=one_hot_vector,
611
  outputs=[
612
  key_box,
613
  user_id_box,
 
624
 
625
  with gr.Row():
626
  with gr.Column():
627
+ one_hot_vector_box = gr.Textbox(label="User Symptoms Vector:", max_lines=10)
628
  with gr.Column():
629
  enc_vect_box = gr.Textbox(label="Encrypted Vector:", max_lines=10)
630
 
631
  encrypt_btn.click(
632
  encrypt_fn,
633
+ inputs=[one_hot_vector, user_id_box],
634
  outputs=[
635
+ one_hot_vector_box,
636
  enc_vect_box,
637
  error_box3,
638
  ],
 
651
 
652
  send_input_btn.click(
653
  send_input_fn,
654
+ inputs=[user_id_box, one_hot_vector],
655
  outputs=[error_box4, srv_resp_send_data_box],
656
  )
657
 
 
666
 
667
  run_fhe_btn = gr.Button("Run the FHE evaluation")
668
  error_box5 = gr.Textbox(label="Error ❌", visible=False)
669
+ fhe_execution_time_box = gr.Textbox(label="Total FHE Execution Time:", visible=True)
 
 
 
670
  run_fhe_btn.click(
671
  run_fhe_fn,
672
  inputs=[user_id_box],
 
681
 
682
  error_box6 = gr.Textbox(label="Error ❌", visible=False)
683
 
684
+ # Step 4.1: Data transmission
685
  with gr.Row().style(equal_height=True):
686
  with gr.Column(scale=4):
687
  get_output_btn = gr.Button("Get data")
 
692
 
693
  get_output_btn.click(
694
  get_output_fn,
695
+ inputs=[user_id_box, one_hot_vector],
696
  outputs=[srv_resp_retrieve_data_box, error_box6],
697
  )
698
 
699
+ # Step 4.1: Data transmission
700
  gr.Markdown("### Decrypt the output")
701
+ decrypt_btn = gr.Button("Decrypt the output using the private secret key")
 
 
702
  error_box7 = gr.Textbox(label="Error ❌", visible=False)
703
+ decrypt_box = gr.Textbox(label="Decrypted Output:", interactive=False)
704
 
705
+ decrypt_btn.click(
706
  decrypt_fn,
707
+ inputs=[user_id_box, one_hot_vector, *check_boxes],
708
+ outputs=[decrypt_box, error_box7, submit_btn],
709
  )
710
 
711
  # ------------------------- End -------------------------
 
726
  clear_button.click(
727
  reset_fn,
728
  outputs=[
729
+ one_hot_vector_box,
730
+ one_hot_vector,
731
  submit_btn,
732
  # disease_box,
733
  error_box1,
 
747
  srv_resp_send_data_box,
748
  srv_resp_retrieve_data_box,
749
  fhe_execution_time_box,
750
+ decrypt_box,
751
  *check_boxes,
752
  ],
753
  )