Spaces:
Build error
Build error
Update app.py
Browse files
app.py
CHANGED
|
@@ -11,14 +11,14 @@ from langchain.document_loaders import PyPDFLoader
|
|
| 11 |
from langchain.text_splitter import RecursiveCharacterTextSplitter
|
| 12 |
from transformers import T5Tokenizer, T5ForConditionalGeneration
|
| 13 |
from transformers import pipeline
|
| 14 |
-
from reportlab.pdfgen import canvas
|
| 15 |
|
| 16 |
|
| 17 |
# --- Streamlit Page Config ---
|
| 18 |
st.set_page_config(layout="wide")
|
| 19 |
|
| 20 |
|
| 21 |
-
# Load the tokenizer and model
|
| 22 |
@st.cache_resource
|
| 23 |
def load_model(checkpoint="Lamini-1"):
|
| 24 |
tokenizer = T5Tokenizer.from_pretrained(checkpoint)
|
|
@@ -109,23 +109,32 @@ st.sidebar.image("Images/sidebar_pic.png")
|
|
| 109 |
st.sidebar.title("ABOUT THE APP")
|
| 110 |
st.sidebar.write(
|
| 111 |
"SummaScribe: Your PDF wingman! 🚀 Now with **chunk-wise recursive summarization** "
|
| 112 |
-
"and inline PDF preview (first
|
| 113 |
)
|
| 114 |
selected_summary_length = st.sidebar.slider("SELECT SUMMARY STRENGTH", min_value=200, max_value=1500, value=500)
|
| 115 |
|
| 116 |
|
| 117 |
-
# Display PDF as images
|
| 118 |
def display(file):
|
| 119 |
try:
|
| 120 |
-
images = convert_from_path(file, dpi=
|
| 121 |
-
|
| 122 |
for i, img in enumerate(images):
|
| 123 |
-
|
| 124 |
-
|
| 125 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 126 |
except Exception as e:
|
| 127 |
st.error(f"Could not render PDF preview: {e}")
|
| 128 |
-
# fallback to download
|
| 129 |
with open(file, "rb") as f:
|
| 130 |
st.download_button(
|
| 131 |
label="Download Uploaded PDF",
|
|
|
|
| 11 |
from langchain.text_splitter import RecursiveCharacterTextSplitter
|
| 12 |
from transformers import T5Tokenizer, T5ForConditionalGeneration
|
| 13 |
from transformers import pipeline
|
| 14 |
+
from reportlab.pdfgen import canvas
|
| 15 |
|
| 16 |
|
| 17 |
# --- Streamlit Page Config ---
|
| 18 |
st.set_page_config(layout="wide")
|
| 19 |
|
| 20 |
|
| 21 |
+
# Load the tokenizer and model (cached to avoid reloads on rerun)
|
| 22 |
@st.cache_resource
|
| 23 |
def load_model(checkpoint="Lamini-1"):
|
| 24 |
tokenizer = T5Tokenizer.from_pretrained(checkpoint)
|
|
|
|
| 109 |
st.sidebar.title("ABOUT THE APP")
|
| 110 |
st.sidebar.write(
|
| 111 |
"SummaScribe: Your PDF wingman! 🚀 Now with **chunk-wise recursive summarization** "
|
| 112 |
+
"and inline PDF preview (first 10 pages)."
|
| 113 |
)
|
| 114 |
selected_summary_length = st.sidebar.slider("SELECT SUMMARY STRENGTH", min_value=200, max_value=1500, value=500)
|
| 115 |
|
| 116 |
|
| 117 |
+
# Display PDF as images
|
| 118 |
def display(file):
|
| 119 |
try:
|
| 120 |
+
images = convert_from_path(file, dpi=100, first_page=1, last_page=10)
|
| 121 |
+
img_tags = ""
|
| 122 |
for i, img in enumerate(images):
|
| 123 |
+
buf = io.BytesIO()
|
| 124 |
+
img.save(buf, format="PNG")
|
| 125 |
+
b64 = base64.b64encode(buf.getvalue()).decode()
|
| 126 |
+
img_tags += f'<img src="data:image/png;base64,{b64}" style="height:500px; margin-right:10px;" />'
|
| 127 |
+
|
| 128 |
+
html = f"""
|
| 129 |
+
<div style="display:flex; overflow-x:auto; white-space:nowrap; border:1px solid #ccc; padding:10px;">
|
| 130 |
+
{img_tags}
|
| 131 |
+
</div>
|
| 132 |
+
"""
|
| 133 |
+
|
| 134 |
+
st.components.v1.html(html, height=550, scrolling=True)
|
| 135 |
+
|
| 136 |
except Exception as e:
|
| 137 |
st.error(f"Could not render PDF preview: {e}")
|
|
|
|
| 138 |
with open(file, "rb") as f:
|
| 139 |
st.download_button(
|
| 140 |
label="Download Uploaded PDF",
|