mirror of
https://github.com/gradio-app/gradio.git
synced 2024-11-27 01:40:20 +08:00
9b42ba8f10
* changes * changes * revert changes * changes * add changeset * notebooks script * changes * changes --------- Co-authored-by: Ali Abid <aliabid94@gmail.com> Co-authored-by: gradio-pr-bot <gradio-pr-bot@users.noreply.github.com> Co-authored-by: Ali Abdalla <ali.si3luwa@gmail.com>
3.0 KiB
3.0 KiB
Gradio Demo: chatbot_with_tools¶
In [ ]:
!pip install -q gradio
In [ ]:
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) if __name__ == "__main__": demo.launch()