import gradio as gr import requests # Define Hugging Face API endpoint and token API_URL = "https://api-inference.huggingface.co/models/facebook/bart-large-cnn" API_TOKEN = "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" # Replace with your actual token # Function to query Hugging Face API for text summarization def query_summarization(input_text): headers = { "Authorization": f"Bearer {API_TOKEN}", "Content-Type": "application/json", } payload = { "inputs": input_text } try: # Sending POST request to the Hugging Face API response = requests.post(API_URL, headers=headers, json=payload) response.raise_for_status() # Raise error for bad responses (4xx, 5xx) result = response.json() # Extract and return the summary if result and "summary_text" in result[0]: return result[0]["summary_text"] else: return "Sorry, an error occurred. Please try again later." except requests.exceptions.RequestException as e: return f"Error: {e}" # Custom CSS styling custom_css = """ #input-text { font-size: 18px; border: 2px solid #8a2be2; border-radius: 10px; padding: 15px; width: 100%; box-sizing: border-box; } #summary-output { font-size: 18px; border: 2px solid #8a2be2; border-radius: 10px; padding: 15px; width: 100%; box-sizing: border-box; background-color: #f4f4f9; color: #333; } h1 { text-align: center; font-size: 3em; color: #8a2be2; margin-bottom: 30px; } .gradio-container { background-color: #f5f5f5; padding: 30px; border-radius: 15px; box-shadow: 0px 10px 20px rgba(0, 0, 0, 0.1); } .gradio-container .output-textbox { font-family: "Arial", sans-serif; color: #333; font-size: 16px; } .gradio-container .input-textbox { font-family: "Arial", sans-serif; font-size: 16px; } """ # Create Gradio interface with custom CSS iface = gr.Interface( fn=query_summarization, # Function to call inputs=gr.Textbox( lines=10, placeholder="Enter your text here...", label="Input Text", elem_id="input-text" ), # Input text area outputs=gr.Textbox( placeholder="Summary will appear here...", label="Summary", elem_id="summary-output" ), # Output summary text title="AI Text Summarization", description="Enter text to get a summarized version using Hugging Face's BART model.", css=custom_css # Apply custom CSS here ) # Launch the interface iface.launch(share=True)