File size: 2,585 Bytes
439340a
 
74e5ab2
 
cf91c74
439340a
 
 
 
74e5ab2
 
439340a
 
cf91c74
439340a
 
cf91c74
 
 
 
 
439340a
cf91c74
439340a
 
 
 
 
 
cf91c74
 
439340a
 
cf91c74
 
 
 
 
 
 
c380b7b
 
 
 
439340a
 
 
cf91c74
 
 
439340a
 
c380b7b
 
 
 
439340a
 
 
cf91c74
 
 
439340a
 
c380b7b
 
 
 
439340a
 
cf91c74
 
 
c380b7b
cf91c74
 
 
439340a
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
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)

        with gr.Column():
            with gr.Row(visible=False) as row_export_csv:
                export_button = gr.Button(value="Export CSV")
                csv = gr.File(interactive=False, visible=False)


    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]
    ).then(
        fn=make_visible,
        inputs=None,
        outputs=row_export_csv
    )

    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]
    ).then(
        fn=make_visible,
        inputs=None,
        outputs=row_export_csv
    )

    export_button.click(
        fn=export_dataframe,
        inputs=table_times,
        outputs=csv
    )

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