RickyIG commited on
Commit
d81b7f5
1 Parent(s): c295b04

Create app.py

Browse files
Files changed (1) hide show
  1. app.py +44 -0
app.py ADDED
@@ -0,0 +1,44 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import os
2
+ import openai
3
+ import sys
4
+
5
+ import gradio as gr
6
+ from langchain import OpenAI, PromptTemplate
7
+ from langchain.text_splitter import CharacterTextSplitter
8
+ from langchain.chains.summarize import load_summarize_chain
9
+ from langchain.document_loaders import PyPDFLoader
10
+ from langchain.chains import RetrievalQA
11
+
12
+ sys.path.append('../..')
13
+
14
+ from dotenv import load_dotenv, find_dotenv
15
+ _ = load_dotenv(find_dotenv()) # read local .env file
16
+
17
+ openai.api_key = os.environ['OPENAI_API_KEY']
18
+
19
+ llm = OpenAI(temperature=0)
20
+ text_splitter = CharacterTextSplitter()
21
+
22
+ def summarize_pdf(pdf_file_path, custom_prompt=""):
23
+ pdf_file_path = pdf_file_path.name
24
+ loader = PyPDFLoader(pdf_file_path)
25
+ docs = loader.load_and_split()
26
+ chain = load_summarize_chain(llm, chain_type="map_reduce")
27
+ summary = chain.run(docs)
28
+ return summary
29
+
30
+ def main():
31
+ output_summary = gr.Textbox(label="Summary")
32
+
33
+ iface = gr.Interface(
34
+ fn=summarize_pdf,
35
+ inputs=["file"],
36
+ outputs=[output_summary],
37
+ title="PDF Summarizer",
38
+ description="Langchain based summarization application that's given a PDF file or a text from a text box can then create a summary of the text content. <br> Enter the PDF file and get its summary.",
39
+ )
40
+
41
+ iface.launch()
42
+
43
+ if __name__ == "__main__":
44
+ main()