File size: 3,133 Bytes
0d283e9
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
import gradio as gr
from ask import askQuestion, getBrains

# abd="#f9fafe"
# abd="6469ff"


bg_color = "#c5dde0"
s_color = "#1d2230"
mycss = """
    .gradio-container {{background-color: {bgcolor}}}
    #title {{margin-top:33%;margin-bottom:25px;display:flex;justify-content:center;align-items:center}}
    #title h1 {{font-weight:900;color:{scolor}}}
    #advanced {{font-weight:600;background-color:#ffffff}}
    #secondrow {{padding:0 6%;gap:30px}}    

    #name {{background-color: {bgcolor};border-style:none;border-width:0;box-shadow:none;padding-left:0;padding-right:0}}
    #name .svelte-1gfkn6j {{background-color:{bgcolor};color:{scolor};font-size:18px}}
    

    #question {{background-color: {bgcolor};border-style:none; !important;box-shadow:none !important;padding-left:0;padding-right:0}}
    #question span {{background-color:{bgcolor};color:{scolor};font-size:18px}}

    #output {{background-color: {bgcolor};border-style:none;border-width:0;box-shadow:none}}
    #output span {{background-color:{bgcolor};color:{scolor};font-size:18px}}

    #temp span {{background-color:#ffffff;color:{scolor}}}
    #temp input {{accent-color:{scolor}}}
    #tokens span {{background-color:#ffffff;color:{scolor}}}
    #tokens input {{accent-color:{scolor}}}

    #button {{background-color:{scolor};color:#ffffff;margin-top:15px}}
"""
formatted_css = mycss.format(bgcolor=bg_color, scolor=s_color)


def handleSubmit(brain_name, question, temperature, maxTokens):
    if (brain_name == "" and question == ""):
        return "Please select Brain Name & Enter Question"
    if (brain_name == ""):
        return "Please select Brain Name"
    if (question == ""):
        return "Please Enter Question"
    return askQuestion(brain_name, question, temperature, maxTokens)


with gr.Blocks(theme=gr.themes.Soft(), css=formatted_css) as block_demo:
    with gr.Row(elem_id="first"):

        with gr.Column():
            gr.Markdown(
                """
            # Ask Brain!
            """, elem_id="title")

    with gr.Row(elem_id="secondrow"):

        with gr.Column(scale=1,  elem_id="inputsCol"):

            brain_name = gr.Dropdown(
                label="Brain Name", choices=getBrains(), elem_id="name")
            question = gr.Textbox(
                label="Question", lines=2, elem_id="question")

            with gr.Accordion(label="Advance Options", open=False, elem_id="advanced") as a:
                temperature = gr.Slider(
                    minimum=0.1, maximum=1.0, step=0.1, value=0.5, label="Temperature", elem_id="temp")
                maxTokens = gr.Slider(minimum=500, maximum=2000,
                                      step=100, value=1000, label="Max Tokens", elem_id="tokens")

            submit_button = gr.Button(label="Submit", elem_id="button")

        with gr.Column(scale=1, elem_id="outputCol",):
            output_text = gr.TextArea(
                label="Brain Output", lines=14, elem_id="output").style(show_copy_button=True)

    submit_button.click(
        handleSubmit, [brain_name, question, temperature, maxTokens], output_text)

block_demo.launch(show_api=False)