Spaces:
Build error
Build error
File size: 2,211 Bytes
1f05d7b | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 | import gradio as gr
from langchain import OpenAI, PromptTemplate
from langchain.text_splitter import CharacterTextSplitter
from langchain.chains.summarize import load_summarize_chain
from langchain.document_loaders import PyPDFLoader
llm = OpenAI(temperature=0)
text_splitter = CharacterTextSplitter()
def summarize_pdf(pdf_file_path, custom_prompt=""):
loader = PyPDFLoader(pdf_file_path)
docs = loader.load_and_split()
chain = load_summarize_chain(llm, chain_type="map_reduce")
summary = chain.run(docs)
if custom_prompt!="":
prompt_template = custom_prompt + """
{text}
SUMMARY:"""
PROMPT = PromptTemplate(template=prompt_template, input_variables=["text"])
chain = load_summarize_chain(llm, chain_type="map_reduce",
map_prompt=PROMPT, combine_prompt=PROMPT)
custom_summary = chain({"input_documents": docs},return_only_outputs=True)["output_text"]
else:
custom_summary = ""
return summary, custom_summary
def custom_summary(pdf_file_path, custom_prompt):
loader = PyPDFLoader(pdf_file_path)
docs = loader.load_and_split()
prompt_template = custom_prompt + """
{text}
SUMMARY:"""
PROMPT = PromptTemplate(template=prompt_template, input_variables=["text"])
chain = load_summarize_chain(llm, chain_type="map_reduce",
map_prompt=PROMPT, combine_prompt=PROMPT)
summary_output = chain({"input_documents": docs},return_only_outputs=True)["output_text"]
return summary_output
def main():
input_pdf_path = gr.inputs.Textbox(label="Enter the PDF file path")
input_custom_prompt = gr.inputs.Textbox(label="Enter your custom prompt")
output_summary = gr.outputs.Textbox(label="Summary")
output_custom_summary = gr.outputs.Textbox(label="Custom Summary")
iface = gr.Interface(
fn=summarize_pdf,
inputs=[input_pdf_path,input_custom_prompt],
outputs=[output_summary,output_custom_summary],
title="PDF Summarizer",
description="Enter the path to a PDF file and get its summary.",
)
iface.launch()
if __name__ == "__main__":
main() |