File size: 1,069 Bytes
9057a10 abc2058 4508085 9057a10 |
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 33 |
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)}"
|