diff --git a/ai_agent.py b/ai_agent.py index 7e2ecf4..fb2f054 100644 --- a/ai_agent.py +++ b/ai_agent.py @@ -52,6 +52,7 @@ Sua missão é ser o SysAdmin de elite do Marcos. Você tem acesso root. 6. Quando terminar, sua resposta FINAL deve ter: - Um resumo técnico rápido. - Uma seção entre tags ... com uma tabela Markdown limpa ou resumo em tópicos (Nome: Valor) para o usuário leigo. +7. Se for solicitado exibir uma imagem (ex: um logo, foto) que você achou no host, **exiba-a dentro da tag ** usando markdown de imagem com o endpoint `/api/host_file?path=`. Exemplo: `![Imagem](/api/host_file?path=/var/www/html/img/Logo.jpg)` ### FERRAMENTAS DISPONÍVEIS: {TOOLS_LIST} @@ -62,6 +63,8 @@ Relatório: Coletei os dados solicitados. ### 📊 Status Global - **CPU**: 10% - **RAM**: 500MB livre + +![Logo](/api/host_file?path=/var/www/html/img/LogoSteelPaint.jpg) """ system_prompt = system_prompt_base.replace("{TOOLS_LIST}", tools_desc) diff --git a/main.py b/main.py index e18f101..27dd3de 100644 --- a/main.py +++ b/main.py @@ -149,6 +149,19 @@ async def get_audio_file(filename: str): return FileResponse(filepath, media_type="audio/mpeg") raise HTTPException(status_code=404, detail="Arquivo de áudio não encontrado.") +@app.get("/api/host_file") +async def get_host_file(path: str, is_auth: bool = Depends(verify_password)): + """Serve arquivos (como imagens) da máquina host para exibir no painel de insights.""" + host_path = f"/host_root{path}" if not path.startswith("/host_root") else path + + # Previne directory traversal básico garantindo que comece com /host_root + if not host_path.startswith("/host_root"): + raise HTTPException(status_code=400, detail="Caminho inválido.") + + if os.path.isfile(host_path): + return FileResponse(host_path) + raise HTTPException(status_code=404, detail="Arquivo não encontrado no host.") + @app.get("/api/test_llm") async def test_llm_speed(is_auth: bool = Depends(verify_password)): """Mede a velocidade de resposta da IA ativa."""