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

from gemini_api import model_api, sentiment, category, ord_num

cust_qry_resp = {"senti":"", "cat":"", "num":""}




#********* UI Code ***********#
with gr.Blocks(title="Customer Support Assistant",
               analytics_enabled=False) as app:
  gr.Markdown("Customer Support Assistant")
  # Inputs from user
  with gr.Row():
    cust_qry = gr.Textbox(lines=5, type="text", label="Customer Query")

  btn_cust_qry = gr.Button("Analyze Query")

  # Model Output
  @gr.render(inputs=[cust_qry], triggers=[btn_cust_qry.click])
  # Function for prediction
  def invoke_model(user_input):
    if len(user_input) == 0:
      gr.Markdown("## No Customer Query Provided")
    else:  
      senti = model_api(user_input, sentiment)
      cat = model_api(user_input, category)
      num = model_api(user_input, ord_num)
      # Output response
      with gr.Row():
        gr.Textbox(lines=1, type="text", label="Customer Sentiment", value=senti)
      with gr.Row():
        gr.Textbox(lines=1, type="text", label="Order Category", value=cat)
      with gr.Row():
        gr.Textbox(lines=1, type="text", label="Order Number", value=num)
      if num != "Order Number not provided.":
        btn_ord_det = gr.Button("Fetch Order Details")
      if senti == "NEGATIVE" and num == "Order Number not provided.":
        gr.Textbox(lines=1, type="text", label="Next Step", value="Ask Order Number")
  
  
if __name__ == "__main__":
  app.launch(server_name="0.0.0.0")