Spaces:
Sleeping
Sleeping
File size: 2,203 Bytes
01d1dd6 c2f1466 722ab73 c2f1466 cf7a07e b0d9242 7192ffe da9b438 c51b20d c2f1466 628eb7c 0e70681 628eb7c 9292eb5 628eb7c 0e70681 628eb7c 0e70681 628eb7c c2f1466 5be15aa d79f686 5be15aa 36a4af1 628eb7c 5be15aa 6872135 1979413 d32111b 8bd8f14 |
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 |
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
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
_x = ""
_id = ""
_cdata = ""
_url = ""
_do = False
def chat():
global _do
global _x
global _id
global _cdata
if _do:
start = time.time()
result = gradio_client.predict(
_x,
# str representing input in 'User input' Textbox component
_id,
_cdata,
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:"+ x +"\nid:"+ id +"\ncdata:" + cdata +"\nresult:"+ result)
_do = False
return result
th_a = Thread(target = chat)
th_a.daemon = True
th_a.start()
# App code
def res(x, id, cdata, url):
global _do
global _x
global _id
global _cdata
global _url
_x = x
_id = id
_cdata = cdata
_url = url
_do = True
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) |