Spaces:
Running
Running
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() | |