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')))