cyberosa commited on
Commit
f22dba5
·
1 Parent(s): 12c9b02

error distribution by mech address

Browse files
Files changed (2) hide show
  1. app.py +19 -1
  2. tabs/error.py +37 -0
app.py CHANGED
@@ -47,6 +47,7 @@ from tabs.error import (
47
  plot_error_data_by_market,
48
  get_error_data_overall_by_market,
49
  plot_tool_error_data_by_market,
 
50
  )
51
 
52
  from tabs.about import about_olas_predict, about_this_dashboard
@@ -154,7 +155,15 @@ def load_all_data():
154
  )
155
 
156
  df7 = pd.read_parquet(daily_mech_req_df)
157
- return df1, df2, df3, df4, df5, df6, df7
 
 
 
 
 
 
 
 
158
 
159
 
160
  def prepare_data():
@@ -169,6 +178,7 @@ def prepare_data():
169
  unknown_trades,
170
  winning_df,
171
  daily_mech_requests,
 
172
  ) = load_all_data()
173
  print(trades_df.info())
174
 
@@ -572,6 +582,14 @@ with demo:
572
  with gr.Row():
573
  tool_error_plot
574
 
 
 
 
 
 
 
 
 
575
  with gr.Row():
576
  gr.Markdown("# Tools distribution of errors per week")
577
 
 
47
  plot_error_data_by_market,
48
  get_error_data_overall_by_market,
49
  plot_tool_error_data_by_market,
50
+ plot_weekly_errors_by_mech,
51
  )
52
 
53
  from tabs.about import about_olas_predict, about_this_dashboard
 
155
  )
156
 
157
  df7 = pd.read_parquet(daily_mech_req_df)
158
+
159
+ # errors by mech
160
+ errors_by_mech = hf_hub_download(
161
+ repo_id="valory/Olas-predict-dataset",
162
+ filename="errors_by_mech.parquet",
163
+ repo_type="dataset",
164
+ )
165
+ df8 = pd.read_parquet(errors_by_mech)
166
+ return df1, df2, df3, df4, df5, df6, df7, df8
167
 
168
 
169
  def prepare_data():
 
178
  unknown_trades,
179
  winning_df,
180
  daily_mech_requests,
181
+ errors_by_mech,
182
  ) = load_all_data()
183
  print(trades_df.info())
184
 
 
582
  with gr.Row():
583
  tool_error_plot
584
 
585
+ with gr.Row():
586
+ gr.Markdown("# Weekly Error distribution per Mech address")
587
+
588
+ with gr.Row():
589
+ errors_by_mech = plot_weekly_errors_by_mech(
590
+ errors_by_mech=errors_by_mech
591
+ )
592
+
593
  with gr.Row():
594
  gr.Markdown("# Tools distribution of errors per week")
595
 
tabs/error.py CHANGED
@@ -126,3 +126,40 @@ def plot_week_error_data_by_market(error_df: pd.DataFrame, week: str) -> gr.Plot
126
  fig.update_layout(width=WIDTH, height=HEIGHT)
127
  fig.update_xaxes(tickformat="%b %d\n%Y")
128
  return gr.Plot(value=fig)
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
126
  fig.update_layout(width=WIDTH, height=HEIGHT)
127
  fig.update_xaxes(tickformat="%b %d\n%Y")
128
  return gr.Plot(value=fig)
129
+
130
+
131
+ def plot_weekly_errors_by_mech(errors_by_mech: pd.DataFrame) -> gr.Plot:
132
+ """Function to plot the weekly errors by mech address"""
133
+ unique_mech_addresses = errors_by_mech["mech_address"].unique()
134
+
135
+ for mech_address in unique_mech_addresses:
136
+ # Filter the data for the current mech_address
137
+ filtered_data = errors_by_mech[errors_by_mech["mech_address"] == mech_address]
138
+
139
+ # Create the bar chart for the filtered data
140
+ fig = px.bar(
141
+ filtered_data,
142
+ x="request_month_year_week",
143
+ y="requests",
144
+ color="error_cat",
145
+ barmode="group",
146
+ color_discrete_sequence=["green", "orange"],
147
+ title=f"Error distribution for Mech Address: {mech_address}",
148
+ labels={
149
+ "requestmonthyearweek": "Month-Year-Week",
150
+ "requests": "Number of Requests",
151
+ "error_cat": "Error Category",
152
+ "errors_percentage": "Percentage",
153
+ },
154
+ text="errors_percentage",
155
+ height=HEIGHT,
156
+ width=WIDTH,
157
+ )
158
+ fig.update_traces(
159
+ texttemplate="%{y} (%{text:.2f}%)",
160
+ textposition="outside",
161
+ textangle=0,
162
+ cliponaxis=False,
163
+ )
164
+ fig.update_xaxes(tickformat="%b %d\n%Y")
165
+ return gr.Plot(value=fig)