X commited on
Update app.py
Browse files
app.py
CHANGED
|
@@ -877,5 +877,57 @@ def chat():
|
|
| 877 |
return jsonify({'response': f"📊 Память: {len(chat_memory.data)} пар, Шагов: {agent.total_steps}"})
|
| 878 |
|
| 879 |
elif message == '/train':
|
| 880 |
-
return
|
| 881 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 877 |
return jsonify({'response': f"📊 Память: {len(chat_memory.data)} пар, Шагов: {agent.total_steps}"})
|
| 878 |
|
| 879 |
elif message == '/train':
|
| 880 |
+
return jsonify({'response': start_training()})
|
| 881 |
+
|
| 882 |
+
else:
|
| 883 |
+
return jsonify({'response': "🤖 Команды: /ai, /data, /stats, /train"})
|
| 884 |
+
|
| 885 |
+
@app.route('/train', methods=['POST'])
|
| 886 |
+
def train_route():
|
| 887 |
+
return jsonify({'message': start_training()})
|
| 888 |
+
|
| 889 |
+
@app.route('/stats', methods=['GET'])
|
| 890 |
+
def stats_route():
|
| 891 |
+
global is_training, agent, chat_memory
|
| 892 |
+
return jsonify({
|
| 893 |
+
'memory_size': len(chat_memory.data),
|
| 894 |
+
'steps': agent.total_steps,
|
| 895 |
+
'epsilon': round(agent.epsilon, 3),
|
| 896 |
+
'best_score': agent.best_score,
|
| 897 |
+
'training': is_training
|
| 898 |
+
})
|
| 899 |
+
|
| 900 |
+
def start_training():
|
| 901 |
+
global is_training, training_thread, agent
|
| 902 |
+
|
| 903 |
+
if is_training:
|
| 904 |
+
return "⏳ Уже тренируется!"
|
| 905 |
+
|
| 906 |
+
is_training = True
|
| 907 |
+
|
| 908 |
+
def train():
|
| 909 |
+
global is_training, agent
|
| 910 |
+
try:
|
| 911 |
+
for ep in range(100):
|
| 912 |
+
if not is_training:
|
| 913 |
+
break
|
| 914 |
+
agent.train_episode()
|
| 915 |
+
if ep % 10 == 0:
|
| 916 |
+
print(f"📊 Episode {ep}: Epsilon={agent.epsilon:.3f}")
|
| 917 |
+
if ep % 20 == 0:
|
| 918 |
+
agent.save_model()
|
| 919 |
+
except Exception as e:
|
| 920 |
+
print(f"❌ Ошибка: {e}")
|
| 921 |
+
finally:
|
| 922 |
+
is_training = False
|
| 923 |
+
|
| 924 |
+
training_thread = threading.Thread(target=train)
|
| 925 |
+
training_thread.start()
|
| 926 |
+
return "🚀 Тренировка запущена!"
|
| 927 |
+
|
| 928 |
+
# =====================================================
|
| 929 |
+
# 7. ЗАПУСК
|
| 930 |
+
# =====================================================
|
| 931 |
+
|
| 932 |
+
if __name__ == '__main__':
|
| 933 |
+
app.run(host='0.0.0.0', port=7860)
|