siddhartharya's picture
Update app.py
6952cd8 verified
raw
history blame
4.06 kB
# app.py
import gradio as gr
from bs4 import BeautifulSoup
import requests
from transformers import pipeline
from sentence_transformers import SentenceTransformer
import faiss
import numpy as np
import pandas as pd
# Initialize models and variables
summarizer = pipeline("summarization", model="sshleifer/distilbart-cnn-12-6")
embedding_model = SentenceTransformer('all-MiniLM-L6-v2')
faiss_index = None
bookmarks = []
fetch_cache = {}
def parse_bookmarks(file_content):
# [Same as before]
def fetch_url_info(bookmark):
# [Same as before]
def generate_summary(bookmark):
# [Same as before]
def vectorize_and_index(bookmarks):
# [Same as before]
def display_bookmarks():
data = []
for i, bookmark in enumerate(bookmarks):
status = "Dead Link" if bookmark.get('dead_link') else "Active"
css_class = "dead-link" if bookmark.get('dead_link') else ""
data.append({
'Index': i,
'Title': bookmark['title'],
'URL': bookmark['url'],
'Status': status,
'ETag': bookmark.get('etag', 'N/A'),
'Summary': bookmark.get('summary', ''),
'css_class': css_class
})
df = pd.DataFrame(data)
return df
def process_uploaded_file(file):
# [Updated as per Step 3]
def chatbot_response(user_query):
# [Same as before]
def edit_bookmark(bookmark_idx, new_title, new_url):
# [Update outputs to include the updated bookmarks list]
message, updated_df = "Bookmark updated successfully.", display_bookmarks()
return message, updated_df
def delete_bookmark(bookmark_idx):
# [Update outputs to include the updated bookmarks list]
message, updated_df = "Bookmark deleted successfully.", display_bookmarks()
return message, updated_df
def build_app():
with gr.Blocks(css="app.css") as demo:
gr.Markdown("# Bookmark Manager App")
with gr.Tab("Upload and Process Bookmarks"):
upload = gr.File(label="Upload Bookmarks HTML File", type='binary')
process_button = gr.Button("Process Bookmarks")
output_text = gr.Textbox(label="Output")
bookmark_table = gr.Dataframe(
label="Bookmarks",
headers=["Index", "Title", "URL", "Status", "ETag", "Summary"],
datatype=["number", "str", "str", "str", "str", "str"],
interactive=False
)
process_button.click(
process_uploaded_file,
inputs=upload,
outputs=[output_text, bookmark_table]
)
with gr.Tab("Chat with Bookmarks"):
# [Same as before]
with gr.Tab("Manage Bookmarks"):
manage_output = gr.Textbox(label="Manage Output")
bookmark_table_manage = gr.Dataframe(
label="Bookmarks",
headers=["Index", "Title", "URL", "Status", "ETag", "Summary"],
datatype=["number", "str", "str", "str", "str", "str"],
interactive=False
)
refresh_button = gr.Button("Refresh Bookmark List")
with gr.Row():
index_input = gr.Number(label="Bookmark Index")
new_title_input = gr.Textbox(label="New Title")
new_url_input = gr.Textbox(label="New URL")
edit_button = gr.Button("Edit Bookmark")
delete_button = gr.Button("Delete Bookmark")
refresh_button.click(
display_bookmarks,
inputs=None,
outputs=bookmark_table_manage
)
edit_button.click(
edit_bookmark,
inputs=[index_input, new_title_input, new_url_input],
outputs=[manage_output, bookmark_table_manage]
)
delete_button.click(
delete_bookmark,
inputs=index_input,
outputs=[manage_output, bookmark_table_manage]
)
demo.launch()
if __name__ == "__main__":
build_app()