summarize / app.py
hudaakram's picture
Create app.py
52c7bd9 verified
from transformers import pipeline
from langchain_huggingface import HuggingFacePipeline
from langchain.prompts import PromptTemplate
from transformers.utils.logging import set_verbosity_error
set_verbosity_error()
summarization_pipeline = pipeline("summarization", model="facebook/bart-large-cnn", device=0)
summarizer = HuggingFacePipeline(pipeline=summarization_pipeline)
refinement_pipeline = pipeline("summarization", model="facebook/bart-large", device=0)
refiner = HuggingFacePipeline(pipeline=refinement_pipeline)
qa_pipeline = pipeline("question-answering", model="deepset/roberta-base-squad2", device=0)
summary_template = PromptTemplate.from_template("Summarize the following text in a {length} way:\n\n{text}")
summarization_chain = summary_template | summarizer | refiner
text_to_summarize = input("\nEnter text to summarize:\n")
length = input("\nEnter the length (short/medium/long): ")
summary = summarization_chain.invoke({"text": text_to_summarize, "length": length})
print("\nπŸ”Ή **Generated Summary:**")
print(summary)
while True:
question = input("\nAsk a question about the summary (or type 'exit' to stop):\n")
if question.lower() == "exit":
break
qa_result = qa_pipeline(question=question, context=summary)
print("\nπŸ”Ή **Answer:**")
print(qa_result["answer"])