echo-chatbot / chatbot.py
scornflake's picture
Upload folder using huggingface_hub
78975ec verified
raw
history blame contribute delete
No virus
1.79 kB
import gradio as gr
import plotly.express as px
with gr.Blocks() as demo:
chatbot = gr.Chatbot()
msg = gr.Textbox()
clear = gr.ClearButton([msg, chatbot])
def random_plot():
df = px.data.iris()
fig = px.scatter(df, x="sepal_width", y="sepal_length", color="species",
size='petal_length', hover_data=['petal_width'])
return fig
def user(user_message, history):
print(f"User message: {user_message}, history: {history}")
next_history_item_with_no_response = [user_message, None]
return "", history + [next_history_item_with_no_response]
def add_message(history, message):
for x in message["files"]:
history.append(((x,), None))
if message["text"] is not None:
history.append((message["text"], None))
return history, gr.MultimodalTextbox(value=None, interactive=False)
def bot(history):
history[-1][1] = "yay"
return history
fig = random_plot()
def vote(data: gr.LikeData):
if data.liked:
print(f"You liked it, great!")
else:
print("Well, I tried.")
with gr.Blocks(fill_height=True) as demo:
chatbot = gr.Chatbot(
elem_id="chatbot",
bubble_full_width=False,
scale=1,
)
chat_input = gr.MultimodalTextbox(interactive=True, file_count="multiple", placeholder="Type something...", show_label=False)
chat_msg = chat_input.submit(add_message, [chatbot, chat_input], [chatbot, chat_input])
bot_msg = chat_msg.then(bot, chatbot, chatbot, api_name="bot_response")
bot_msg.then(lambda: gr.MultimodalTextbox(interactive=True), None, [chat_input])
chatbot.like(vote, None, None)
if __name__ == "__main__":
demo.launch()