Hobson versae commited on
Commit
459027d
0 Parent(s):

Duplicate from versae/gradio-blocks-rest-api

Browse files

Co-authored-by: Javier de la Rosa <versae@users.noreply.huggingface.co>

Files changed (3) hide show
  1. .gitattributes +27 -0
  2. README.md +14 -0
  3. app.py +68 -0
.gitattributes ADDED
@@ -0,0 +1,27 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ *.7z filter=lfs diff=lfs merge=lfs -text
2
+ *.arrow filter=lfs diff=lfs merge=lfs -text
3
+ *.bin filter=lfs diff=lfs merge=lfs -text
4
+ *.bz2 filter=lfs diff=lfs merge=lfs -text
5
+ *.ftz filter=lfs diff=lfs merge=lfs -text
6
+ *.gz filter=lfs diff=lfs merge=lfs -text
7
+ *.h5 filter=lfs diff=lfs merge=lfs -text
8
+ *.joblib filter=lfs diff=lfs merge=lfs -text
9
+ *.lfs.* filter=lfs diff=lfs merge=lfs -text
10
+ *.model filter=lfs diff=lfs merge=lfs -text
11
+ *.msgpack filter=lfs diff=lfs merge=lfs -text
12
+ *.onnx filter=lfs diff=lfs merge=lfs -text
13
+ *.ot filter=lfs diff=lfs merge=lfs -text
14
+ *.parquet filter=lfs diff=lfs merge=lfs -text
15
+ *.pb filter=lfs diff=lfs merge=lfs -text
16
+ *.pt filter=lfs diff=lfs merge=lfs -text
17
+ *.pth filter=lfs diff=lfs merge=lfs -text
18
+ *.rar filter=lfs diff=lfs merge=lfs -text
19
+ saved_model/**/* filter=lfs diff=lfs merge=lfs -text
20
+ *.tar.* filter=lfs diff=lfs merge=lfs -text
21
+ *.tflite filter=lfs diff=lfs merge=lfs -text
22
+ *.tgz filter=lfs diff=lfs merge=lfs -text
23
+ *.wasm filter=lfs diff=lfs merge=lfs -text
24
+ *.xz filter=lfs diff=lfs merge=lfs -text
25
+ *.zip filter=lfs diff=lfs merge=lfs -text
26
+ *.zstandard filter=lfs diff=lfs merge=lfs -text
27
+ *tfevents* filter=lfs diff=lfs merge=lfs -text
README.md ADDED
@@ -0,0 +1,14 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ---
2
+ title: Gradio Blocks Rest Api
3
+ emoji: 🐨
4
+ colorFrom: pink
5
+ colorTo: green
6
+ sdk: gradio
7
+ sdk_version: 3.0.2
8
+ app_file: app.py
9
+ pinned: false
10
+ license: apache-2.0
11
+ duplicated_from: versae/gradio-blocks-rest-api
12
+ ---
13
+
14
+ Check out the configuration reference at https://huggingface.co/docs/hub/spaces#reference
app.py ADDED
@@ -0,0 +1,68 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import gradio as gr
2
+ import inspect
3
+ from gradio import routes
4
+ from typing import List, Type
5
+
6
+ # Monkey patch
7
+ def get_types(cls_set: List[Type], component: str):
8
+ docset = []
9
+ types = []
10
+ if component == "input":
11
+ for cls in cls_set:
12
+ doc = inspect.getdoc(cls)
13
+ doc_lines = doc.split("\n")
14
+ docset.append(doc_lines[1].split(":")[-1])
15
+ types.append(doc_lines[1].split(")")[0].split("(")[-1])
16
+ else:
17
+ for cls in cls_set:
18
+ doc = inspect.getdoc(cls)
19
+ doc_lines = doc.split("\n")
20
+ docset.append(doc_lines[-1].split(":")[-1])
21
+ types.append(doc_lines[-1].split(")")[0].split("(")[-1])
22
+ return docset, types
23
+ routes.get_types = get_types
24
+
25
+ # App code
26
+ def hallo(x):
27
+ return f"Hallo, {x}"
28
+
29
+ def hadet(x):
30
+ return f"Hadet, {x}"
31
+
32
+ with gr.Blocks() as blk:
33
+ gr.Markdown("# Gradio Blocks (3.0) with REST API")
34
+ t = gr.Textbox()
35
+ b = gr.Button("Hallo")
36
+ a = gr.Button("Hadet")
37
+ o = gr.Textbox()
38
+ b.click(hallo, inputs=[t], outputs=[o])
39
+ a.click(hadet, inputs=[t], outputs=[o])
40
+ gr.Markdown("""
41
+ ## API
42
+ Can select which function to use by passing in `fn_index`:
43
+ ```python
44
+ import requests
45
+
46
+ requests.post(
47
+ url="https://hf.space/embed/versae/gradio-blocks-rest-api/+/api/predict/", json={"data": ["Jessie"], "fn_index": 0}
48
+ ).json()
49
+ requests.post(
50
+ url="https://hf.space/embed/versae/gradio-blocks-rest-api/+/api/predict/", json={"data": ["Jessie"], "fn_index": 1}
51
+ ).json()
52
+ ```
53
+
54
+ Or using cURL
55
+
56
+ ```
57
+ $ curl -X POST https://hf.space/embed/versae/gradio-blocks-rest-api/+/api/predict/ -H 'Content-Type: application/json' -d '{"data": ["Jessie"], "fn_index": 0}'
58
+ $ curl -X POST https://hf.space/embed/versae/gradio-blocks-rest-api/+/api/predict/ -H 'Content-Type: application/json' -d '{"data": ["Jessie"], "fn_index": 1}'
59
+ ```""")
60
+
61
+ ifa = gr.Interface(lambda: None, inputs=[t], outputs=[o])
62
+
63
+ blk.input_components = ifa.input_components
64
+ blk.output_components = ifa.output_components
65
+ blk.examples = None
66
+ blk.predict_durations = []
67
+
68
+ bapp = blk.launch()