Spaces:
Sleeping
Sleeping
Update app.py
Browse files
app.py
CHANGED
@@ -32,22 +32,38 @@ def clean_retrieved_context(raw_context):
|
|
32 |
return cleaned.strip()
|
33 |
|
34 |
def format_ragas_results(ragas_results):
|
35 |
-
return
|
|
|
|
|
|
|
36 |
|
37 |
-
def
|
38 |
-
|
39 |
-
|
40 |
-
|
41 |
-
|
42 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
43 |
|
44 |
fig, ax = plt.subplots(figsize=(6,6), subplot_kw=dict(polar=True))
|
45 |
-
|
46 |
-
ax.fill(angles,
|
|
|
|
|
|
|
|
|
|
|
47 |
ax.set_xticks(angles[:-1])
|
48 |
ax.set_xticklabels(labels)
|
49 |
-
|
50 |
-
ax.set_title('RAGAS Metrics Radar Chart')
|
51 |
plt.tight_layout()
|
52 |
return fig
|
53 |
|
@@ -89,7 +105,7 @@ def evaluate_scdd(ai_scdd_file, human_scdd_file, user_input):
|
|
89 |
# RAGAS metrics outputs
|
90 |
|
91 |
formatted_scores = format_ragas_results(ragas_result)
|
92 |
-
radar_chart =
|
93 |
|
94 |
return formatted_scores, radar_chart
|
95 |
|
|
|
32 |
return cleaned.strip()
|
33 |
|
34 |
def format_ragas_results(ragas_results):
|
35 |
+
return [
|
36 |
+
{metric: f"{score*100:.2f}%" for metric, score in sample_scores.items()}
|
37 |
+
for sample_scores in ragas_results.scores
|
38 |
+
]
|
39 |
|
40 |
+
def plot_ragas_radar_chart(ragas_results):
|
41 |
+
# Extract first sample if multiple scores
|
42 |
+
if isinstance(ragas_results.scores, list):
|
43 |
+
scores_dict = ragas_results.scores[0] # first sample
|
44 |
+
else:
|
45 |
+
scores_dict = ragas_results.scores
|
46 |
+
|
47 |
+
labels = list(scores_dict.keys())
|
48 |
+
values = list(scores_dict.values())
|
49 |
+
|
50 |
+
# Close the loop for radar chart
|
51 |
+
values += values[:1]
|
52 |
+
angles = np.linspace(0, 2 * np.pi, len(labels), endpoint=False).tolist()
|
53 |
+
angles += angles[:1]
|
54 |
|
55 |
fig, ax = plt.subplots(figsize=(6,6), subplot_kw=dict(polar=True))
|
56 |
+
|
57 |
+
ax.fill(angles, values, color='skyblue', alpha=0.4)
|
58 |
+
ax.plot(angles, values, color='blue', linewidth=2)
|
59 |
+
|
60 |
+
ax.set_yticks([0.2, 0.4, 0.6, 0.8, 1.0])
|
61 |
+
ax.set_yticklabels(['0.2', '0.4', '0.6', '0.8', '1.0'])
|
62 |
+
|
63 |
ax.set_xticks(angles[:-1])
|
64 |
ax.set_xticklabels(labels)
|
65 |
+
|
66 |
+
ax.set_title('RAGAS Metrics Radar Chart', size=14, y=1.05)
|
67 |
plt.tight_layout()
|
68 |
return fig
|
69 |
|
|
|
105 |
# RAGAS metrics outputs
|
106 |
|
107 |
formatted_scores = format_ragas_results(ragas_result)
|
108 |
+
radar_chart = plot_ragas_radar_chart(ragas_result)
|
109 |
|
110 |
return formatted_scores, radar_chart
|
111 |
|