infinitymatter's picture
Update app.py
075292d verified
import os
import shutil
import psutil
import gradio as gr
# AI Module
try:
from transformers import pipeline
ai_enabled = True
nlp = pipeline("text2text-generation", model="google/flan-t5-small")
except Exception:
ai_enabled = False
# Command Handlers
def run_command(cmd):
parts = cmd.strip().split()
if not parts:
return "No command entered."
c, args = parts[0], parts[1:]
if c == "ls":
path = args[0] if args else "."
try:
return "\n".join(os.listdir(path))
except Exception as e:
return str(e)
elif c == "pwd":
return os.getcwd()
elif c == "cd":
if not args:
return "cd: missing operand"
try:
os.chdir(args[0])
return f"Changed directory to {os.getcwd()}"
except Exception as e:
return str(e)
elif c == "mkdir":
if not args:
return "mkdir: missing operand"
try:
os.mkdir(args[0])
return f"Directory '{args[0]}' created."
except Exception as e:
return str(e)
elif c == "rm":
if not args:
return "rm: missing operand"
target = args[0]
try:
if os.path.isdir(target):
shutil.rmtree(target)
else:
os.remove(target)
return f"Removed '{target}'."
except Exception as e:
return str(e)
elif c == "monitor":
cpu = psutil.cpu_percent(interval=1)
mem = psutil.virtual_memory()
return f"CPU Usage: {cpu}%\nMemory Usage: {mem.percent}%"
elif c == "ai":
if not ai_enabled:
return "AI not available."
if not args:
return "ai: missing query"
query = " ".join(args)
try:
result = nlp(query, max_length=100)[0]['generated_text']
return f"AI Suggestion: {result}"
except Exception as e:
return str(e)
elif c == "help":
cmds = ["ls", "pwd", "cd", "mkdir", "rm", "monitor", "help"]
if ai_enabled:
cmds.append("ai")
return "Available commands:\n" + "\n".join(cmds)
else:
return f"{c}: command not found"
# Gradio UI
iface = gr.Interface(
fn=run_command,
inputs=gr.Textbox(lines=2, placeholder="Enter command..."),
outputs="text",
title="Python Terminal Emulator",
description="A mini terminal emulator with optional AI commands."
)
if __name__ == "__main__":
iface.launch()