File size: 2,183 Bytes
c2f1466
 
 
cf7a07e
5aca742
b0d9242
 
 
a7feab8
7192ffe
da9b438
c2f1466
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
8c634b2
 
c5667e0
 
8c634b2
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
c2f1466
8c634b2
 
 
 
2a1d68d
8c634b2
c5667e0
 
5be15aa
d79f686
5be15aa
8c634b2
 
c5667e0
8c634b2
c5667e0
 
8c634b2
c5667e0
5be15aa
8c634b2
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1979413
8c634b2
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 gradio as gr
from gradio import routes
from typing import List, Type

import requests, os, re, asyncio, queue
import math
import time
import datetime
import requests, json

loop = asyncio.get_event_loop()
# Monkey patch
def get_types(cls_set: List[Type], component: str):
    docset = []
    types = []
    if component == "input":
        for cls in cls_set:
            doc = inspect.getdoc(cls)
            doc_lines = doc.split("\n")
            docset.append(doc_lines[1].split(":")[-1])
            types.append(doc_lines[1].split(")")[0].split("(")[-1])
    else:
        for cls in cls_set:
            doc = inspect.getdoc(cls)
            doc_lines = doc.split("\n")
            docset.append(doc_lines[-1].split(":")[-1])
            types.append(doc_lines[-1].split(")")[0].split("(")[-1])
    return docset, types
routes.get_types = get_types

user_data = dict()
chat_history = []


def register(id, pw):
    if not id in user_data:
        user_data[id] = pw
        return "ok"
    else:
        return "fail"

def login(id, pw):
    if not id in user_data:
        return "fail"
    else:
        if user_data[id] != pw:
            return "fail"
        else:
            return "ok"

def chat(name, text):
    if not name in user_data:
        return "no id"
    else:
        chat_history.append({"name": name, "text":text})
    return "ok"

def get_data():
    return chat_history

def clear_data():
    global chat_history
    chat_history = []
    return "ok"

with gr.Blocks() as demo:
    count = 0
    aa = gr.Interface(
      fn=chat,
      inputs=["text", "text"],
      outputs="text",
      description="chat",
    )
    bb = gr.Interface(
      fn=login,
      inputs=["text", "text"],
      outputs="text",
      description="login",
    )
    cc = gr.Interface(
      fn=register,
      inputs=["text", "text"],
      outputs="text",
      description="register",
    )
    dd = gr.Interface(
      fn=get_data,
      inputs=[],
      outputs="text",
      description="get_data",
    )
    gg = gr.Interface(
      fn=clear_data,
      inputs=[],
      outputs="text",
      description="clear_data",
    )
    demo.queue(max_size=32).launch()