Spaces:
Runtime error
Runtime error
from threading import Thread | |
import gradio as gr | |
from gradio_client import Client as GrClient | |
import inspect | |
from gradio import routes | |
from typing import List, Type | |
import requests, os, re, asyncio, queue | |
import math | |
import time | |
import datetime | |
loop = asyncio.get_event_loop() | |
gradio_client = GrClient(os.environ.get('GrClient_url')) | |
# 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 | |
q = queue.Queue() | |
def chat(): | |
global q | |
if !q.empty(): | |
arr = q.get() | |
start = time.time() | |
result = gradio_client.predict( | |
arr[0], | |
# str representing input in 'User input' Textbox component | |
arr[1], | |
arr[2], | |
fn_index=0 | |
) | |
result = str(result) | |
end = time.time() | |
sec = (end - start) | |
result_list = str(datetime.timedelta(seconds=sec)).split(".") | |
print("μλ΅ μκ° : " + result_list[0] +"\nx:"+ arr[0] +"\nid:"+ arr[1] +"\ncdata:" + arr[2] +"\nresult:"+ result + "\ncollback_url : " + arr[3]) | |
return result | |
th_a = Thread(target = chat) | |
th_a.daemon = True | |
th_a.start() | |
# App code | |
def res(x, id, cdata, url): | |
global q | |
arr = [x, id, cdata, url] | |
q.put(arr) | |
print("\n_Done\n\n") | |
return "Done" | |
with gr.Blocks() as demo: | |
count = 0 | |
aa = gr.Interface( | |
fn=res, | |
inputs=["text","text", "text", "text"], | |
outputs="text", | |
description="chat", | |
) | |
demo.queue(max_size=32).launch(enable_queue=True) |