File size: 3,171 Bytes
04a2c17 bd172d3 04a2c17 bd172d3 04a2c17 bd172d3 04a2c17 bd172d3 04a2c17 bd172d3 04a2c17 bd172d3 04a2c17 bd172d3 04a2c17 bd172d3 04a2c17 bd172d3 04a2c17 bd172d3 04a2c17 bd172d3 04a2c17 bd172d3 04a2c17 bd172d3 04a2c17 bd172d3 04a2c17 bd172d3 |
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,
)
|