Spaces:
Sleeping
Sleeping
| from flask import Flask, request, render_template | |
| from summarizer.summarizer import process_text # Adjust import path | |
| from summarizer.utils import extract_from_url, read_file # Adjust import path | |
| app = Flask(__name__) | |
| def index(): | |
| return render_template('index.html') | |
| def summarize(): | |
| if request.method == 'POST': | |
| choice = request.form.get('choice') | |
| url = request.form.get('url') | |
| file = request.files.get('file') | |
| text = request.form.get('text') | |
| model = request.form.get('model') or 't5-base' | |
| max_length = request.form.get('max_length') | |
| # Use default max_length if the field is empty | |
| if not max_length: | |
| max_length = 180 | |
| else: | |
| # Convert max_length to integer if it's not empty | |
| try: | |
| max_length = int(max_length) | |
| except ValueError: | |
| return render_template('index.html', error="Invalid maximum length") | |
| # Ensure only one input is provided based on the choice | |
| if (choice == 'url' and not url) or (choice == 'file' and not file) or (choice == 'text' and not text): | |
| return render_template('index.html', error="Please provide the selected input type.") | |
| input_text = "" | |
| if choice == 'url': | |
| try: | |
| input_text = extract_from_url(url) | |
| except Exception as e: | |
| return render_template('index.html', error=f"URL extraction failed: {str(e)}") | |
| elif choice == 'file': | |
| try: | |
| input_text = file.read().decode('utf-8') | |
| except Exception as e: | |
| return render_template('index.html', error=f"File reading failed: {str(e)}") | |
| elif choice == 'text': | |
| input_text = text | |
| if not input_text or len(input_text.strip()) < 50: | |
| return render_template('index.html', error="Not enough text content to summarize") | |
| try: | |
| summary = process_text(input_text, model=model, max_length=max_length) | |
| except Exception as e: | |
| return render_template('index.html', error=f"Summarization failed: {str(e)}") | |
| return render_template('index.html', summary=summary, url=url, model=model, max_length=max_length, text=text) | |
| return render_template('index.html') | |
| if __name__ == '__main__': | |
| app.run(debug=True) |