Shuja1401 commited on
Commit
9f1e567
Β·
verified Β·
1 Parent(s): 84f0807

Delete app.py

Browse files
Files changed (1) hide show
  1. app.py +0 -91
app.py DELETED
@@ -1,91 +0,0 @@
1
- import gradio as gr
2
- import fitz # PyMuPDF
3
- import openai
4
- import os
5
-
6
- # Load API key from Hugging Face secret
7
- openai.api_key = os.getenv("OPENAI_API_KEY")
8
-
9
- # Extract text from PDF
10
- def extract_text_from_pdf(file):
11
- text = ""
12
- with fitz.open(stream=file.read(), filetype="pdf") as doc:
13
- for page in doc:
14
- text += page.get_text()
15
- return text
16
-
17
- # Split text into chunks
18
- def split_text(text, max_tokens=1500):
19
- import textwrap
20
- return textwrap.wrap(text, max_tokens)
21
-
22
- # Generate summary
23
- def generate_summary(text):
24
- chunks = split_text(text)
25
- summaries = []
26
- for i, chunk in enumerate(chunks):
27
- print(f"⏳ Summarizing chunk {i + 1}/{len(chunks)}...")
28
- response = openai.ChatCompletion.create(
29
- model="gpt-3.5-turbo",
30
- messages=[{"role": "user", "content": f"Summarize the following:\n{chunk}"}],
31
- temperature=0.5,
32
- )
33
- summaries.append(response['choices'][0]['message']['content'].strip())
34
- return "\n\n".join(summaries)
35
-
36
- # Generate all formats
37
- def summarize_paper(pdf_file):
38
- try:
39
- raw_text = extract_text_from_pdf(pdf_file)
40
- summary = generate_summary(raw_text)
41
-
42
- response = openai.ChatCompletion.create(
43
- model="gpt-3.5-turbo",
44
- messages=[
45
- {"role": "user", "content": f"Make an ELI5 version of this:\n{summary}"}
46
- ],
47
- temperature=0.7,
48
- )
49
- eli5 = response['choices'][0]['message']['content'].strip()
50
-
51
- response = openai.ChatCompletion.create(
52
- model="gpt-3.5-turbo",
53
- messages=[
54
- {"role": "user", "content": f"Write a TL;DR of this:\n{summary}"}
55
- ],
56
- temperature=0.7,
57
- )
58
- tldr = response['choices'][0]['message']['content'].strip()
59
-
60
- response = openai.ChatCompletion.create(
61
- model="gpt-3.5-turbo",
62
- messages=[
63
- {"role": "user", "content": f"Why does this research matter? {summary}"}
64
- ],
65
- temperature=0.7,
66
- )
67
- why_it_matters = response['choices'][0]['message']['content'].strip()
68
-
69
- return summary, eli5, tldr, why_it_matters
70
- except Exception as e:
71
- return f"❌ Error: {str(e)}", "", "", ""
72
-
73
- # Gradio Interface
74
- with gr.Blocks() as demo:
75
- gr.Markdown("πŸ“„ **Paper News Summarizer**\nUpload a research paper PDF and get a human-friendly summary, ELI5, TL;DR, and why it matters.")
76
- with gr.Row():
77
- pdf_file = gr.File(label="Upload Research Paper (PDF)", file_types=[".pdf"])
78
- submit_btn = gr.Button("Submit")
79
- clear_btn = gr.Button("Clear")
80
-
81
- with gr.Row():
82
- full_summary = gr.Textbox(label="πŸ“˜ Full Summary", lines=10, interactive=False)
83
- eli5_summary = gr.Textbox(label="πŸ§’ ELI5", lines=5, interactive=False)
84
- with gr.Row():
85
- tldr_summary = gr.Textbox(label="⚑ TL;DR", lines=2, interactive=False)
86
- importance = gr.Textbox(label="🎯 Why It Matters", lines=5, interactive=False)
87
-
88
- submit_btn.click(summarize_paper, inputs=pdf_file, outputs=[full_summary, eli5_summary, tldr_summary, importance])
89
- clear_btn.click(lambda: ("", "", "", ""), outputs=[full_summary, eli5_summary, tldr_summary, importance])
90
-
91
- demo.launch()