File size: 3,171 Bytes
c892f97 5b81650 c892f97 5b81650 c892f97 5b81650 c892f97 5b81650 c892f97 5b81650 c892f97 5b81650 c892f97 5b81650 c892f97 5b81650 c892f97 5b81650 c892f97 5b81650 c892f97 5b81650 c892f97 5b81650 c892f97 5b81650 c892f97 5b81650 c892f97 5b81650 |
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 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 |
import pandas as pd
import gradio as gr
from typing import List
HEIGHT = 600
WIDTH = 1000
def get_error_data(tools_df: pd.DataFrame, inc_tools: List[str]) -> pd.DataFrame:
"""Gets the error data for the given tools and calculates the error percentage."""
tools_inc = tools_df[tools_df["tool"].isin(inc_tools)]
error = (
tools_inc.groupby(["tool", "request_month_year_week", "error"])
.size()
.unstack()
.fillna(0)
.reset_index()
)
error["error_perc"] = (error[1] / (error[0] + error[1])) * 100
error["total_requests"] = error[0] + error[1]
return error
def get_error_data_overall(error_df: pd.DataFrame) -> pd.DataFrame:
"""Gets the error data for the given tools and calculates the error percentage."""
error_total = (
error_df.groupby("request_month_year_week")
.agg({"total_requests": "sum", 1: "sum", 0: "sum"})
.reset_index()
)
error_total["error_perc"] = (error_total[1] / error_total["total_requests"]) * 100
error_total.columns = error_total.columns.astype(str)
error_total["error_perc"] = error_total["error_perc"].apply(lambda x: round(x, 4))
return error_total
def plot_error_data(error_all_df: pd.DataFrame) -> gr.BarPlot:
"""Plots the error data for the given tools and calculates the error percentage."""
return gr.BarPlot(
value=error_all_df,
x="request_month_year_week",
y="error_perc",
title="Error Percentage",
x_title="Week",
y_title="Error Percentage",
show_label=True,
interactive=True,
show_actions_button=True,
tooltip=["request_month_year_week", "error_perc"],
height=HEIGHT,
width=WIDTH,
)
def plot_tool_error_data(error_df: pd.DataFrame, tool: str) -> gr.BarPlot:
"""Plots the error data for the given tool."""
error_tool = error_df[error_df["tool"] == tool]
error_tool.columns = error_tool.columns.astype(str)
error_tool["error_perc"] = error_tool["error_perc"].apply(lambda x: round(x, 4))
return gr.BarPlot(
title="Error Percentage",
x_title="Week",
y_title="Error Percentage",
show_label=True,
interactive=True,
show_actions_button=True,
tooltip=["request_month_year_week", "error_perc"],
value=error_tool,
x="request_month_year_week",
y="error_perc",
height=HEIGHT,
width=WIDTH,
)
def plot_week_error_data(error_df: pd.DataFrame, week: str) -> gr.BarPlot:
"""Plots the error data for the given week."""
error_week = error_df[error_df["request_month_year_week"] == week]
error_week.columns = error_week.columns.astype(str)
error_week["error_perc"] = error_week["error_perc"].apply(lambda x: round(x, 4))
return gr.BarPlot(
value=error_week,
x="tool",
y="error_perc",
title="Error Percentage",
x_title="Tool",
y_title="Error Percentage",
show_label=True,
interactive=True,
show_actions_button=True,
tooltip=["tool", "error_perc"],
height=HEIGHT,
width=WIDTH,
)
|