File size: 769 Bytes
14cb7ae
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
from .model_loader import load_model
from .logging_config import logger

def summarize_text(text):
    try:
        if not text or len(text.strip()) < 10:
            return "No text to summarize."
        summarizer = load_model("summarization", "sshleifer/distilbart-cnn-6-6") # Use the smaller model here too
        input_length = len(text.split())
        max_length = max(50, min(150, input_length // 2))
        min_length = max(20, input_length // 4)
        summary = summarizer(text[:2000], max_length=max_length, min_length=min_length, do_sample=False)
        return summary[0]['summary_text']
    except Exception as e:
        logger.error(f"Error summarizing text: {str(e)}")
        return text[:200] + "..." if len(text) > 200 else text