|
import gradio as gr |
|
|
|
def add_text(history, text): |
|
history = history + [(text, None)] |
|
return history, "" |
|
|
|
def add_file(history, file): |
|
history = history + [((file.name,), None)] |
|
return history |
|
|
|
def bot(history): |
|
response = "**That's cool!**" |
|
history[-1][1] = response |
|
return history |
|
|
|
with gr.Blocks() as demo: |
|
chatbot = gr.Chatbot([], elem_id="chatbot").style(height=750) |
|
|
|
with gr.Row(): |
|
with gr.Column(scale=0.85): |
|
txt = gr.Textbox( |
|
show_label=False, |
|
placeholder="Enter text and press enter, or upload an image", |
|
).style(container=False) |
|
with gr.Column(scale=0.15, min_width=0): |
|
btn = gr.UploadButton("π", file_types=["image", "video", "audio"]) |
|
|
|
txt.submit(add_text, [chatbot, txt], [chatbot, txt]).then( |
|
bot, chatbot, chatbot |
|
) |
|
btn.upload(add_file, [chatbot, btn], [chatbot]).then( |
|
bot, chatbot, chatbot |
|
) |
|
|
|
if __name__ == "__main__": |
|
demo.launch() |
|
|