adithya747's picture
Update app.py
1936100 verified
raw
history blame
1.35 kB
import gradio as gr
import requests
from bs4 import BeautifulSoup
from transformers import pipeline
# Load summarization pipeline from Hugging Face
summarizer = pipeline("summarization", model="facebook/bart-large-cnn")
def scrape_website(url):
"""Extracts text from a website."""
try:
response = requests.get(url, timeout=10)
soup = BeautifulSoup(response.text, "html.parser")
paragraphs = soup.find_all("p")
text = " ".join([p.get_text() for p in paragraphs])
return text if text else "No content found."
except Exception as e:
return f"Error: {str(e)}"
def summarize_website(url):
"""Scrapes website and summarizes the extracted content."""
extracted_text = scrape_website(url)
if "Error:" in extracted_text or len(extracted_text.split()) < 50:
return "Could not extract enough text to summarize."
# Summarize using Hugging Face model
summary = summarizer(extracted_text, max_length=200, min_length=50, do_sample=False)
return f"**Summary:**\n\n{summary[0]['summary_text']}"
# Gradio interface
iface = gr.Interface(
fn=summarize_website,
inputs="text",
outputs="markdown",
title="AI-Powered Website Summarizer",
description="Enter a website URL, and this tool will summarize its content using an AI model."
)
iface.launch()