feat: upgrade interface web e suporte a áudio completo
This commit is contained in:
33
tools.py
33
tools.py
@@ -5,13 +5,13 @@ 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
|
||||
# Executa comando 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
|
||||
timeout=120 # Aumentado para comandos mais pesados
|
||||
)
|
||||
output = result.stdout.strip()
|
||||
error = result.stderr.strip()
|
||||
@@ -32,14 +32,37 @@ def get_system_health() -> str:
|
||||
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
|
||||
def read_vps_file(filepath: str) -> str:
|
||||
"""Lê um arquivo do sistema de arquivos da VPS através do mapeamento /host_root."""
|
||||
host_path = f"/host_root{filepath}" if not filepath.startswith("/host_root") else filepath
|
||||
try:
|
||||
if not os.path.exists(host_path):
|
||||
return f"Erro: Arquivo {filepath} não encontrado no host."
|
||||
with open(host_path, 'r') as f:
|
||||
return f.read(2000) # Limite para não estourar o contexto
|
||||
except Exception as e:
|
||||
return f"Erro ao ler arquivo: {e}"
|
||||
|
||||
def get_docker_stats() -> str:
|
||||
"""Retorna o uso de CPU/RAM de todos os containers ativos via comando docker stats."""
|
||||
return run_bash_command('docker stats --no-stream --format "table {{.Name}}\t{{.CPUPerc}}\t{{.MemUsage}}"')
|
||||
|
||||
# Mapeamento para o Agente entender quais tools ele possui (será usado no loop ReAct)
|
||||
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.",
|
||||
"description": "Executa comandos Linux na VPS. Use para docker, git, mkdir, touch, etc.",
|
||||
"func": run_bash_command
|
||||
},
|
||||
"get_system_health": {
|
||||
"description": "Verifica como está o uso de RAM, CPU e Disco agora.",
|
||||
"description": "Verifica RAM, CPU e Disco globais da VPS.",
|
||||
"func": get_system_health
|
||||
},
|
||||
"read_vps_file": {
|
||||
"description": "Lê o conteúdo de um arquivo na VPS (logs, configs).",
|
||||
"func": read_vps_file
|
||||
},
|
||||
"get_docker_stats": {
|
||||
"description": "Retorna uma tabela com o consumo de CPU e Memória de cada container.",
|
||||
"func": get_docker_stats
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user