aquibmoin commited on
Commit
02bddcc
·
verified ·
1 Parent(s): 6f7c8c7

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +28 -12
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 {metric: f"{score*100:.2f}%" for metric, score in ragas_results.scores.items()}
 
 
 
36
 
37
- def plot_radar_chart(ragas_results):
38
- labels = list(ragas_results.keys())
39
- scores = list(ragas_results.values())
40
-
41
- scores += scores[:1]
42
- angles = np.linspace(0, 2 * np.pi, len(labels) + 1, endpoint=True)
 
 
 
 
 
 
 
 
43
 
44
  fig, ax = plt.subplots(figsize=(6,6), subplot_kw=dict(polar=True))
45
- ax.plot(angles, scores, 'o-', linewidth=2)
46
- ax.fill(angles, scores, alpha=0.25)
 
 
 
 
 
47
  ax.set_xticks(angles[:-1])
48
  ax.set_xticklabels(labels)
49
- ax.set_yticklabels([])
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 = plot_radar_chart(ragas_result)
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