🚀 Initial deploy to Gitea with fixes and dashboard enhancements
This commit is contained in:
45
tools.py
Normal file
45
tools.py
Normal file
@@ -0,0 +1,45 @@
|
||||
import subprocess
|
||||
import os
|
||||
import psutil
|
||||
|
||||
def run_bash_command(command: str) -> str:
|
||||
"""Executa um comando bash na VPS e retorna a saída."""
|
||||
try:
|
||||
# Executa comando arriscado com root de forma segura dentro da VPS
|
||||
result = subprocess.run(
|
||||
command,
|
||||
shell=True,
|
||||
capture_output=True,
|
||||
text=True,
|
||||
timeout=60 # Limite de tempo de execução
|
||||
)
|
||||
output = result.stdout.strip()
|
||||
error = result.stderr.strip()
|
||||
|
||||
if result.returncode != 0:
|
||||
return f"ERRO ({result.returncode}):\n{error}"
|
||||
|
||||
return output if output else "Comando executado com sucesso (sem saída)."
|
||||
except subprocess.TimeoutExpired:
|
||||
return "ERRO: O comando demorou muito e foi cancelado (timeout)."
|
||||
except Exception as e:
|
||||
return f"ERRO fatal ao rodar bash: {str(e)}"
|
||||
|
||||
def get_system_health() -> str:
|
||||
"""Retorna um texto base rápido da saúde atual do servidor para a IA analisar."""
|
||||
cpu = psutil.cpu_percent(interval=0.1)
|
||||
ram = psutil.virtual_memory().percent
|
||||
disk = psutil.disk_usage('/').percent
|
||||
return f"CPU: {cpu}% | RAM Usada: {ram}% | Disco Usado: {disk}%"
|
||||
|
||||
# Mapeamento estático para o LLM entender quais tools ele possui
|
||||
AVAILABLE_TOOLS = {
|
||||
"run_bash_command": {
|
||||
"description": "Executa qualquer comando Linux no terminal da VPS. Use para criar arquivos, rodar git, verificar logs do docker, etc.",
|
||||
"func": run_bash_command
|
||||
},
|
||||
"get_system_health": {
|
||||
"description": "Verifica como está o uso de RAM, CPU e Disco agora.",
|
||||
"func": get_system_health
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user