Spaces:
Sleeping
Sleeping
File size: 2,556 Bytes
8a3a737 |
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 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 |
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'", "id": 1},
)
)
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="Pending",
metadata={"title": "🛠️ Pinging weather API", "id": 2},
)
)
history.append(
ChatMessage(
role="assistant",
content="Weather 72 degrees Fahrenheit with 20% chance of rain.",
metadata={"title": "🛠️ Successfully retrieved weather data", "id": 3, "parent_id": 2},
)
)
history.append(
ChatMessage(
role="assistant",
content="blah blah blah.",
metadata={"title": "✔️ Now that I have the weather data, I can complete my task.", "id": 4, "parent_id": 3},
)
)
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=700, show_copy_button=True)
button = gr.Button("Get San Francisco Weather")
button.click(generate_response, chatbot, chatbot)
chatbot.like(like)
if __name__ == "__main__":
demo.launch()
|