TextSummarizer / app.py
Techdude01's picture
Update app.py
738dc38 verified
import torch
import gradio as gr
from accelerate import Accelerator
from transformers import pipeline
# Initialize the accelerator
accelerator = Accelerator()
# Print a description of the current configuration
print("Accelerator State:", accelerator.state)
# Define the path to your custom model or use a pre-trained Hugging Face model
model_path = (
"../Models/models--sshleifer--distilbart-cnn-12-6/snapshots"
"/a4f8f3ea906ed274767e9906dbaede7531d660ff"
)
# Initialize the text summarization pipeline for CPU usage
try:
text_summary = pipeline(
"summarization",
model=model_path, # Use the custom model path
device=-1 # Force usage of CPU
)
except Exception as e:
print(f"Error initializing the summarization pipeline: {e}")
print("Switching to the default model from Hugging Face.")
# Fallback to default model from Hugging Face if the custom model fails
text_summary = pipeline("summarization", model="sshleifer/distilbart-cnn-12-6", device=-1)
# Define the Gradio interface function
def summary(input_text):
try:
# Generate summary using the text_summary pipeline
output = text_summary(input_text)
return output[0]['summary_text']
except Exception as e:
return f"An error occurred while summarizing: {e}"
# Close any existing Gradio interfaces
gr.close_all()
# Define the Gradio interface
demo = gr.Interface(
fn=summary,
inputs=gr.Textbox(label="Input Text to Summarize", lines=6, placeholder="Enter text here..."),
outputs=gr.Textbox(label="Summarized Text", lines=4),
title="GenAIProject01: Text Summarizer",
description="THIS APPLICATION WILL BE USED TO SUMMARIZE INPUT TEXT USING A PRE-TRAINED MODEL."
)
# Launch the Gradio app
demo.launch(share=True)