Spaces:
Sleeping
Sleeping
Update app.py
Browse files
app.py
CHANGED
@@ -25,7 +25,7 @@ class EvaluationConfig:
|
|
25 |
class EvaluationPrompts:
|
26 |
@staticmethod
|
27 |
def get_first_check(original_prompt: str, response: str) -> str:
|
28 |
-
return f"""Оцените следующий ответ по шкале от 0 до
|
29 |
Оригинальный запрос: {original_prompt}
|
30 |
Ответ: {response}
|
31 |
Оцените по критериям:
|
@@ -48,7 +48,7 @@ class EvaluationPrompts:
|
|
48 |
{response}
|
49 |
|
50 |
## **Инструкция по оценке**
|
51 |
-
Оцените ответ по шкале от 0 до
|
52 |
|
53 |
1. **Креативность** – Насколько ответ уникален и оригинален? Есть ли неожиданные, но уместные идеи?
|
54 |
2. **Разнообразие** – Использует ли ответ различные стилистические приемы, примеры, аналогии, синонимы? Насколько он выразителен?
|
@@ -306,48 +306,48 @@ class BenchmarkEvaluator:
|
|
306 |
self.results_history.append(results)
|
307 |
return results, creative_df
|
308 |
|
309 |
-
def evaluate_all_models(self, df, models=None, model_columns=None, prompt_col='rus_prompt'):
|
310 |
-
|
311 |
-
|
312 |
-
|
313 |
-
|
314 |
-
|
315 |
-
|
316 |
-
|
317 |
-
|
318 |
-
|
319 |
-
|
320 |
-
|
321 |
-
|
322 |
-
|
323 |
-
|
324 |
-
|
325 |
-
|
326 |
-
|
327 |
-
|
328 |
-
|
329 |
-
|
330 |
-
|
331 |
-
|
332 |
-
|
333 |
-
|
334 |
-
|
335 |
-
|
336 |
-
|
337 |
-
|
338 |
-
|
339 |
-
|
340 |
-
|
341 |
-
|
342 |
-
|
343 |
-
|
344 |
-
|
345 |
-
|
346 |
-
|
347 |
-
|
348 |
-
|
349 |
-
|
350 |
-
|
351 |
|
352 |
def get_leaderboard(self):
|
353 |
"""Return the current leaderboard"""
|
|
|
25 |
class EvaluationPrompts:
|
26 |
@staticmethod
|
27 |
def get_first_check(original_prompt: str, response: str) -> str:
|
28 |
+
return f"""Оцените следующий ответ по шкале от 0 до 10:
|
29 |
Оригинальный запрос: {original_prompt}
|
30 |
Ответ: {response}
|
31 |
Оцените по критериям:
|
|
|
48 |
{response}
|
49 |
|
50 |
## **Инструкция по оценке**
|
51 |
+
Оцените ответ по шкале от 0 до 10 по трем критериям:
|
52 |
|
53 |
1. **Креативность** – Насколько ответ уникален и оригинален? Есть ли неожиданные, но уместные идеи?
|
54 |
2. **Разнообразие** – Использует ли ответ различные стилистические приемы, примеры, аналогии, синонимы? Насколько он выразителен?
|
|
|
306 |
self.results_history.append(results)
|
307 |
return results, creative_df
|
308 |
|
309 |
+
def evaluate_all_models(self, df, models=None, model_columns=None, prompt_col='rus_prompt'):
|
310 |
+
"""Evaluate multiple models from the dataframe"""
|
311 |
+
if models is not None and model_columns is not None:
|
312 |
+
model_mapping = dict(zip(models, model_columns))
|
313 |
+
elif models is not None:
|
314 |
+
model_mapping = {model: f"{model}_answers" for model in models}
|
315 |
+
else:
|
316 |
+
answer_cols = [col for col in df.columns if col.endswith('_answers')]
|
317 |
+
models = [col.replace('_answers', '') for col in answer_cols]
|
318 |
+
model_mapping = dict(zip(models, answer_cols))
|
319 |
+
|
320 |
+
results = []
|
321 |
+
detail_dfs = []
|
322 |
+
|
323 |
+
for model, column in model_mapping.items():
|
324 |
+
try:
|
325 |
+
model_results, detail_df = self.evaluate_model(df, model, prompt_col, column)
|
326 |
+
results.append(model_results)
|
327 |
+
detail_dfs.append(detail_df)
|
328 |
+
print(f"Completed evaluation for {model}")
|
329 |
+
except Exception as e:
|
330 |
+
print(f"Error evaluating {model}: {str(e)}")
|
331 |
+
|
332 |
+
# Create combined results DataFrame
|
333 |
+
benchmark_df = pd.DataFrame([{
|
334 |
+
'model': r['model'],
|
335 |
+
'creativity_score': r['creativity_score'],
|
336 |
+
'stability_score': r['stability_score'],
|
337 |
+
'combined_score': r['combined_score'],
|
338 |
+
'evaluation_timestamp': r['evaluation_timestamp']
|
339 |
+
} for r in results])
|
340 |
+
|
341 |
+
timestamp = pd.Timestamp.now().strftime('%Y%m%d_%H%M%S')
|
342 |
+
benchmark_df.to_csv(f'results/benchmark_results_{timestamp}.csv', index=False)
|
343 |
+
print(f"Benchmark completed. Results saved to results/benchmark_results_{timestamp}.csv")
|
344 |
+
|
345 |
+
if detail_dfs:
|
346 |
+
combined_details = pd.concat(detail_dfs)
|
347 |
+
combined_details.to_csv(f'results/detailed_evaluation_{timestamp}.csv', index=False)
|
348 |
+
print(f"Detailed evaluation saved to results/detailed_evaluation_{timestamp}.csv")
|
349 |
+
|
350 |
+
return benchmark_df, self.leaderboard_df
|
351 |
|
352 |
def get_leaderboard(self):
|
353 |
"""Return the current leaderboard"""
|