import gradio as gr # Ibyo dushaka kugenzura: power output (kW) n'ibikoresho bikoresha power # Turi gutegura loads 3: amatara, firigo, televiziyo def energy_management(power_output, light_load, fridge_load, tv_load): total_load = light_load + fridge_load + tv_load messages = [] messages.append(f"🔌 Power output available: {power_output} kW") messages.append(f"💡 Total load demand: {total_load} kW") if power_output >= total_load: surplus = power_output - total_load messages.append(f"✅ Power is sufficient. Surplus: {surplus:.2f} kW") messages.append("🔋 Amashanyarazi asigaye ashobora kubikwa cyangwa gukoreshwa mu bindi bikoresho.") else: deficit = total_load - power_output messages.append(f"⚠️ Power deficit! Kurwanya deficit: {deficit:.2f} kW") # Gukata load zidakenewe # Tugena priority: Firigo > TV > Lights load_status = {} remaining_power = power_output # Firigo ifite priority ya mbere if fridge_load <= remaining_power: load_status["Fridge"] = "ON" remaining_power -= fridge_load else: load_status["Fridge"] = "OFF" # TV ifite priority ya kabiri if tv_load <= remaining_power: load_status["TV"] = "ON" remaining_power -= tv_load else: load_status["TV"] = "OFF" # Lights ifite priority ya nyuma if light_load <= remaining_power: load_status["Lights"] = "ON" remaining_power -= light_load else: load_status["Lights"] = "OFF" messages.append("📉 Ibyuma byakozweho:") for device, status in load_status.items(): messages.append(f" - {device}: {status}") return "\n".join(messages) with gr.Blocks() as demo: gr.Markdown("## Energy Management System Simulation") power_output = gr.Slider(0, 10, step=0.1, label="Power Output (kW)", value=5) light_load = gr.Slider(0, 5, step=0.1, label="Lights Load (kW)", value=1) fridge_load = gr.Slider(0, 5, step=0.1, label="Fridge Load (kW)", value=2) tv_load = gr.Slider(0, 5, step=0.1, label="TV Load (kW)", value=1) output = gr.Textbox(label="System Report", lines=12) inputs = [power_output, light_load, fridge_load, tv_load] for inp in inputs: inp.change(fn=energy_management, inputs=inputs, outputs=output) # Report ya mbere output.value = energy_management(power_output.value, light_load.value, fridge_load.value, tv_load.value) demo.launch()