File size: 1,869 Bytes
4c77e7e
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
import gradio as gr

from utils import rag_api, agent_api, base64_to_audio


# Helper functions
def assignment_part_1(input_text, language):
    response = rag_api(input_text, language)
    if response["audio"]:
        output_audio = base64_to_audio(response["audio"])
        return response, output_audio
    else:
        return response, None, None


def assignment_part_2(input_text, language):
    response = agent_api(input_text, language)
    if response["audio"]:
        output_audio = base64_to_audio(response["audio"])
        return response, output_audio
    else:
        return response, None, None


# Create the Gradio interface
with gr.Blocks() as block:

    gr.Markdown("# <p style='text-align:center;'>Sarvam Intern Assignment</p>")

    # User Query
    input_text = gr.Textbox(label="Enter your query:")

    # Language selection
    language = gr.Dropdown(label="Select audio_language_code",
                           choices=["hi-IN", "bn-IN", "kn-IN", "ml-IN",
                                    "mr-IN", "od-IN", "pa-IN", "ta-IN",
                                    "te-IN", "gu-IN", "en-IN"],)

    # Two buttons
    with gr.Row():
        button_1 = gr.Button("RAG")
        button_2 = gr.Button("Agent + RAG")

    # Output field
    output_text = gr.JSON(label="Output")
    output_audio = gr.Audio(type="numpy",
                            label="Output Audio",
                            interactive=False)

    # Button click actions
    button_1.click(fn=assignment_part_1,
                   inputs=[input_text, language],
                   outputs=[output_text, output_audio])

    button_2.click(fn=assignment_part_2,
                   inputs=[input_text, language],
                   outputs=[output_text, output_audio])

# Launch the Gradio app
block.launch()