File size: 1,453 Bytes
877e000
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
from .model_loader import load_model
from .logging_config import logger

def summarize_text(text):
    """Generate summary using model or fallback."""
    try:
        if not text or not text.strip():
            return "Empty document"
        summarizer = load_model("summarization")
        if hasattr(summarizer, 'task_type') and summarizer.task_type == "summarization":
            # Using fallback summarizer
            result = summarizer(text)
            summary = result[0]['summary_text'] if result else ""
        else:
            # Using actual model
            result = summarizer(text, max_length=130, min_length=30, do_sample=False)
            summary = result[0]['summary_text'] if result else ""
        if not summary or not summary.strip() or summary.lower() in ["empty document", "no text to summarize."]:
            # Fallback: use first 2-3 sentences or first 200 chars
            sentences = text.split('.')
            if len(sentences) > 2:
                summary = '. '.join(sentences[:3]) + '.'
            else:
                summary = text[:200] + ('...' if len(text) > 200 else '')
        return summary
    except Exception as e:
        logger.warning(f"Model generation failed, using static summary: {str(e)}")
        sentences = text.split('.')
        if len(sentences) > 2:
            return '. '.join(sentences[:3]) + '.'
        else:
            return text[:200] + ('...' if len(text) > 200 else '')