Iskabore's picture
Update summarizer/summarize.py
4508085 verified
from summarizer import INPUT_MIN_SIZE
from summarizer.models import summarizer_fr, summarizer_en
from summarizer.utils import detect_language, read_file
def generate_summary(text=None, file=None, min_length=30, max_length=100, do_sample=False):
content = text or ""
if file:
content = read_file(file)
content = content.strip()
if not content or len(content.split()) < INPUT_MIN_SIZE:
return "⚠️ Input too short or empty."
# Fallback defaults if somehow None is passed
min_length = min_length or 30
max_length = max_length or 100
# Model selection based on language detection
lang = detect_language(content)
if lang == "fr":
summarizer = summarizer_fr
elif lang == "en":
summarizer = summarizer_en
else:
return f"❌ Unsupported language: {lang}"
try:
summary = summarizer(content, min_length=min_length, max_length=max_length, do_sample=do_sample)
return summary[0]["summary_text"]
except Exception as e:
return f"❌ Error: {str(e)}"