Spaces:
Sleeping
Sleeping
| import os | |
| from flask import Flask, request, render_template, session, send_file, jsonify | |
| import io | |
| import requests | |
| import base64 | |
| import uuid | |
| from functions import ( | |
| sentiment_analysis, | |
| generate_text, | |
| summarize_text, | |
| chat_with_agent, | |
| text_stats, | |
| shuffle_words, to_leetspeak, compare_texts, transliterate_ru_to_en | |
| ) | |
| import traceback | |
| app = Flask(__name__) | |
| UPLOAD_FOLDER = 'uploads' | |
| RESULTS_FOLDER = 'static/results' | |
| os.makedirs(UPLOAD_FOLDER, exist_ok=True) | |
| os.makedirs(RESULTS_FOLDER, exist_ok=True) | |
| app.secret_key = os.getenv("SECRET_KEY", os.urandom(24)) | |
| def index(): | |
| result_text = None | |
| error = None | |
| chat_history = session.get('chat_history', []) | |
| if request.method == 'POST': | |
| action = request.form.get('action') | |
| if action == 'sentiment': | |
| text = request.form.get('text', '') | |
| if text: | |
| result_text = sentiment_analysis(text) | |
| else: | |
| error = "Введите текст" | |
| elif action =="generate": | |
| prompt = request.form.get('text', '') | |
| if prompt: | |
| result_text=generate_text(prompt) | |
| else: | |
| error = 'Введите промпт' | |
| elif action=="summarize": | |
| text=request.form.get('text', '') | |
| if text: | |
| result_text=summarize_text(text) | |
| else: | |
| error = "Введите текст для пересказа" | |
| elif action=="chat": | |
| pass | |
| elif action =="stats": | |
| text=request.form.get('text','') | |
| if text: | |
| result_text = text_stats(text) | |
| else: | |
| error="Введите текст" | |
| elif action =="shuffle": | |
| text=request.form.get('text','') | |
| if text: | |
| result_text = shuffle_words(text) | |
| else: | |
| error="Введите текст" | |
| elif action =="leetspeak": | |
| text=request.form.get('text','') | |
| if text: | |
| result_text = to_leetspeak(text) | |
| else: | |
| error="Введите текст" | |
| elif action =="compare": | |
| text=request.form.get('text','') | |
| text2 = request.form.get('text2', '') | |
| if text and text2: | |
| result_text = compare_texts(text, text2) | |
| else: | |
| error="Введите оба текста" | |
| elif action =="transliterate": | |
| text=request.form.get('text','') | |
| if text: | |
| result_text = transliterate_ru_to_en(text) | |
| else: | |
| error="Введите текст" | |
| return render_template('index.html', | |
| result_text=result_text, | |
| error=error, | |
| chat_history=chat_history) | |
| def chat_endpoint(): | |
| """AJAX - эндпоинn для общения с ИИ - агентом.""" | |
| try: | |
| data = request.get_json() | |
| if not data: | |
| return jsonify({'error': 'Неверный запрос'}), 400 | |
| user_message=data.get('message', '').strip() | |
| if not user_message: | |
| return jsonify({'error':'сообщение не может быть пустым'}), 400 | |
| history = session.get('chat_history',[]) | |
| reply, new_history=chat_with_agent(history, user_message) | |
| session['chat_history']=new_history | |
| return jsonify({'reply':reply}) | |
| except Exception as e: | |
| print(f"Ошибка в /chat: {str(e)}") | |
| traceback.print_exc() | |
| return jsonify({'error': str(e)}), 500 | |
| if __name__=='__main__': | |
| app.run(debug=True, host='0.0.0.0', port=7860) |