CoolFace
Apppublic

paramasivan27/Email_Subject_Generation_T5Small

sourceHugging Faceupdated 2y agoView on Hugging Face
0likes
app.py43 linesDownload Raw Back to root
1import gradio as gr2from huggingface_hub import InferenceClient3import gradio as gr4from transformers import pipeline5 6# Load the summarization pipeline with your pre-trained model7pipe = pipeline("summarization", model="paramasivan27/t5small_for_email_summarization_enron")8 9# Function to summarize email10def summarize_email(email_body):11    # Tokenize the input text12    pipeline = pipe13    input_tokens = pipeline.tokenizer(email_body, return_tensors='pt', truncation=False)14    input_length = input_tokens['input_ids'].shape[1]15 16    # Adjust max_length to be a certain percentage of the input length17    adjusted_max_length = max(10, int(input_length * 0.6))  # Ensure a minimum length18 19    # Generate summary with dynamic max_length20    gen_kwargs = {21        "length_penalty": 2.0,22        "num_beams": 4,23        "max_length": adjusted_max_length,24        "min_length": 325    }26 27    summary = pipeline(email_body, **gen_kwargs)[0]['summary_text']28    return summary29 30# Create the Gradio interface31iface = gr.Interface(32    fn=summarize_email,33    inputs=gr.Textbox(lines=10, placeholder="Enter the email body here..."),34    outputs="text",35    title="Email Subject Line Generator",36    description="Generate a subject line from an email body using T5 Small"37)38 39# Launch the interface40iface.launch()41 42if __name__ == "__main__":43    demo.launch()