sksameermujahid's picture
Upload 23 files
877e000 verified
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 '')