File size: 2,584 Bytes
c942010
 
 
 
 
 
 
fcf7272
c942010
 
 
fcf7272
c942010
fcf7272
 
c942010
 
 
6d17ad7
ba72ecb
6d17ad7
 
 
 
 
 
ba72ecb
6d17ad7
c942010
ba72ecb
 
 
c942010
 
 
 
ba72ecb
c942010
 
 
 
 
 
ba72ecb
 
9ad6428
ba72ecb
6d17ad7
c942010
 
 
 
 
 
 
 
 
 
 
9ad6428
ba72ecb
 
 
 
9ad6428
ba72ecb
9ad6428
 
ba72ecb
 
 
 
c942010
 
 
 
ba72ecb
c942010
6d17ad7
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
import gradio as gr
from gradio_client import Client


DEBUG_MODE = True

MESAGE_HEADER = """
# 🔌👩🏻‍💻  2nd API Demo (Client component)  🔌👩🏻‍💻

Welcome to my simple demonstration of the gradio potential as an API.

This is an evolution of the first API demo. (Nuno-Tome/aPI_demo_client)

It is made of 2 components: An client that requests to a introduced server. This server should respont whith a JSON to a given text.
* Exemple Server: 🔌🌐 [Nuno-Tome/API_demo_server](Nuno-Tome/aPI_demo_server)

**Just write you message and watch it be returned by the server.**   
"""

INPUT_TEXT_DEFAULT = """
Não sou nada.
Nunca serei nada.
Não posso querer ser nada.
À parte isso, tenho em mim todos os sonhos do mundo.
(...)

- Alvaro de Campos, in Tabacaria (Fernando Pessoa)
"""

INPUT_SERVER_DEFAULT = "Nuno-Tome/API_demo_server"


def get_bmc_markdown():
    bmc_link = "https://www.buymeacoffee.com/nuno.tome"
    image_url = "https://helloimjessa.files.wordpress.com/2021/06/bmc-button.png" # Image URL
    image_size = "150" # Image size
    image_url_full = image_url + "?w=" + image_size
    image_link_markdown = f"[![Buy Me a Coffee]({image_url_full})]({bmc_link})"
    full_text = """
                ### If you like this project, please consider liking it or buying me a coffee. It will help me to keep working on this and other projects. Thank you!
                # """ + image_link_markdown
    return full_text

def send_request(input_text, input_server):
    server = Client(input_server) 
    result = server.predict(
        input_text,
        api_name = "/predict"
    )
    return result

with gr.Blocks() as demo:
  
    gr.Markdown(MESAGE_HEADER)
    gr.DuplicateButton()
    gr.Markdown(get_bmc_markdown())
     
    with gr.Row():
        with gr.Column():
            input_text = gr.TextArea(
                placeholder = INPUT_TEXT_DEFAULT,  
                label =  "**Type your message:**",
                lines = 8, 
                value = INPUT_TEXT_DEFAULT
                )
                
            input_server = gr.Textbox(
                lines = 1, 
                placeholder = INPUT_SERVER_DEFAULT, 
                label =  "**Type the server to call:**",
                value= INPUT_SERVER_DEFAULT
                )
        with gr.Column():
            gr.Markdown("**This is your gradio api request response:**")
            out = gr.JSON()  
    btn = gr.Button("Send request to server")
    btn.click(fn = send_request, inputs = [input_text, input_server], outputs = out)
 
demo.launch(share = True)