File size: 3,044 Bytes
c2f1466
722ab73
c2f1466
 
 
40641cd
cf7a07e
da9b438
7192ffe
da9b438
112c4f1
e846f7d
c2f1466
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
c374d69
c2f1466
 
da9b438
6392832
6b65fd5
447a98e
6b65fd5
 
d6a0df6
6b65fd5
95f3d09
c2f1466
 
eafce96
c2f1466
4d99237
47bd74d
9eb39ef
 
 
02dc7d3
c2f1466
 
6880e23
4042f12
c661741
c374d69
 
334a56d
21c3384
bc406e3
 
c374d69
c2f1466
 
 
4d99237
6b65fd5
c2f1466
 
 
5be15aa
 
3104338
5be15aa
 
6872135
fa7c34d
5be15aa
 
 
3104338
5be15aa
 
3104338
5be15aa
 
 
3104338
5be15aa
 
3104338
0de7e55
aba9039
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
import gradio as gr
from gradio_client import Client as GrClient
import inspect
from gradio import routes
from typing import List, Type
from aiogoogletrans import Translator 

import requests, os, re, asyncio

loop = asyncio.get_event_loop()
gradio_client = GrClient(os.environ.get('GrClient_url2'))
translator = Translator()
# 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


# App code
def mbti(x):
    t = loop.run_until_complete(translator.translate(x, src='ko', dest='en'))
    str_trans = re.sub('[-=+,#/\?:^.@*\"β€»~ㆍ!γ€β€˜|\(\)\[\]`\'…》\”\β€œ\’·]', '', t.text)
    result = gradio_client.predict(
				str_trans,	# str representing input in 'User input' Textbox component
				fn_index=2
    )
    r = sorted(eval(result), key=lambda x : x['score'], reverse=True)
    
    return r
    
def chat(x):
    x = f"{x}"
    result = gradio_client.predict(
        x,# str representing input in 'User input' Textbox component
		0.92,	# float, representing input in 'Top-p (nucleus sampling)' Slider component
		40,	    # int, representing input in 'Top-k (nucleus sampling)' Slider component
		0.85,	# float, representing input in 'Temperature' Slider component
		20,	    # int, representing input in 'Max New Tokens' Slider component
		1.08,	# float, representing input in 'repetition_penalty' Slider component
		fn_index=0
    )
    result = str(result)
    output = result[len(x)-4:]
    output = re.sub('ν•˜ν•˜','γ…Žγ…Ž', output)
    output = output.split('<|endoftext|>')[0]
    output = output.split('\n')[0]
    output = re.sub('[=+#/\:@*\"β€»γ†γ€β€˜|\\\<\>\(\)\[\]`\'…》\”\β€œ\’·]', ' ', output)
    output = re.sub('[a-zA-Z]',' ',output)

    print(x)
    return output

def yn(x):
    result = gradio_client.predict(
				x,	# str representing input in 'User input' Textbox component
				fn_index=1
    )
    return result

with gr.Blocks() as demo:
    aa = gr.Interface(
      fn=chat,
      inputs="text",
      outputs="text",
      description="chat",
    examples= [[f"\nfriend: λ„ˆλŠ” 꿈이 뭐야? \n\n### \nyou: "],[f"\nyou: λ„ˆλŠ” 무슨 색을 κ°€μž₯ μ’‹μ•„ν•΄? \nfriend: κΈ€μŽ„ λ„ˆλŠ”? \n\n### \nyou: "]]
    )
    
    bb = gr.Interface(
      fn=mbti,
      inputs="text",
      outputs="text",
      description="mbti"
    )
    
    cc = gr.Interface(
      fn=yn,
      inputs="text",
      outputs="text",
      description="yn"
    )  
    demo.queue(max_size=32).launch(enable_queue=True)