Spaces:
Running
Running
File size: 1,480 Bytes
e3c695c 0da90a5 02f2014 e3c695c 02f2014 eab22be 0da90a5 ab104ea f60e3bf eab22be a45b33a 02f2014 e3c695c eab22be 7aee6af 0da90a5 7615475 0da90a5 f60e3bf 0da90a5 eab22be f60e3bf fc3be3b a45b33a f60e3bf ab104ea 02f2014 e3c695c b334bb7 |
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 |
import gradio as gr
import os
import time
# Chatbot demo with multimodal input (text, markdown, LaTeX, code blocks, image, audio, & video). Plus shows support for streaming text.
def print_like_dislike(x: gr.LikeData):
print(x.index, x.value, x.liked)
def add_message(history, message):
for x in message["files"]:
history.append(((x["path"],), None))
if message["text"] is not None:
history.append((message["text"], None))
return history, gr.MultimodalTextbox(value=None, interactive=False, file_types=["image"])
def bot(history):
response = "**That's cool!**"
history[-1][1] = ""
for character in response:
history[-1][1] += character
time.sleep(0.05)
yield history
with gr.Blocks() as demo:
chatbot = gr.Chatbot(
[],
elem_id="chatbot",
bubble_full_width=False,
avatar_images=(None, (os.path.join(os.path.dirname(__file__), "files/avatar.png"))),
)
chat_input = gr.MultimodalTextbox(interactive=True, file_types=["image"], placeholder="Enter message or upload file...", show_label=False)
chat_msg = chat_input.submit(add_message, [chatbot, chat_input], [chatbot, chat_input], queue=False).then(
bot, chatbot, chatbot, api_name="bot_response"
)
chat_msg.then(lambda: gr.Textbox(interactive=True), None, [chat_input], queue=False)
chatbot.like(print_like_dislike, None, None)
demo.queue()
if __name__ == "__main__":
demo.launch()
|