Spaces:
Paused
Paused
| import gradio as gr | |
| import requests | |
| from bs4 import BeautifulSoup | |
| from transformers import pipeline | |
| # Fungsi untuk mengambil dan mengekstrak teks dari URL | |
| def fetch_web_content(url): | |
| try: | |
| # Mengambil konten dari URL | |
| response = requests.get(url, timeout=10) | |
| response.raise_for_status() # Memeriksa apakah request berhasil | |
| # Parsing HTML dengan BeautifulSoup | |
| soup = BeautifulSoup(response.text, 'html.parser') | |
| # Mengambil teks dari elemen <p> (paragraf) sebagai contoh | |
| paragraphs = soup.find_all('p') | |
| text = ' '.join([para.get_text() for para in paragraphs]) | |
| if not text: | |
| return "Tidak ada teks yang ditemukan di halaman tersebut." | |
| return text[:2000] # Membatasi panjang teks untuk efisiensi | |
| except Exception as e: | |
| return f"Error saat mengambil konten: {str(e)}" | |
| # Memuat model ringkasan dari Hugging Face | |
| summarizer = pipeline('summarization', model='facebook/bart-large-cnn') | |
| # Fungsi untuk merangkum teks | |
| def summarize_text(text): | |
| if len(text) < 50: | |
| return "Teks terlalu pendek untuk dirangkum." | |
| try: | |
| summary = summarizer(text, max_length=150, min_length=30, do_sample=False) | |
| return summary[0]['summary_text'] | |
| except Exception as e: | |
| return f"Error saat merangkum: {str(e)}" | |
| # Fungsi utama untuk antarmuka Gradio | |
| def browse_and_process(url, summarize=False): | |
| content = fetch_web_content(url) | |
| if summarize: | |
| summary = summarize_text(content) | |
| return content, summary | |
| return content, "Ringkasan tidak diminta." | |
| # Membuat antarmuka Gradio | |
| iface = gr.Interface( | |
| fn=browse_and_process, | |
| inputs=[ | |
| gr.Textbox(label="Masukkan URL (contoh: https://example.com)"), | |
| gr.Checkbox(label="Ringkas konten menggunakan model Hugging Face") | |
| ], | |
| outputs=[ | |
| gr.Textbox(label="Konten dari Halaman Web"), | |
| gr.Textbox(label="Ringkasan (jika diminta)") | |
| ], | |
| title="Web Content Fetcher dengan Gradio", | |
| description="Masukkan URL untuk mengambil teks dari halaman web. Centang kotak untuk merangkum konten menggunakan model Hugging Face." | |
| ) | |
| # Menjalankan antarmuka | |
| iface.launch() |