xvadur/Aethero_github
0
1import os2import gradio as gr3 4def get_agents():5 files = os.listdir("memory")6 agents = set()7 for f in files:8 if f.endswith(".txt") and "_output_" in f:9 agents.add(f.split("_output_")[0])10 return sorted(list(agents))11 12def get_logs_for_agent(agent):13 files = os.listdir("memory")14 logs = [f for f in files if f.startswith(agent.lower()) and f.endswith(".txt")]15 logs.sort(reverse=True)16 return logs17 18def read_log(filename):19 with open(os.path.join("memory", filename), "r") as f:20 return f.read()21 22def export_log(filename, export_type):23 content = read_log(filename)24 export_dir = "memory"25 base = filename.rsplit(".txt", 1)[0]26 if export_type == "Markdown":27 out_path = os.path.join(export_dir, base + ".md")28 with open(out_path, "w") as f:29 f.write(f"# Log: {filename}\n\n" + content)30 return f"Exportované do {out_path}"31 elif export_type == "JSON":32 import json33 out_path = os.path.join(export_dir, base + ".json")34 with open(out_path, "w") as f:35 json.dump({"log": content}, f, ensure_ascii=False, indent=2)36 return f"Exportované do {out_path}"37 return "Neznámy formát"38 39def ui():40 agents = get_agents()41 with gr.Blocks() as demo:42 gr.Markdown("# Aethero Memory Viewer")43 agent = gr.Dropdown(choices=agents, label="Vyber agenta")44 log_file = gr.Dropdown(choices=[], label="Vyber log")45 log_content = gr.Textbox(label="Obsah logu", lines=20)46 export_type = gr.Radio(["Markdown", "JSON"], label="Exportovať ako")47 export_btn = gr.Button("Exportovať log")48 export_result = gr.Textbox(label="Export stav")49 50 def update_logs(agent):51 logs = get_logs_for_agent(agent)52 return gr.Dropdown.update(choices=logs, value=logs[0] if logs else None)53 54 def show_log(log_file):55 if log_file:56 return read_log(log_file)57 return ""58 59 agent.change(update_logs, agent, log_file)60 log_file.change(show_log, log_file, log_content)61 export_btn.click(lambda f, t: export_log(f, t), [log_file, export_type], export_result)62 return demo63 64if __name__ == "__main__":65 ui().launch()66 