File size: 2,454 Bytes
d877f5a
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
import requests
import json
from datetime import datetime

import gradio
from gradio_client import Client

function_list1 = [
    "angry birds",
    'snake',
    "greet", 
    "list AI backend functionality",
    "show json",
    "game"
    # "flappy birds",
]
function_list1 = [
    "angry birds",
    'snake',
]
function_list2 = [
    "greet", 
    "list AI backend functionality",
    "show json",
    "game"
    # "flappy birds",
]
# function_list.pop()

space = 'stevez-abc123'
# space = 'stevez-test-public'

# url = f'https://{space}.hf.space/run/predict'
# url = f'https://{space}.hf.space/api/predict'
url = f'https://{space}.hf.space'

def run(hf_token, game, r, nlp_command):
    if hf_token is None or hf_token == '':
        return 'please specify hf token'
    if game is None:
        return "please specify which game"
    if r is None:
        return "please choose the AI functionality"
    try:
        print(f"{datetime.today()}\t{nlp_command}")
        myobj = {
            'data': [game, r, nlp_command],
        }
        # myauth = ('Bearer', hf_token)
        # x = requests.post(
        #     url, 
        #     auth = myauth,
        #     json = myobj,
        # )
        # print(f"x: {x}")
        # x2 = json.loads(x.text)
        # res = x2['data'][0]
        # res2 = json.loads(res)
        client = Client(
            url,
            hf_token=hf_token,
        )
        res = client.predict(
            r, nlp_command,
            api_name='/predict',
        )
        res2 = json.loads(res[0])
        # print(json.dumps(res2, indent=4))
        # if (r == 'greet') or (r == 'angry birds'):
        #     res2['demo-version'] = "2.0.0.2023-08-04-a" # use gradio_client
        return json.dumps(res2, indent=4)
    except Exception as e:
        return f"{type(e)}, {str(e)}. \nyou many want to make sure your hf_token is correct"
    
demo = gradio.Interface(
    fn=run, 
    inputs=[
        "text",
        gradio.Radio(
            function_list1,
            value='angry birds',
            label = "Which game?",
            # info = "Greet for testing server",
            info = "Only 'angry birds' is implemented as of now",
            ),
        gradio.Radio(
            function_list2,
            value='game',
            label = "What do you want to do?",
            info = "Greet for testing server",
            ),
        "text"],
    outputs="text",
    title = "Demo",
)

demo.launch()