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 '') |