Runnable examples for the frozen Gradio Lite 5.45.0 browser runtime.
Simulate tool progress, failure, and success metadata in a Gradio chatbot.
This coding playground simulates a weather tool trace with hard-coded messages. It does not call a weather service. Click Run, then select the button to inspect progress, failure, and success metadata.
Code
import gradio as grfrom gradio import ChatMessageimport timedef generate_response(history): history.append( ChatMessage( role="user", content="What is the weather in San Francisco right now?" ) )yield history time.sleep(0.25) history.append( ChatMessage( role="assistant", content="In order to find the current weather in San Francisco, I will need to use my weather tool.", ) )yield history time.sleep(0.25) history.append( ChatMessage( role="assistant", content="API Error when connecting to weather service.", metadata={"title": "💥 Error using tool 'Weather'"}, ) )yield history time.sleep(0.25) history.append( ChatMessage( role="assistant", content="I will try again", ) )yield history time.sleep(0.25) history.append( ChatMessage( role="assistant", content="Weather 72 degrees Fahrenheit with 20% chance of rain.", metadata={"title": "🛠️ Used tool 'Weather'"}, ) )yield history time.sleep(0.25) history.append( ChatMessage( role="assistant", content="Now that the API succeeded I can complete my task.", ) )yield history time.sleep(0.25) history.append( ChatMessage( role="assistant", content="It's a sunny day in San Francisco with a current temperature of 72 degrees Fahrenheit and a 20% chance of rain. Enjoy the weather!", ) )yield historydef like(evt: gr.LikeData):print("User liked the response")print(evt.index, evt.liked, evt.value)with gr.Blocks() as demo: chatbot = gr.Chatbot(type="messages", height=500, show_copy_button=True) button = gr.Button("Get San Francisco Weather") button.click(generate_response, chatbot, chatbot) chatbot.like(like)demo.launch()
import gradio as gr
from gradio import ChatMessage
import time
def generate_response(history):
history.append(
ChatMessage(
role="user", content="What is the weather in San Francisco right now?"
)
)
yield history
time.sleep(0.25)
history.append(
ChatMessage(
role="assistant",
content="In order to find the current weather in San Francisco, I will need to use my weather tool.",
)
)
yield history
time.sleep(0.25)
history.append(
ChatMessage(
role="assistant",
content="API Error when connecting to weather service.",
metadata={"title": "💥 Error using tool 'Weather'"},
)
)
yield history
time.sleep(0.25)
history.append(
ChatMessage(
role="assistant",
content="I will try again",
)
)
yield history
time.sleep(0.25)
history.append(
ChatMessage(
role="assistant",
content="Weather 72 degrees Fahrenheit with 20% chance of rain.",
metadata={"title": "🛠️ Used tool 'Weather'"},
)
)
yield history
time.sleep(0.25)
history.append(
ChatMessage(
role="assistant",
content="Now that the API succeeded I can complete my task.",
)
)
yield history
time.sleep(0.25)
history.append(
ChatMessage(
role="assistant",
content="It's a sunny day in San Francisco with a current temperature of 72 degrees Fahrenheit and a 20% chance of rain. Enjoy the weather!",
)
)
yield history
def like(evt: gr.LikeData):
print("User liked the response")
print(evt.index, evt.liked, evt.value)
with gr.Blocks() as demo:
chatbot = gr.Chatbot(type="messages", height=500, show_copy_button=True)
button = gr.Button("Get San Francisco Weather")
button.click(generate_response, chatbot, chatbot)
chatbot.like(like)
demo.launch()