networkbot / app.py
Adieva-15's picture
настройки темной стороны сайта
3cba2b2
Raw
History Blame Contribute Delete
3.82 kB
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))
@app.route('/', methods = ['GET', 'POST'])
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)
@app.route('/chat', methods=['POST'])
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)