davidpomerenke commited on
Commit
fe700d4
·
verified ·
1 Parent(s): a5f064d

Upload from GitHub Actions: Fix crashes when searching low-resource languages

Browse files

- Add null checks for empty model arrays in HistoryPlot.js
- Fix array bounds checking in SpeakerPlot.js
- Improve UI styling for warning banner and GitHub link

Fixes issue where searching for languages like 'Erzya' crashed the app
when no AI models have been evaluated on that language yet.

frontend/src/App.js CHANGED
@@ -69,35 +69,50 @@ function App () {
69
  style={{
70
  backgroundColor: '#fff3cd',
71
  color: '#856404',
72
- padding: '0.75rem 1.25rem',
73
  marginBottom: '1rem',
74
  border: '1px solid #ffeeba',
75
  borderRadius: '0.25rem',
76
- textAlign: 'center'
 
 
77
  }}
78
  >
79
  <strong>Work in Progress:</strong> This dashboard is currently under
80
- active development. Evaluation results are not yet final.
 
 
 
 
 
 
 
 
 
81
  <a
82
  href='https://github.com/datenlabor-bmz/ai-language-monitor'
83
  target='_blank'
84
  rel='noopener noreferrer'
85
  style={{
86
  textDecoration: 'none',
87
- color: '#856404',
88
- float: 'right',
89
- fontSize: '1.2rem',
90
- fontWeight: 'bold',
91
- padding: '0 0.5rem',
92
- borderRadius: '3px',
93
- backgroundColor: 'rgba(255,255,255,0.3)'
 
 
 
 
 
 
 
 
94
  }}
95
  >
96
- <i
97
- className='pi pi-github'
98
- title='View on GitHub'
99
- style={{ marginRight: '0.3rem' }}
100
- />
101
  GitHub
102
  </a>
103
  </div>
 
69
  style={{
70
  backgroundColor: '#fff3cd',
71
  color: '#856404',
72
+ padding: '1rem 1.5rem',
73
  marginBottom: '1rem',
74
  border: '1px solid #ffeeba',
75
  borderRadius: '0.25rem',
76
+ textAlign: 'center',
77
+ lineHeight: '1.5',
78
+ position: 'relative'
79
  }}
80
  >
81
  <strong>Work in Progress:</strong> This dashboard is currently under
82
+ active development. Evaluation results are not yet final. Note that the visualised results currently stem from sampling 10 instances per combination of model, task, and language. More extensive evaluation runs will be released later this year.
83
+ </div>
84
+ <div
85
+ style={{
86
+ display: 'flex',
87
+ justifyContent: 'flex-end',
88
+ padding: '0 1.5rem',
89
+ marginBottom: '1rem'
90
+ }}
91
+ >
92
  <a
93
  href='https://github.com/datenlabor-bmz/ai-language-monitor'
94
  target='_blank'
95
  rel='noopener noreferrer'
96
  style={{
97
  textDecoration: 'none',
98
+ color: '#6c757d',
99
+ fontSize: '1rem',
100
+ fontWeight: '500',
101
+ padding: '0.5rem 1rem',
102
+ borderRadius: '0.375rem',
103
+ backgroundColor: '#f8f9fa',
104
+ border: '1px solid #e9ecef',
105
+ display: 'flex',
106
+ alignItems: 'center',
107
+ gap: '0.5rem',
108
+ transition: 'all 0.2s ease',
109
+ ':hover': {
110
+ backgroundColor: '#e9ecef',
111
+ color: '#495057'
112
+ }
113
  }}
114
  >
115
+ <i className='pi pi-github' title='View on GitHub' />
 
 
 
 
116
  GitHub
117
  </a>
118
  </div>
frontend/src/components/HistoryPlot.js CHANGED
@@ -50,12 +50,12 @@ const HistoryPlot = ({ data, width = 750, height = 500 }) => {
50
  ...models.filter(d => d.newRecord),
51
  {
52
  creation_date: new Date(),
53
- maxAverage: models[models.length - 1].maxAverage
54
  }
55
  ],
56
  {
57
  x: d => d.creation_date,
58
- y: d => d.maxAverage,
59
  curve: 'step-after',
60
  strokeOpacity: 0.3
61
  }
 
50
  ...models.filter(d => d.newRecord),
51
  {
52
  creation_date: new Date(),
53
+ maxAverage: models[models.length - 1]?.maxAverage || 0
54
  }
55
  ],
56
  {
57
  x: d => d.creation_date,
58
+ y: d => d.maxAverage || 0,
59
  curve: 'step-after',
60
  strokeOpacity: 0.3
61
  }
frontend/src/components/SpeakerPlot.js CHANGED
@@ -73,10 +73,10 @@ const SpeakerPlot = ({ data, width = 750, height = 500 }) => {
73
  textStrokeOpacity: 0,
74
  textFillOpacity: 0
75
  }),
76
- Plot.tip(['The 40 most spoken languages cover 80% of all speakers.'], {
77
  x: 40,
78
  y: languages[39].cumSpeakers / 1e6
79
- })
80
  ]
81
  })
82
  containerRef.current.append(plot)
 
73
  textStrokeOpacity: 0,
74
  textFillOpacity: 0
75
  }),
76
+ ...(languages.length >= 40 ? [Plot.tip(['The 40 most spoken languages cover 80% of all speakers.'], {
77
  x: 40,
78
  y: languages[39].cumSpeakers / 1e6
79
+ })] : [])
80
  ]
81
  })
82
  containerRef.current.append(plot)