FOL-Search commited on
Commit
592df58
·
verified ·
1 Parent(s): 0a6d913

Create app.py

Browse files
Files changed (1) hide show
  1. app.py +51 -0
app.py ADDED
@@ -0,0 +1,51 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import os
2
+ import gradio as gr
3
+ import tempfile
4
+ from gradio_client import Client, handle_file
5
+ import base64
6
+
7
+ BACKEND = os.getenv("BACKEND")
8
+ JS2 = os.getenv("JS2")
9
+ MAIN_HTML = os.getenv("MAIN_HTML")
10
+ MAIN_JS = os.getenv("MAIN_JS")
11
+ HEAD_HTML = os.getenv("HEAD_HTML")
12
+ CSS = os.getenv("CSS")
13
+
14
+ backend = Client(BACKEND)
15
+
16
+ def base64_to_image(base64_str):
17
+ if ";base64," in base64_str:
18
+ base64_str = base64_str.split(";base64,")[1].strip()
19
+ return base64.b64decode(base64_str + '=' * (-len(base64_str) % 4))
20
+
21
+ def search_image(base64_image):
22
+ try:
23
+ with tempfile.NamedTemporaryFile(delete=False, suffix=".png") as temp_file:
24
+ temp_file.write(base64_to_image(base64_image))
25
+ file = temp_file.name
26
+ handle_file(file)
27
+ except Exception as e:
28
+ print(e)
29
+ gr.Info("Please upload an image file.")
30
+ return []
31
+
32
+ result_text = backend.predict(
33
+ file=handle_file(file),
34
+ token="",
35
+ api_name="/search_face"
36
+ )
37
+ os.remove(file)
38
+ return result_text
39
+
40
+ with gr.Blocks(css=CSS, head=HEAD_HTML, title="DeepSeek? FaceSeek!") as iface:
41
+ html = gr.HTML(MAIN_HTML)
42
+ js_txt = gr.Textbox(label="Base64-Image", elem_id="base64_image", visible=False)
43
+ out_txt = gr.Textbox(label="Result", visible=False)
44
+
45
+ search_button = gr.Button("🔍 Free Face Search", elem_id="search_btn", visible=False)
46
+
47
+ search_button.click(search_image, inputs=js_txt, outputs=out_txt).success(None, inputs=[out_txt], js=JS2)
48
+ iface.load(None, inputs=None, outputs=html, js=MAIN_JS)
49
+
50
+ # Launch the interface
51
+ iface.launch()