|
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": |
|
|
|
result = summarizer(text) |
|
summary = result[0]['summary_text'] if result else "" |
|
else: |
|
|
|
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."]: |
|
|
|
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 '') |