Improved status messages using toasts
Browse files- app.py +17 -14
- pages/scoreboard.py +16 -16
app.py
CHANGED
@@ -178,22 +178,20 @@ def call_function(model_name):
|
|
178 |
return transcript
|
179 |
|
180 |
def transcribe_audio():
|
181 |
-
|
182 |
-
|
183 |
-
model1_name, model2_name = random.sample(models_list, 2)
|
184 |
|
185 |
-
|
186 |
-
|
187 |
|
188 |
-
|
189 |
-
|
190 |
-
|
191 |
-
|
192 |
-
|
193 |
-
|
194 |
-
st.session_state.option_2_response_time = round(time_3 - time_2,3)
|
195 |
-
st.session_state.option_1_response_time = round(time_2 - time_1,3)
|
196 |
|
|
|
|
|
197 |
|
198 |
return transcript1, transcript2
|
199 |
|
@@ -212,6 +210,7 @@ def reset_state():
|
|
212 |
|
213 |
def on_option_1_click():
|
214 |
if st.session_state.transcribed and not st.session_state.option_selected:
|
|
|
215 |
st.session_state.option_1_model_name_state = f"π {st.session_state.option_1_model_name} π"
|
216 |
st.session_state.option_2_model_name_state = f"π {st.session_state.option_2_model_name} π"
|
217 |
st.session_state.choice = f"You chose Option 1. Option 1 was {st.session_state.option_1_model_name} Option 2 was {st.session_state.option_2_model_name}"
|
@@ -227,6 +226,7 @@ def on_option_1_click():
|
|
227 |
|
228 |
def on_option_2_click():
|
229 |
if st.session_state.transcribed and not st.session_state.option_selected:
|
|
|
230 |
st.session_state.option_2_model_name_state = f"π {st.session_state.option_2_model_name} π"
|
231 |
st.session_state.option_1_model_name_state = f"π {st.session_state.option_1_model_name} π"
|
232 |
st.session_state.choice = f"You chose Option 2. Option 1 was {st.session_state.option_1_model_name} Option 2 was {st.session_state.option_2_model_name}"
|
@@ -242,6 +242,7 @@ def on_option_2_click():
|
|
242 |
|
243 |
def on_option_both_click():
|
244 |
if st.session_state.transcribed and not st.session_state.option_selected:
|
|
|
245 |
st.session_state.option_2_model_name_state = f"π {st.session_state.option_2_model_name} π"
|
246 |
st.session_state.option_1_model_name_state = f"π {st.session_state.option_1_model_name} π"
|
247 |
st.session_state.choice = f"You chose Prefer both. Option 1 was {st.session_state.option_1_model_name} Option 2 was {st.session_state.option_2_model_name}"
|
@@ -258,6 +259,7 @@ def on_option_both_click():
|
|
258 |
|
259 |
def on_option_none_click():
|
260 |
if st.session_state.transcribed and not st.session_state.option_selected:
|
|
|
261 |
st.session_state.option_1_model_name_state = f"π {st.session_state.option_1_model_name} π"
|
262 |
st.session_state.option_2_model_name_state = f"π {st.session_state.option_2_model_name} π"
|
263 |
st.session_state.choice = f"You chose none option. Option 1 was {st.session_state.option_1_model_name} Option 2 was {st.session_state.option_2_model_name}"
|
@@ -274,6 +276,7 @@ def on_option_none_click():
|
|
274 |
|
275 |
def on_click_transcribe():
|
276 |
if st.session_state.has_audio:
|
|
|
277 |
option_1_text, option_2_text = transcribe_audio(
|
278 |
)
|
279 |
st.session_state.option_1 = option_1_text
|
@@ -285,6 +288,7 @@ def on_click_transcribe():
|
|
285 |
|
286 |
def on_random_click():
|
287 |
reset_state()
|
|
|
288 |
fetch_audio_payload = {"task": "fetch_audio"}
|
289 |
array, sampling_rate, filepath = send_task(fetch_audio_payload)
|
290 |
st.session_state.audio = {"data":array,"sample_rate":sampling_rate,"format":"audio/wav"}
|
@@ -359,7 +363,6 @@ def main():
|
|
359 |
with tempfile.NamedTemporaryFile(delete=False, suffix='.wav') as tmp_file:
|
360 |
tmp_file.write(audio_bytes)
|
361 |
os.makedirs(TEMP_DIR, exist_ok=True)
|
362 |
-
# s3_client.put_object(Bucket=os.getenv('AWS_BUCKET_NAME'), Key=f"{os.getenv('AUDIOS_KEY')}/{tmp_file.name.split('/')[-1]}", Body=audio_bytes)
|
363 |
st.session_state.audio_path = tmp_file.name
|
364 |
st.session_state.option_selected = None
|
365 |
|
|
|
178 |
return transcript
|
179 |
|
180 |
def transcribe_audio():
|
181 |
+
models_list = ["Ori Apex", "Ori Apex XT", "deepgram", "Ori Swift", "Ori Prime","azure"]
|
182 |
+
model1_name, model2_name = random.sample(models_list, 2)
|
|
|
183 |
|
184 |
+
st.session_state.option_1_model_name = model1_name
|
185 |
+
st.session_state.option_2_model_name = model2_name
|
186 |
|
187 |
+
time_1 = time.time()
|
188 |
+
transcript1 = call_function(model1_name)
|
189 |
+
time_2 = time.time()
|
190 |
+
transcript2 = call_function(model2_name)
|
191 |
+
time_3 = time.time()
|
|
|
|
|
|
|
192 |
|
193 |
+
st.session_state.option_2_response_time = round(time_3 - time_2,3)
|
194 |
+
st.session_state.option_1_response_time = round(time_2 - time_1,3)
|
195 |
|
196 |
return transcript1, transcript2
|
197 |
|
|
|
210 |
|
211 |
def on_option_1_click():
|
212 |
if st.session_state.transcribed and not st.session_state.option_selected:
|
213 |
+
st.toast("Saving and loading results... please wait",icon="πΎ")
|
214 |
st.session_state.option_1_model_name_state = f"π {st.session_state.option_1_model_name} π"
|
215 |
st.session_state.option_2_model_name_state = f"π {st.session_state.option_2_model_name} π"
|
216 |
st.session_state.choice = f"You chose Option 1. Option 1 was {st.session_state.option_1_model_name} Option 2 was {st.session_state.option_2_model_name}"
|
|
|
226 |
|
227 |
def on_option_2_click():
|
228 |
if st.session_state.transcribed and not st.session_state.option_selected:
|
229 |
+
st.toast("Saving and loading results... please wait",icon="πΎ")
|
230 |
st.session_state.option_2_model_name_state = f"π {st.session_state.option_2_model_name} π"
|
231 |
st.session_state.option_1_model_name_state = f"π {st.session_state.option_1_model_name} π"
|
232 |
st.session_state.choice = f"You chose Option 2. Option 1 was {st.session_state.option_1_model_name} Option 2 was {st.session_state.option_2_model_name}"
|
|
|
242 |
|
243 |
def on_option_both_click():
|
244 |
if st.session_state.transcribed and not st.session_state.option_selected:
|
245 |
+
st.toast("Saving and loading results... please wait",icon="πΎ")
|
246 |
st.session_state.option_2_model_name_state = f"π {st.session_state.option_2_model_name} π"
|
247 |
st.session_state.option_1_model_name_state = f"π {st.session_state.option_1_model_name} π"
|
248 |
st.session_state.choice = f"You chose Prefer both. Option 1 was {st.session_state.option_1_model_name} Option 2 was {st.session_state.option_2_model_name}"
|
|
|
259 |
|
260 |
def on_option_none_click():
|
261 |
if st.session_state.transcribed and not st.session_state.option_selected:
|
262 |
+
st.toast("Saving and loading results... please wait",icon="πΎ")
|
263 |
st.session_state.option_1_model_name_state = f"π {st.session_state.option_1_model_name} π"
|
264 |
st.session_state.option_2_model_name_state = f"π {st.session_state.option_2_model_name} π"
|
265 |
st.session_state.choice = f"You chose none option. Option 1 was {st.session_state.option_1_model_name} Option 2 was {st.session_state.option_2_model_name}"
|
|
|
276 |
|
277 |
def on_click_transcribe():
|
278 |
if st.session_state.has_audio:
|
279 |
+
st.toast('Transcribing audio... this may take up to 30 seconds',icon="π―")
|
280 |
option_1_text, option_2_text = transcribe_audio(
|
281 |
)
|
282 |
st.session_state.option_1 = option_1_text
|
|
|
288 |
|
289 |
def on_random_click():
|
290 |
reset_state()
|
291 |
+
st.toast("Fetching random audio... please wait",icon="π²")
|
292 |
fetch_audio_payload = {"task": "fetch_audio"}
|
293 |
array, sampling_rate, filepath = send_task(fetch_audio_payload)
|
294 |
st.session_state.audio = {"data":array,"sample_rate":sampling_rate,"format":"audio/wav"}
|
|
|
363 |
with tempfile.NamedTemporaryFile(delete=False, suffix='.wav') as tmp_file:
|
364 |
tmp_file.write(audio_bytes)
|
365 |
os.makedirs(TEMP_DIR, exist_ok=True)
|
|
|
366 |
st.session_state.audio_path = tmp_file.name
|
367 |
st.session_state.option_selected = None
|
368 |
|
pages/scoreboard.py
CHANGED
@@ -171,23 +171,23 @@ def create_metric_container(label, value, full_name=None):
|
|
171 |
st.markdown(f"<h3 style='margin-top: 0;'>{value}</h3>", unsafe_allow_html=True)
|
172 |
|
173 |
def on_refresh_click():
|
174 |
-
|
175 |
-
|
176 |
-
|
177 |
|
178 |
-
|
179 |
-
|
180 |
-
|
181 |
-
|
182 |
-
|
183 |
-
|
184 |
|
185 |
-
|
186 |
-
|
187 |
-
|
188 |
-
|
189 |
-
|
190 |
-
|
191 |
|
192 |
def dashboard():
|
193 |
st.title('Model Arena Scoreboard')
|
@@ -204,7 +204,7 @@ def dashboard():
|
|
204 |
elo_df = pd.read_csv(f)
|
205 |
st.session_state.elo_df = elo_df
|
206 |
|
207 |
-
st.button("Refresh",on_click=on_refresh_click,key="refresh_btn")
|
208 |
|
209 |
if len(st.session_state.df) != 0:
|
210 |
metrics = calculate_metrics(st.session_state.df)
|
|
|
171 |
st.markdown(f"<h3 style='margin-top: 0;'>{value}</h3>", unsafe_allow_html=True)
|
172 |
|
173 |
def on_refresh_click():
|
174 |
+
st.toast("Refreshing data... please wait",icon="π")
|
175 |
+
with fs.open(SAVE_PATH, 'rb') as f:
|
176 |
+
st.session_state.df = pd.read_csv(f)
|
177 |
|
178 |
+
try:
|
179 |
+
with fs.open(ELO_JSON_PATH,'r') as f:
|
180 |
+
st.session_state.elo_json = json.load(f)
|
181 |
+
except Exception as e:
|
182 |
+
logger.error("Error while reading elo json file %s",e)
|
183 |
+
st.session_state.elo_json = None
|
184 |
|
185 |
+
try:
|
186 |
+
with fs.open(ELO_CSV_PATH,'rb') as f:
|
187 |
+
st.session_state.elo_df = pd.read_csv(f)
|
188 |
+
except Exception as e:
|
189 |
+
logger.error("Error while reading elo csv file %s",e)
|
190 |
+
st.session_state.elo_df = None
|
191 |
|
192 |
def dashboard():
|
193 |
st.title('Model Arena Scoreboard')
|
|
|
204 |
elo_df = pd.read_csv(f)
|
205 |
st.session_state.elo_df = elo_df
|
206 |
|
207 |
+
st.button("π Refresh",on_click=on_refresh_click,key="refresh_btn")
|
208 |
|
209 |
if len(st.session_state.df) != 0:
|
210 |
metrics = calculate_metrics(st.session_state.df)
|