File size: 2,275 Bytes
98b5314
7f93957
 
b47f6e6
7f93957
7dde4c4
7f93957
 
 
 
b47f6e6
 
 
 
7f93957
 
 
 
 
 
 
 
7ab8364
4516d66
 
 
 
 
 
 
 
 
 
 
 
 
 
eb58dc9
 
 
4516d66
 
 
 
 
 
 
 
eb58dc9
4516d66
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
7ab8364
98b5314
7f93957
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 time
import random
import gradio as gr
# from transformers import pipeline

# p = pipeline("automatic-speech-recognition")

def user(user_message, history):
    return "", history + [[user_message, None]]

# def transcribe(audio, state=""):
#     text = p(audio)["text"]
#     state += text + " "
#     return state, state

def bot(history):
    bot_message = random.choice(["How are you?", "I love you", "I'm very hungry"])
    history[-1][1] = ""
    for character in bot_message:
        history[-1][1] += character
        time.sleep(0.05)
        yield history

css = """
        .gradio-container {
            font-family: 'IBM Plex Sans', sans-serif;
        }
        .gr-button {
            color: white;
            border-color: black;
            background: black;
        }
        .container {
            max-width: 730px;
            margin: auto;
            padding-top: 1.5rem;
        }
        #chatbot>div>.h-full {
            min-height: 30rem;
        }
"""

with gr.Blocks(css=css) as demo:

    with gr.Box():
        
        # chatbot = gr.Chatbot()
        # msg = gr.Textbox()
        chatbot = gr.Chatbot([], show_label=False, elem_id="chatbot").style(height="auto")
    
        # with gr.Row():
        with gr.Row(elem_id="prompt-container").style(mobile_collapse=False, equal_height=True):
            with gr.Column(scale=0.85):
                txt = gr.Textbox(
                    show_label=False,
                    placeholder="Type your response and press enter, or record your response",
                ).style(container=False)
            with gr.Column(scale=0.15, min_width=0):
                submit = gr.Button("Submit")
        # gr.Interface(
        #     fn=transcribe, 
        #     inputs=[
        #         gr.Audio(source="microphone", type="filepath", streaming=True), 
        #         "state"
        #     ],
        #     outputs=[
        #         msg,
        #         "state"
        #     ],
        #     live=True)
    
        txt.submit(user, [txt, chatbot], [txt, chatbot], queue=False).then(
            bot, chatbot, chatbot
        )
        submit.click(user, [txt, chatbot], [txt, chatbot], queue=False).then(
            bot, chatbot, chatbot
        )

demo.queue()
demo.launch()