Spaces:
Sleeping
Sleeping
Update app.py
Browse files
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, #
|
| 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=
|
| 197 |
)
|
| 198 |
|
| 199 |
-
|
|
|
|
| 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 |
-
|
| 227 |
-
|
| 228 |
-
|
| 229 |
-
|
|
|
|
| 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()
|