Spaces:
Sleeping
Sleeping
import gradio as gr | |
import time | |
# Inspired by: https://www.gradio.app/guides/agents-and-tool-usage | |
def interact_with_agent(prompt, messages=[]): | |
"""Simulate generation of two assistant messages after delays""" | |
time.sleep(2) | |
messages.append( | |
gr.ChatMessage( | |
role="assistant", content="Progress timer stops here (or becomes invisible)" | |
) | |
) | |
yield messages | |
time.sleep(2) | |
messages.append( | |
gr.ChatMessage(role="assistant", content="But I want it to stop here") | |
) | |
yield messages | |
def str_to_message(content, role="user"): | |
return [gr.ChatMessage(role=role, content=content)] | |
with gr.Blocks() as demo: | |
chatbot = gr.Chatbot( | |
type="messages", | |
) | |
input = gr.Textbox( | |
"Start the simulation with two assistant messages after 2-second delays", | |
autofocus=True, | |
) | |
input.submit( | |
# Update chatbot UI with user message immediately | |
str_to_message, | |
input, | |
chatbot, | |
).then( | |
# Update chatbot UI with assistant messages | |
interact_with_agent, | |
[input, chatbot], | |
chatbot, | |
) | |
gr.Markdown( | |
"Reported as [Gradio issue #11637](https://github.com/gradio-app/gradio/issues/11637)" | |
) | |
demo.launch() | |