paramasivan27/Email_Subject_Generation_T5Small
0
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()