Update app.py
Browse files
app.py
CHANGED
|
@@ -448,7 +448,7 @@ def display_bookmarks():
|
|
| 448 |
logger.info("HTML display generated")
|
| 449 |
return cards
|
| 450 |
|
| 451 |
-
def process_uploaded_file(file, state_bookmarks
|
| 452 |
"""
|
| 453 |
Process the uploaded bookmarks file.
|
| 454 |
"""
|
|
@@ -457,23 +457,23 @@ def process_uploaded_file(file, state_bookmarks, bookmark_selector):
|
|
| 457 |
|
| 458 |
if file is None:
|
| 459 |
logger.warning("No file uploaded")
|
| 460 |
-
return "Please upload a bookmarks HTML file.", '', state_bookmarks,
|
| 461 |
|
| 462 |
try:
|
| 463 |
file_content = file.decode('utf-8')
|
| 464 |
except UnicodeDecodeError as e:
|
| 465 |
logger.error(f"Error decoding the file: {e}", exc_info=True)
|
| 466 |
-
return "Error decoding the file. Please ensure it's a valid HTML file.", '', state_bookmarks,
|
| 467 |
|
| 468 |
try:
|
| 469 |
bookmarks = parse_bookmarks(file_content)
|
| 470 |
except Exception as e:
|
| 471 |
logger.error(f"Error parsing bookmarks: {e}", exc_info=True)
|
| 472 |
-
return "Error parsing the bookmarks HTML file.", '', state_bookmarks,
|
| 473 |
|
| 474 |
if not bookmarks:
|
| 475 |
logger.warning("No bookmarks found in the uploaded file")
|
| 476 |
-
return "No bookmarks found in the uploaded file.", '', state_bookmarks,
|
| 477 |
|
| 478 |
# Assign unique IDs to bookmarks
|
| 479 |
for idx, bookmark in enumerate(bookmarks):
|
|
@@ -493,7 +493,7 @@ def process_uploaded_file(file, state_bookmarks, bookmark_selector):
|
|
| 493 |
faiss_index = vectorize_and_index(bookmarks)
|
| 494 |
except Exception as e:
|
| 495 |
logger.error(f"Error building FAISS index: {e}", exc_info=True)
|
| 496 |
-
return "Error building search index.", '', state_bookmarks,
|
| 497 |
|
| 498 |
message = f"โ
Successfully processed {len(bookmarks)} bookmarks."
|
| 499 |
logger.info(message)
|
|
@@ -506,15 +506,15 @@ def process_uploaded_file(file, state_bookmarks, bookmark_selector):
|
|
| 506 |
# Update state
|
| 507 |
state_bookmarks = bookmarks.copy()
|
| 508 |
|
| 509 |
-
return message, bookmark_html, state_bookmarks,
|
| 510 |
|
| 511 |
-
def delete_selected_bookmarks(selected_indices, state_bookmarks
|
| 512 |
"""
|
| 513 |
Delete selected bookmarks and remove their vectors from the FAISS index.
|
| 514 |
"""
|
| 515 |
global bookmarks, faiss_index
|
| 516 |
if not selected_indices:
|
| 517 |
-
return "โ ๏ธ No bookmarks selected.",
|
| 518 |
|
| 519 |
ids_to_delete = []
|
| 520 |
indices_to_delete = []
|
|
@@ -545,16 +545,16 @@ def delete_selected_bookmarks(selected_indices, state_bookmarks, bookmark_select
|
|
| 545 |
# Update state
|
| 546 |
state_bookmarks = bookmarks.copy()
|
| 547 |
|
| 548 |
-
return message,
|
| 549 |
|
| 550 |
-
def edit_selected_bookmarks_category(selected_indices, new_category, state_bookmarks
|
| 551 |
"""
|
| 552 |
Edit category of selected bookmarks.
|
| 553 |
"""
|
| 554 |
if not selected_indices:
|
| 555 |
-
return "โ ๏ธ No bookmarks selected.",
|
| 556 |
if not new_category:
|
| 557 |
-
return "โ ๏ธ No new category selected.",
|
| 558 |
|
| 559 |
indices = []
|
| 560 |
for s in selected_indices:
|
|
@@ -581,7 +581,7 @@ def edit_selected_bookmarks_category(selected_indices, new_category, state_bookm
|
|
| 581 |
# Update state
|
| 582 |
state_bookmarks = bookmarks.copy()
|
| 583 |
|
| 584 |
-
return message,
|
| 585 |
|
| 586 |
def export_bookmarks():
|
| 587 |
"""
|
|
@@ -698,6 +698,12 @@ def build_app():
|
|
| 698 |
# Initialize state
|
| 699 |
state_bookmarks = gr.State([])
|
| 700 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 701 |
# General Overview
|
| 702 |
gr.Markdown("""
|
| 703 |
# ๐ SmartMarks - AI Browser Bookmarks Manager
|
|
@@ -742,8 +748,8 @@ Navigate through the tabs to explore each feature in detail.
|
|
| 742 |
|
| 743 |
process_button.click(
|
| 744 |
process_uploaded_file,
|
| 745 |
-
inputs=[upload, state_bookmarks
|
| 746 |
-
outputs=[output_text, bookmark_display, state_bookmarks,
|
| 747 |
)
|
| 748 |
|
| 749 |
with gr.Tab("Chat with Bookmarks"):
|
|
@@ -813,11 +819,9 @@ Navigate through the tabs to explore each feature in detail.
|
|
| 813 |
bookmark_display_manage = gr.HTML(label="๐ Bookmarks")
|
| 814 |
|
| 815 |
with gr.Row():
|
| 816 |
-
#
|
| 817 |
-
|
| 818 |
-
|
| 819 |
-
choices=[]
|
| 820 |
-
)
|
| 821 |
|
| 822 |
with gr.Row():
|
| 823 |
delete_button = gr.Button("๐๏ธ Delete Selected")
|
|
|
|
| 448 |
logger.info("HTML display generated")
|
| 449 |
return cards
|
| 450 |
|
| 451 |
+
def process_uploaded_file(file, state_bookmarks):
|
| 452 |
"""
|
| 453 |
Process the uploaded bookmarks file.
|
| 454 |
"""
|
|
|
|
| 457 |
|
| 458 |
if file is None:
|
| 459 |
logger.warning("No file uploaded")
|
| 460 |
+
return "Please upload a bookmarks HTML file.", '', state_bookmarks, gr.update(choices=[])
|
| 461 |
|
| 462 |
try:
|
| 463 |
file_content = file.decode('utf-8')
|
| 464 |
except UnicodeDecodeError as e:
|
| 465 |
logger.error(f"Error decoding the file: {e}", exc_info=True)
|
| 466 |
+
return "Error decoding the file. Please ensure it's a valid HTML file.", '', state_bookmarks, gr.update(choices=[])
|
| 467 |
|
| 468 |
try:
|
| 469 |
bookmarks = parse_bookmarks(file_content)
|
| 470 |
except Exception as e:
|
| 471 |
logger.error(f"Error parsing bookmarks: {e}", exc_info=True)
|
| 472 |
+
return "Error parsing the bookmarks HTML file.", '', state_bookmarks, gr.update(choices=[])
|
| 473 |
|
| 474 |
if not bookmarks:
|
| 475 |
logger.warning("No bookmarks found in the uploaded file")
|
| 476 |
+
return "No bookmarks found in the uploaded file.", '', state_bookmarks, gr.update(choices=[])
|
| 477 |
|
| 478 |
# Assign unique IDs to bookmarks
|
| 479 |
for idx, bookmark in enumerate(bookmarks):
|
|
|
|
| 493 |
faiss_index = vectorize_and_index(bookmarks)
|
| 494 |
except Exception as e:
|
| 495 |
logger.error(f"Error building FAISS index: {e}", exc_info=True)
|
| 496 |
+
return "Error building search index.", '', state_bookmarks, gr.update(choices=[])
|
| 497 |
|
| 498 |
message = f"โ
Successfully processed {len(bookmarks)} bookmarks."
|
| 499 |
logger.info(message)
|
|
|
|
| 506 |
# Update state
|
| 507 |
state_bookmarks = bookmarks.copy()
|
| 508 |
|
| 509 |
+
return message, bookmark_html, state_bookmarks, gr.update(choices=choices)
|
| 510 |
|
| 511 |
+
def delete_selected_bookmarks(selected_indices, state_bookmarks):
|
| 512 |
"""
|
| 513 |
Delete selected bookmarks and remove their vectors from the FAISS index.
|
| 514 |
"""
|
| 515 |
global bookmarks, faiss_index
|
| 516 |
if not selected_indices:
|
| 517 |
+
return "โ ๏ธ No bookmarks selected.", gr.update(choices=[]), display_bookmarks()
|
| 518 |
|
| 519 |
ids_to_delete = []
|
| 520 |
indices_to_delete = []
|
|
|
|
| 545 |
# Update state
|
| 546 |
state_bookmarks = bookmarks.copy()
|
| 547 |
|
| 548 |
+
return message, gr.update(choices=choices), display_bookmarks()
|
| 549 |
|
| 550 |
+
def edit_selected_bookmarks_category(selected_indices, new_category, state_bookmarks):
|
| 551 |
"""
|
| 552 |
Edit category of selected bookmarks.
|
| 553 |
"""
|
| 554 |
if not selected_indices:
|
| 555 |
+
return "โ ๏ธ No bookmarks selected.", gr.update(choices=[]), display_bookmarks(), state_bookmarks
|
| 556 |
if not new_category:
|
| 557 |
+
return "โ ๏ธ No new category selected.", gr.update(choices=[]), display_bookmarks(), state_bookmarks
|
| 558 |
|
| 559 |
indices = []
|
| 560 |
for s in selected_indices:
|
|
|
|
| 581 |
# Update state
|
| 582 |
state_bookmarks = bookmarks.copy()
|
| 583 |
|
| 584 |
+
return message, gr.update(choices=choices), display_bookmarks(), state_bookmarks
|
| 585 |
|
| 586 |
def export_bookmarks():
|
| 587 |
"""
|
|
|
|
| 698 |
# Initialize state
|
| 699 |
state_bookmarks = gr.State([])
|
| 700 |
|
| 701 |
+
# Define 'bookmark_selector' globally
|
| 702 |
+
bookmark_selector = gr.CheckboxGroup(
|
| 703 |
+
label="โ
Select Bookmarks",
|
| 704 |
+
choices=[]
|
| 705 |
+
)
|
| 706 |
+
|
| 707 |
# General Overview
|
| 708 |
gr.Markdown("""
|
| 709 |
# ๐ SmartMarks - AI Browser Bookmarks Manager
|
|
|
|
| 748 |
|
| 749 |
process_button.click(
|
| 750 |
process_uploaded_file,
|
| 751 |
+
inputs=[upload, state_bookmarks],
|
| 752 |
+
outputs=[output_text, bookmark_display, state_bookmarks, bookmark_selector]
|
| 753 |
)
|
| 754 |
|
| 755 |
with gr.Tab("Chat with Bookmarks"):
|
|
|
|
| 819 |
bookmark_display_manage = gr.HTML(label="๐ Bookmarks")
|
| 820 |
|
| 821 |
with gr.Row():
|
| 822 |
+
# Include 'bookmark_selector' within the tab
|
| 823 |
+
# It is defined globally and will be displayed only in this tab via CSS
|
| 824 |
+
bookmark_selector
|
|
|
|
|
|
|
| 825 |
|
| 826 |
with gr.Row():
|
| 827 |
delete_button = gr.Button("๐๏ธ Delete Selected")
|