Download app.py from MuhammadKhoirul010/Summary_using_bart-large_cnn_model: direct link, hf CLI and curl.
- Browser
- Download file 3.41 kB
-
https://huggingface.co/spaces/MuhammadKhoirul010/Summary_using_bart-large_cnn_model/resolve/main/app.py
- Command line
-
hf download hf://spaces/MuhammadKhoirul010/Summary_using_bart-large_cnn_model/app.py
-
curl -L -o app.py https://huggingface.co/spaces/MuhammadKhoirul010/Summary_using_bart-large_cnn_model/resolve/main/app.py
3.41 kB
| import gradio as gr | |
| from transformers import pipeline | |
| import torch | |
| try: | |
| # Memuat model BART Large CNN untuk tugas summarization | |
| summarizer = pipeline("summarization", model="facebook/bart-large-cnn") | |
| print("Model summarization berhasil dimuat.") | |
| except Exception as e: | |
| summarizer = None | |
| print(f"Error saat memuat model summarization: {str(e)}") # Cetak error ke konsol jika gagal dimuat | |
| def summarize_text_simple(text_input, min_length_val=30, max_length_val=150): # Ubah nama parameter untuk kejelasan | |
| # Cek apakah model berhasil dimuat | |
| if summarizer is None: | |
| return "❌ Error: Model ringkasan gagal dimuat. Coba lagi nanti." | |
| if not text_input.strip(): | |
| return "⚠️ Mohon masukkan teks yang ingin diringkas!" | |
| # Pastikan panjang minimum dan maksimum masuk akal | |
| if min_length_val >= max_length_val: # Gunakan parameter yang diperbarui | |
| return "⚠️ Panjang minimum harus lebih kecil dari panjang maksimum!" | |
| if min_length_val <= 0 or max_length_val <= 0: # Gunakan parameter yang diperbarui | |
| return "⚠️ Panjang tidak boleh nol atau negatif!" | |
| try: | |
| # Lakukan ringkasan | |
| # Pastikan min_length dan max_length diteruskan ke summarizer | |
| summary = summarizer( | |
| text_input, | |
| min_length=int(min_length_val), # Pastikan nilai adalah integer | |
| max_length=int(max_length_val), # Pastikan nilai adalah integer | |
| truncation=True # Penting: Potong input jika terlalu panjang untuk model | |
| ) | |
| # Hasil ringkasan ada di 'summary_text' | |
| summarized_text = summary[0]['summary_text'] | |
| result_message = f""" | |
| <h3>Teks Ringkasan Anda:</h3> | |
| <p>{summarized_text}</p> | |
| """ | |
| return result_message | |
| except Exception as e: | |
| return f"❌ Terjadi kesalahan saat meringkas: {str(e)}" | |
| with gr.Blocks(title="Aplikasi Ringkasan Teks Sederhana") as demo: | |
| gr.Markdown("# 📝 Aplikasi Ringkasan Teks Sederhana") | |
| gr.Markdown("Masukkan teks panjang di bawah ini untuk mendapatkan versi ringkasnya.") | |
| with gr.Row(): | |
| text_input = gr.Textbox( | |
| label="Teks Asli", | |
| placeholder="Masukkan teks panjang yang ingin Anda ringkas di sini...", | |
| lines=10 | |
| ) | |
| with gr.Row(): | |
| min_length_slider = gr.Slider( | |
| minimum=10, | |
| maximum=100, | |
| value=30, | |
| step=1, | |
| label="Panjang Ringkasan Minimum" | |
| ) | |
| max_length_slider = gr.Slider( | |
| minimum=50, # Ubah minimum agar selalu lebih besar dari max slider min_length | |
| maximum=200, | |
| value=80, | |
| step=1, | |
| label="Panjang Ringkasan Maksimum" | |
| ) | |
| summarize_btn = gr.Button("✨ Ringkas Sekarang") | |
| summary_output = gr.HTML(label="Hasil Ringkasan") | |
| # Menghubungkan tombol ke fungsi ringkasan | |
| summarize_btn.click( | |
| fn=summarize_text_simple, | |
| inputs=[text_input, min_length_slider, max_length_slider], # Pastikan Anda melewati kedua slider | |
| outputs=summary_output | |
| ) | |
| gr.Markdown(""" | |
| --- | |
| <div style='text-align: center; margin-top: 20px;'> | |
| <p>Didukung oleh Hugging Face Transformers (Model: facebook/bart-large-cnn) dan Gradio.</p> | |
| </div> | |
| """) | |
| if __name__ == "__main__": | |
| demo.launch(share=True) |