in src/dfcx_scrapi/tools/evaluations.py [0:0]
def build_report_summary(self, df: pd.DataFrame) -> pd.DataFrame:
# Check for agent_id or get from dataframe
if not self.agent_id:
self.agent_id = self.get_agent_id_from_results(df)
# Get Generative Settings for report data
a = Agents(language_code=self.language_code)
agent = a.get_agent(self.agent_id)
gen_settings = a.get_generative_settings(
self.agent_id, language_code=self.language_code)
model_name = self.get_model_name(gen_settings)
current_datetime = datetime.now().strftime("%Y-%m-%d %H:%M:%S")
metrics_info = {}
if "similarity" in df.columns:
metrics_info["similarity"] = df["similarity"].mean()
if "tool_name_match" in df.columns:
metrics_info["tool_match"] = df["tool_name_match"].mean()
eval_results_summary = pd.DataFrame({
'timestamp': [current_datetime],
'total_conversations': [len(df['eval_id'].unique())],
'model_name': [model_name],
'agent_name': agent.display_name,
'agent_id': [self.agent_id],
'notes': [""]
})
# insert metrics for report
insert_index = eval_results_summary.columns.get_loc(
"total_conversations") + 1
for metric, value in metrics_info.items():
if (isinstance(value, float) and np.isnan(value)):
value = "-"
eval_results_summary.insert(insert_index, metric, [value])
insert_index += 1
return eval_results_summary