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