Spaces:
Sleeping
Sleeping
import gradio as gr | |
import pandas as pd | |
import matplotlib | |
import matplotlib.pyplot as plt | |
import numpy as np | |
import openpyxl | |
file_name = "cluster_fin_iter1.xlsx" | |
ques_1 = "what category is having the highest number of issues?" | |
ques_2 = "what category is having the highest number of issues ?" | |
def greet(name, intensity): | |
return "Hello, " + name + "!" * int(intensity) | |
def get_data(): | |
df = pd.read_excel(file_name) | |
return df | |
def echo(message, history): | |
#TBD - Integerate with Llama 3. the below logic is just for the demo | |
message = message.lower() | |
if(message == "what category is having the highest number of issues?"): | |
merge_data = get_merge_data() | |
man_category = merge_data.max(axis=0) #TBD with the model | |
return "category 23: PR guide and contributor notes" | |
elif(message == "what category is having the highest number of issues?"): | |
merge_data = get_merge_data() | |
man_category = merge_data.max(axis=0) | |
return "category 23: PR guide and contributor notes" | |
elif(message == "what is category 23?"): | |
res = "category 23: PR Guides and contributor notes" | |
elif(message == "what all categories?" or message == "categories?"): | |
labels = get_labels() | |
res = str(labels['New_label']) | |
elif(message=="total categories"): | |
labels = get_labels() | |
res = "Total categories " + str(labels["cluster"].count()) | |
elif (message == "least affected category?"): | |
merge_data = get_merge_data() | |
min_category = merge_data.min(axis = 0) | |
return "Least affected category is " + min_category["New_label"] | |
else: | |
res = "Can you repeat that again" | |
message = res | |
return message | |
def get_merge_data(): | |
df = get_data() | |
bar_df = df['cluster'].value_counts().to_frame('count').rename_axis('cluster').reset_index() | |
label_df = pd.read_excel("cluster_label_final.xlsx") | |
df_merge_label = pd.merge(bar_df, label_df, "left", on="cluster") | |
return df_merge_label | |
def get_labels(): | |
label_df = pd.read_excel("cluster_label_final.xlsx") | |
return label_df | |
def bar_plot_fn(): | |
new_df = [] | |
df = get_data() | |
bar_df = df['cluster'].value_counts().to_frame('count').rename_axis('cluster').reset_index() | |
label_df = pd.read_excel("cluster_label_final.xlsx") | |
df_merge_label = pd.merge(bar_df,label_df,"left",on="cluster") | |
print(bar_df) | |
fig = plt.figure() | |
return gr.BarPlot( | |
value=df_merge_label, | |
x='cluster', | |
y='count', | |
title="Automated Ticketing system", | |
tooltip=["cluster","New_label", "count"], | |
y_lim=[10, 4000], | |
) | |
# __________________ | |
with gr.Blocks() as bar_plot: | |
with gr.Row(): | |
with gr.Column(): | |
plot = gr.BarPlot() | |
with gr.Row(): | |
with gr.Column(): | |
gr.ChatInterface( | |
fn=echo, | |
title="AI Agent For ATS", | |
multimodal= False) | |
bar_plot.load(fn=bar_plot_fn, outputs=plot) | |
bar_plot.launch(share=True) | |