Chatting_python / main_page.py
yosephinestwn's picture
upload
f55b6f7
raw
history blame
1.64 kB
# This module is created for the layout of the main page
import time
import gradio as gr
import constants
def __respond(message, chat_history): # A function for the chatbot, so the chatbot can reply the message
botMessage = constants.automaticAnswer(message) # Calling the function in constants to create an automatic respond
chat_history.append((message, botMessage)) # Display the dialogue on the chat panel
time.sleep(2) # Create a small delay
return chat_history
def render(): # Render the main page
firstRow = gr.Row(visible=False) # It will be invisible if the landing page is still on display
with firstRow: # In the first row
chatbot = gr.Chatbot(height=680) # Creating the chat panel and bot
secondRow = gr.Row(visible=False) # It will be invisible if the landing page is still on display
with secondRow: # In the second row
with gr.Column(): # Make the components stacked under the chat panel
with gr.Row(): # Make the components side by side
chooseResp = gr.Dropdown(choices=constants.QUESTIONS, interactive=True, show_label=False,
container=False, ) # User prompted reply
submitButton = gr.Button("Submit", interactive=True, variant='primary', scale=0, ) # Submit button
clearButton = gr.ClearButton([chooseResp, chatbot], scale=0, variant='primary') # Clear button
submitButton.click(fn=__respond, inputs=[chooseResp, chatbot], outputs=chatbot) # Event listener if the
# button is clicked
return firstRow, secondRow