Spaces:
Sleeping
Sleeping
import gradio as gr | |
import time | |
def bot_response(message, history): | |
history = history or [] | |
messages = [] | |
# First message | |
messages.append({"role": "user", "content": message}) | |
messages.append({"role": "assistant", "content": "I'm thinking about your message..."}) | |
history.extend(messages) | |
yield history | |
time.sleep(1) | |
# Second message | |
messages = [{"role": "assistant", "content": "Here's part 1 of my response"}] | |
history.extend(messages) | |
yield history | |
time.sleep(1) | |
# Third message | |
messages = [{"role": "assistant", "content": "And here's part 2"}] | |
history.extend(messages) | |
yield history | |
time.sleep(1) | |
# Fourth message | |
messages = [{"role": "assistant", "content": "Here's some code:\n```python\nprint('hello world')\n```"}] | |
history.extend(messages) | |
yield history | |
with gr.Blocks() as demo: | |
chatbot = gr.Chatbot( | |
group_consecutive_messages=False, | |
type="messages" | |
) | |
msg = gr.Textbox() | |
clear = gr.Button("Clear") | |
def user(user_message, history): | |
return "", history + [{"role": "user", "content": user_message}] | |
msg.submit(user, [msg, chatbot], [msg, chatbot]).then( | |
bot_response, [msg, chatbot], chatbot | |
) | |
clear.click(lambda: None, None, chatbot, queue=False) | |
demo.queue() | |
demo.launch(debug=True) |