|
import gradio as gr |
|
from controller import ChatbotController |
|
|
|
|
|
controller = ChatbotController() |
|
with gr.Blocks() as demo: |
|
chat = gr.Chatbot(type="messages", min_height=600, label="Assistant") |
|
msg = gr.Textbox(label="Your message", placeholder="Want to know more about Damla’s work? Type your question here...") |
|
|
|
history_state = gr.State([]) |
|
processed_emails_state = gr.State([]) |
|
|
|
def respond(user_msg, history, recorded_emails_state): |
|
history.append({"role":"user", "content":user_msg}) |
|
reply, emails = controller.get_response(message=user_msg, history=history, recorded_emails=set(recorded_emails_state)) |
|
history.append({"role":"assistant", "content":reply}) |
|
|
|
return history, history, list(emails) |
|
|
|
msg.submit(respond, inputs=[msg, history_state, processed_emails_state], outputs=[chat, history_state, processed_emails_state]) |
|
msg.submit(lambda: "", None, msg) |
|
|
|
demo.launch(inbrowser=True) |