diff --git a/.vscode/launch.json b/.vscode/launch.json index 5e03db3..deec305 100644 --- a/.vscode/launch.json +++ b/.vscode/launch.json @@ -1,19 +1,20 @@ { - "version": "0.2.0", - "configurations": [ - { - "name": "Python: Flask", - "type": "debugpy", - "request": "launch", - "python": "D:/Docs/Гриша/Хобби/Настольные игры/ttrpg-obsidian-vault/llm-agent-backend/env/Scripts/python.exe", - "cwd": "D:/Docs/Гриша/Хобби/Настольные игры/ttrpg-obsidian-vault/llm-agent-backend", - "program": "D:/Docs/Гриша/Хобби/Настольные игры/ttrpg-obsidian-vault/llm-agent-backend/run.py", - "env": { - "FLASK_APP": "run.py", - "FLASK_ENV": "development", - "FLASK_DEBUG": "1" - }, - "justMyCode": true - } - ] -} \ No newline at end of file + "version": "0.2.0", + "configurations": [ + { + "name": "Python: Flask", + "type": "debugpy", + "request": "launch", + "python": "${workspaceFolder}/env/Scripts/python.exe", + "cwd": "${workspaceFolder}", + "program": "${workspaceFolder}/run.py", + "env": { + "FLASK_APP": "run.py", + "FLASK_ENV": "development", + "FLASK_DEBUG": "1" + }, + "justMyCode": true + } + ], + "console": "integratedTerminal" +} diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000..ea32db3 --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,3 @@ +{ + "terminal.integrated.defaultProfile.windows": "Git Bash" +} diff --git a/app/api.py b/app/api.py index 763b096..9ec1963 100644 --- a/app/api.py +++ b/app/api.py @@ -8,13 +8,13 @@ from flask import Flask, request, jsonify from flask_cors import CORS from workflows import run_agent, graph_history_manager -app2 = Flask(__name__) +api = Flask(__name__) CORS( - app2 + api ) # Разрешаем CORS для всех доменов (в production нужно настроить более строго) -@app2.route('/api/chat', methods=['POST']) +@api.route('/api/chat', methods=['POST']) def chat(): """API endpoint для обработки сообщений и возврата ответа.""" data = request.get_json() @@ -31,7 +31,7 @@ def chat(): return jsonify(result) -@app2.route('/api/graphs', methods=['GET']) +@api.route('/api/graphs', methods=['GET']) def get_graphs(): """API endpoint для получения списка графов.""" graphs = graph_history_manager.get_all_graphs_summary() @@ -39,7 +39,7 @@ def get_graphs(): return jsonify(graphs) -@app2.route('/api/graphs/', methods=['GET']) +@api.route('/api/graphs/', methods=['GET']) def get_graph_by_id(graph_id): """API endpoint для получения данных конкретного графа по ID.""" graph_data = graph_history_manager.get_graph(graph_id) @@ -49,7 +49,7 @@ def get_graph_by_id(graph_id): return jsonify({"error": f"Граф с ID {graph_id} не найден."}, 404) -@app2.route('/api/graphs/', methods=['DELETE']) +@api.route('/api/graphs/', methods=['DELETE']) def delete_graph(graph_id): """API endpoint для удаления графа.""" if not graph_id: @@ -61,7 +61,7 @@ def delete_graph(graph_id): return jsonify({"error": f"Не удалось удалить граф {graph_id}."}, 500) -@app2.route('/api/messages//', methods=['GET']) +@api.route('/api/messages//', methods=['GET']) def get_messages_from_root_to_node(graph_id, node_id): """API endpoint для получения сообщений от корня до выбранной ноды.""" graph_data = graph_history_manager.get_graph(graph_id) diff --git a/graph_history.db b/graph_history.db index e2c7b1c..45037c0 100644 Binary files a/graph_history.db and b/graph_history.db differ diff --git a/run.py b/run.py index 7bf48c8..64c39ff 100644 --- a/run.py +++ b/run.py @@ -6,7 +6,7 @@ import sys if __name__ == "__main__": # Добавляем папку app в Python path sys.path.insert(0, os.path.join(os.path.dirname(__file__), 'app')) - from app.api import app2 + from app.api import api print("🚀 Запуск LLM Agent Backend сервера...") print("📍 API будет доступно на: http://localhost:5000/api") @@ -14,8 +14,9 @@ if __name__ == "__main__": print("💬 Чат эндпоинт: http://localhost:5000/api/chat") print("\n⚠️ Для остановки нажмите Ctrl+C\n") - app2.run( + api.run( debug=True, port=5000, - host='localhost' + host='localhost', + threaded=True # Включаем многопоточность для обработки параллельных запросов ) \ No newline at end of file