vortex-ai-python-server / summarizer.py
Vennilavan's picture
Upload 9 files
631eb6a verified
from transformers import pipeline
def summarize_text(text: str, model_name: str = "facebook/bart-large-cnn", max_length: int = 300, min_length: int = 100) -> str:
try:
summarizer = pipeline("summarization", model=model_name)
# If text is too short, return as is
if len(text.split()) < 50:
return text
# Calculate appropriate max_length based on input
input_length = len(text.split())
adjusted_max_length = min(max_length, input_length // 2)
adjusted_min_length = min(min_length, adjusted_max_length // 3)
summary = summarizer(
text,
max_length=adjusted_max_length,
min_length=adjusted_min_length,
do_sample=False,
truncation=True
)
return summary[0]['summary_text']
except Exception as e:
print(f"Summarization error: {e}")
# Fallback: return the first part of the text
sentences = text.split('.')
return '. '.join(sentences[:3]) + '.'