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