|
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() |
|
|
|
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(): |
|
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() |