|
from .model_loader import load_model
|
|
from .logging_config import logger
|
|
|
|
def summarize_text(text):
|
|
try:
|
|
if not text or len(text.strip()) < 10:
|
|
return "No text to summarize."
|
|
summarizer = load_model("summarization", "sshleifer/distilbart-cnn-6-6")
|
|
input_length = len(text.split())
|
|
max_length = max(50, min(150, input_length // 2))
|
|
min_length = max(20, input_length // 4)
|
|
summary = summarizer(text[:2000], max_length=max_length, min_length=min_length, do_sample=False)
|
|
return summary[0]['summary_text']
|
|
except Exception as e:
|
|
logger.error(f"Error summarizing text: {str(e)}")
|
|
return text[:200] + "..." if len(text) > 200 else text |