tejovanth commited on
Commit
c83f77f
Β·
verified Β·
1 Parent(s): f4390ce

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +6 -7
app.py CHANGED
@@ -5,7 +5,7 @@ from transformers import pipeline
5
  import time, io
6
 
7
  device = 0 if torch.cuda.is_available() else -1
8
- if device == -1: print("⚠️ No GPU detected. Expect ~10–20s for 300,000 chars on CPU.")
9
 
10
  summarizer = pipeline("summarization", model="google/pegasus-xsum", device=device, torch_dtype=torch.int8)
11
 
@@ -25,14 +25,13 @@ async def summarize_file(file_bytes):
25
  chunks = [text[i:i+15000] for i in range(0, len(text), 15000)]
26
  if not chunks: return "❌ No chunks to summarize"
27
  summaries = []
28
- batch_size = 2 if device == -1 else 10 # Smaller batch for CPU
29
- for i in range(0, len(chunks), batch_size):
30
- if time.time() - start > 9:
31
  summaries.append("⚠️ Stopped early")
32
  break
33
- batch = chunks[i:i+batch_size]
34
  try:
35
- batch_summaries = summarizer(batch, max_length=40, min_length=10, do_sample=False, batch_size=batch_size)
36
  summaries.extend(f"**Chunk {i+j+1}**:\n{s['summary_text']}" for j, s in enumerate(batch_summaries))
37
  except: summaries.append(f"**Chunk {i+1}**: ❌ Error")
38
  return f"**Chars**: {len(text)}\n**Time**: {time.time()-start:.2f}s\n\n" + "\n\n".join(summaries)
@@ -40,7 +39,7 @@ async def summarize_file(file_bytes):
40
  demo = gr.Interface(
41
  fn=summarize_file, inputs=gr.File(label="πŸ“„ PDF/TXT Notes"),
42
  outputs=gr.Textbox(label="πŸ“ Summary"),
43
- title="Fast Summarizer", description="300,000+ chars in ~5–10s (GPU) or ~10–20s (CPU)"
44
  )
45
 
46
  if __name__ == "__main__":
 
5
  import time, io
6
 
7
  device = 0 if torch.cuda.is_available() else -1
8
+ if device == -1: raise RuntimeError("GPU required for 5–10s target")
9
 
10
  summarizer = pipeline("summarization", model="google/pegasus-xsum", device=device, torch_dtype=torch.int8)
11
 
 
25
  chunks = [text[i:i+15000] for i in range(0, len(text), 15000)]
26
  if not chunks: return "❌ No chunks to summarize"
27
  summaries = []
28
+ for i in range(0, len(chunks), 10):
29
+ if time.time() - start > 7:
 
30
  summaries.append("⚠️ Stopped early")
31
  break
32
+ batch = chunks[i:i+10]
33
  try:
34
+ batch_summaries = summarizer(batch, max_length=40, min_length=10, do_sample=False, batch_size=10)
35
  summaries.extend(f"**Chunk {i+j+1}**:\n{s['summary_text']}" for j, s in enumerate(batch_summaries))
36
  except: summaries.append(f"**Chunk {i+1}**: ❌ Error")
37
  return f"**Chars**: {len(text)}\n**Time**: {time.time()-start:.2f}s\n\n" + "\n\n".join(summaries)
 
39
  demo = gr.Interface(
40
  fn=summarize_file, inputs=gr.File(label="πŸ“„ PDF/TXT Notes"),
41
  outputs=gr.Textbox(label="πŸ“ Summary"),
42
+ title="Fast Summarizer", description="300,000+ chars in ~5s (GPU)"
43
  )
44
 
45
  if __name__ == "__main__":