From 75d2a16fecf2c01de02b5caa8a353fcacebbc1ff Mon Sep 17 00:00:00 2001 From: Marcos Date: Sun, 22 Mar 2026 12:40:06 -0300 Subject: [PATCH] Fix: Unified Context Memory between Web and Telegram --- ai_agent.py | 2 +- main.py | 7 +++++-- templates/index.html | 11 ++++++++++- 3 files changed, 16 insertions(+), 4 deletions(-) diff --git a/ai_agent.py b/ai_agent.py index 111cc4a..d54d238 100644 --- a/ai_agent.py +++ b/ai_agent.py @@ -48,7 +48,7 @@ Você tem acesso root completo à VPS e deve agir de forma profissional e precis 2. Se o usuário pedir o status da VPS, SEMPRE use a ferramenta 'get_system_health'. 3. Se o usuário pedir algo sobre containers, use 'get_docker_stats'. 4. Antes de decidir que um arquivo não existe, use 'run_bash_command' com 'ls' para verificar o diretório. -5. NUCA invente que buscou por arquivos (como syslog.conf) se o usuário não pediu especificamente por eles. +5. NUNCA invente que buscou por arquivos (como syslog.conf) se o usuário não pediu especificamente por eles. 6. A seção deve conter apenas as informações solicitadas. Se não houver imagem relevante, não inclua tags de imagem. 7. O disco da VPS está montado em `/host_root`. Os arquivos do Marcos ficam principalmente em `/host_root/root/VPS_Sync`. Use este caminho como ponto de partida se o `find` na raiz falhar ou demorar demais. diff --git a/main.py b/main.py index 7d4614b..8934e96 100644 --- a/main.py +++ b/main.py @@ -104,12 +104,15 @@ async def execute_smart_action(action: dict, is_auth: bool = Depends(verify_pass @app.post("/api/chat") async def web_chat(message: dict, is_auth: bool = Depends(verify_password)): - """Endpoint para interagir com a IA via Web UI.""" + """Endpoint para interagir com a IA via Web UI com suporte a histórico.""" user_text = message.get("text", "") + history = message.get("history", []) # Recebe o histórico do navegador + if not user_text: return JSONResponse(content={"reply": "Por favor, digite um comando válido."}) - reply = await run_in_threadpool(query_agent, prompt=user_text) + # Passa o histórico para o query_agent manter o contexto + reply = await run_in_threadpool(query_agent, prompt=user_text, chat_history=history) return JSONResponse(content={"reply": reply}) @app.post("/api/chat-audio") diff --git a/templates/index.html b/templates/index.html index fd482b7..f9bad89 100644 --- a/templates/index.html +++ b/templates/index.html @@ -853,6 +853,7 @@