Spaces:
Sleeping
Sleeping
| import gradio as gr | |
| from transformers import pipeline | |
| import torch | |
| # Check if CUDA is available and set device | |
| device = "cuda" if torch.cuda.is_available() else "cpu" | |
| # Initialize the model with device setting | |
| model = pipeline("summarization", | |
| model="luisotorres/bart-finetuned-samsum", | |
| device=device) | |
| def summarize_text(text): | |
| try: | |
| # Dynamically set max_length based on input length | |
| input_length = len(text.split()) | |
| max_length = min(130, max(30, input_length // 2)) | |
| summary = model(text, | |
| max_length=max_length, | |
| min_length=30, | |
| do_sample=False) # Deterministic generation | |
| return summary[0]["summary_text"] | |
| except Exception as e: | |
| return f"Error: {str(e)}" | |
| # Create Gradio interface | |
| iface = gr.Interface( | |
| fn=summarize_text, | |
| inputs=gr.Textbox( | |
| label="Input Text", | |
| lines=5, | |
| placeholder="Enter the text you want to summarize..." | |
| ), | |
| outputs=gr.Textbox(label="Summary"), | |
| title="Text Summarization", | |
| description="Enter your text to generate a concise summary. The summary length will automatically adjust based on your input length.", | |
| examples=[ | |
| ["Sarah: Do you think it's a good idea to invest in Bitcoin?\nEmily: I'm skeptical. The market is very volatile, and you could lose money.\nSarah: True. But there's also a high upside, right?"], | |
| ["John: Hey, can you help me with the project?\nMary: Sure, what do you need?\nJohn: I'm stuck on the database design.\nMary: OK, let's schedule a call tomorrow morning.\nJohn: Perfect, thanks!"] | |
| ], | |
| allow_flagging="never" | |
| ) | |
| # Launch the interface without share parameter | |
| iface.launch( | |
| server_name="0.0.0.0", # Required for Spaces | |
| server_port=7860, # Standard port for Spaces | |
| show_error=True | |
| ) |