awacke1 commited on
Commit
16ef1bd
Β·
verified Β·
1 Parent(s): 3f63fe3

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +21 -15
app.py CHANGED
@@ -53,7 +53,7 @@ SESSION_VARS = {
53
  'nps_last_shown': None,
54
  'old_val': None,
55
  'voice_text': None,
56
- 'user_name': None, # New: Track user name
57
  'max_items': 100 # Default max items
58
  }
59
 
@@ -164,10 +164,11 @@ def list_saved_inputs():
164
  files = sorted(glob.glob(os.path.join(SAVED_INPUTS_DIR, "*.md")))
165
  return files
166
 
167
- def render_result(result):
168
  score = result.get('relevance_score', 0)
169
  result_filtered = {k: v for k, v in result.items()
170
  if k not in ['relevance_score', 'video_embed', 'description_embed', 'audio_embed']}
 
171
  if 'youtube_id' in result:
172
  st.video(f"https://youtube.com/watch?v={result['youtube_id']}&t={result.get('start_time', 0)}")
173
 
@@ -190,13 +191,17 @@ def render_result(result):
190
  "Tony (UK Male)": "en-GB-TonyNeural"
191
  }
192
 
 
 
 
193
  selected_voice = st.selectbox(
194
  "Voice:",
195
  list(voices.keys()),
196
- key=f"voice_{result.get('video_id', '')}"
197
  )
198
 
199
- if st.button("πŸ”Š Read", key=f"read_{result.get('video_id', '')}"):
 
200
  text_to_read = ". ".join(text_content)
201
  audio_file = speak_with_edge_tts(text_to_read, voices[selected_voice])
202
  if audio_file:
@@ -223,10 +228,11 @@ class FastDatasetSearcher:
223
 
224
  try:
225
  searchable_cols = []
226
- for col in df.columns:
227
- sample_val = df[col].iloc[0] if len(df) > 0 else ""
228
- if not isinstance(sample_val, (np.ndarray, bytes)):
229
- searchable_cols.append(col)
 
230
 
231
  query_lower = query.lower()
232
  query_terms = set(query_lower.split())
@@ -357,7 +363,7 @@ def main():
357
  if shown >= st.session_state['max_items']:
358
  break
359
  with st.expander(f"Result {i}", expanded=(i==1)):
360
- render_result(result[1])
361
  shown += 1
362
 
363
  elif run_option == "Deep Search":
@@ -379,7 +385,7 @@ def main():
379
  if shown >= st.session_state['max_items']:
380
  break
381
  with st.expander(f"Result {i}", expanded=(i==1)):
382
- render_result(result[1])
383
  shown += 1
384
 
385
  elif run_option == "Voice Summary":
@@ -400,7 +406,7 @@ def main():
400
  if shown >= st.session_state['max_items']:
401
  break
402
  with st.expander(f"Result {i}", expanded=(i==1)):
403
- render_result(result[1])
404
  shown += 1
405
 
406
  # Tabs
@@ -445,7 +451,7 @@ def main():
445
  if shown >= num_results:
446
  break
447
  with st.expander(f"Result {i}", expanded=(i==1)):
448
- render_result(result)
449
  shown += 1
450
  else:
451
  st.warning("No matching results found.")
@@ -480,7 +486,7 @@ def main():
480
  if shown >= st.session_state['max_items']:
481
  break
482
  with st.expander(f"Result {i}", expanded=(i==1)):
483
- render_result(result)
484
  shown += 1
485
 
486
  with tab3:
@@ -493,7 +499,7 @@ def main():
493
  for i, result in enumerate(entry['results'], 1):
494
  st.write(f"**Result {i}:**")
495
  if isinstance(result, pd.Series):
496
- render_result(result)
497
  else:
498
  st.write(result)
499
 
@@ -532,6 +538,6 @@ def main():
532
  st.write("Recent Searches:")
533
  for entry in reversed(recent_searches):
534
  st.write(f"πŸ” {entry['query']}")
535
-
536
  if __name__ == "__main__":
537
  main()
 
53
  'nps_last_shown': None,
54
  'old_val': None,
55
  'voice_text': None,
56
+ 'user_name': None, # Track user name
57
  'max_items': 100 # Default max items
58
  }
59
 
 
164
  files = sorted(glob.glob(os.path.join(SAVED_INPUTS_DIR, "*.md")))
165
  return files
166
 
167
+ def render_result(result, index=None):
168
  score = result.get('relevance_score', 0)
169
  result_filtered = {k: v for k, v in result.items()
170
  if k not in ['relevance_score', 'video_embed', 'description_embed', 'audio_embed']}
171
+
172
  if 'youtube_id' in result:
173
  st.video(f"https://youtube.com/watch?v={result['youtube_id']}&t={result.get('start_time', 0)}")
174
 
 
191
  "Tony (UK Male)": "en-GB-TonyNeural"
192
  }
193
 
194
+ # Ensure unique keys by using the index
195
+ voice_key = f"voice_{index}" if index is not None else f"voice_{id(result)}"
196
+
197
  selected_voice = st.selectbox(
198
  "Voice:",
199
  list(voices.keys()),
200
+ key=voice_key
201
  )
202
 
203
+ read_key = f"read_{voice_key}"
204
+ if st.button("πŸ”Š Read", key=read_key):
205
  text_to_read = ". ".join(text_content)
206
  audio_file = speak_with_edge_tts(text_to_read, voices[selected_voice])
207
  if audio_file:
 
228
 
229
  try:
230
  searchable_cols = []
231
+ if len(df) > 0:
232
+ for col in df.columns:
233
+ sample_val = df[col].iloc[0]
234
+ if not isinstance(sample_val, (np.ndarray, bytes)):
235
+ searchable_cols.append(col)
236
 
237
  query_lower = query.lower()
238
  query_terms = set(query_lower.split())
 
363
  if shown >= st.session_state['max_items']:
364
  break
365
  with st.expander(f"Result {i}", expanded=(i==1)):
366
+ render_result(result[1], index=i)
367
  shown += 1
368
 
369
  elif run_option == "Deep Search":
 
385
  if shown >= st.session_state['max_items']:
386
  break
387
  with st.expander(f"Result {i}", expanded=(i==1)):
388
+ render_result(result[1], index=i)
389
  shown += 1
390
 
391
  elif run_option == "Voice Summary":
 
406
  if shown >= st.session_state['max_items']:
407
  break
408
  with st.expander(f"Result {i}", expanded=(i==1)):
409
+ render_result(result[1], index=i)
410
  shown += 1
411
 
412
  # Tabs
 
451
  if shown >= num_results:
452
  break
453
  with st.expander(f"Result {i}", expanded=(i==1)):
454
+ render_result(result, index=i)
455
  shown += 1
456
  else:
457
  st.warning("No matching results found.")
 
486
  if shown >= st.session_state['max_items']:
487
  break
488
  with st.expander(f"Result {i}", expanded=(i==1)):
489
+ render_result(result, index=i)
490
  shown += 1
491
 
492
  with tab3:
 
499
  for i, result in enumerate(entry['results'], 1):
500
  st.write(f"**Result {i}:**")
501
  if isinstance(result, pd.Series):
502
+ render_result(result, index=i)
503
  else:
504
  st.write(result)
505
 
 
538
  st.write("Recent Searches:")
539
  for entry in reversed(recent_searches):
540
  st.write(f"πŸ” {entry['query']}")
541
+
542
  if __name__ == "__main__":
543
  main()