demo-crunchybot / app.py
Richie-O3's picture
update backend functions
74e5ab2 verified
raw
history blame
2.86 kB
import gradio as gr
import os
from gcp import download_credentials
from utils import make_invisible, make_visible, create_folders
from backend_functions import get_answer, init_greeting, export_dataframe
from dotenv import load_dotenv
load_dotenv()
download_credentials()
create_folders()
with gr.Blocks() as main_app:
with gr.Tab('Chatbot'):
user_id = gr.State('') # id used to find the chat into the database
with gr.Column():
with gr.Row():
chat = gr.Chatbot(label="Chatbot Crunchyroll")
output_video = gr.Video(interactive=False, label='Video', autoplay=True, height=400)
output_audio = gr.Audio(interactive=False, label='Audio', autoplay=False)
messages = gr.State([])
with gr.Row():
text = gr.Textbox(label='Write your question')
with gr.Column():
with gr.Row():
button_text = gr.Button(value='Submit text')
clear_button = gr.ClearButton([chat, messages])
with gr.Tab('Times'):
columns = ["User Message", "Chatbot Response", "Standalone Question", "Create Embedding", "Query Pinecone",
"Context Prompt", "Final Response GPT", "Create Clean Message", "Create Audio Elevenlabs", "Create Video D-iD", "Final Time"]
table_times = gr.DataFrame(headers=columns, visible=False, interactive=False)
export_button = gr.Button(value="Export CSV")
# with gr.Tab('Ventana Pruebas'):
# with gr.Row():
# with gr.Column():
# button_show = gr.Button(value="Mostrar texto")
# with gr.Column():
# button_hidden = gr.Button(value="Ocultar texto")
# with gr.Row(visible=False) as first_row:
# text = gr.Textbox(value="Hola mundo")
# Actions
# button_show.click(
# fn=make_visible,
# inputs=None,
# outputs=first_row
# )
# button_hidden.click(
# fn=make_invisible,
# inputs=None,
# outputs=first_row
# )
text.submit(
fn=get_answer,
inputs=[text, chat, messages, output_audio, output_video, table_times],
outputs=[chat, output_audio, output_video, table_times]
).then(
lambda: None, None, [text]
)
button_text.click(
fn=get_answer,
inputs=[text, chat, messages, output_audio, output_video, table_times],
outputs=[chat, output_audio, output_video, table_times]
).then(
lambda: None, None, [text]
)
export_button.click(
fn=export_dataframe,
inputs=table_times,
)
main_app.load(init_greeting, inputs=[chat, messages], outputs=[chat, messages])
main_app.launch(debug=True, auth=(os.environ.get('SPACE_USERNAME'), os.environ.get('SPACE_PASSWORD')))