import gradio as gr from app.agents.programmer import ProgrammerAgent from app.agents.debugger import DebuggerAgent from agents.base_agent import ACPMessage, BaseAgent # Initialize agents aymaan = ProgrammerAgent() zaid = DebuggerAgent() chat_memory = [] prompt_options = BaseAgent.load_prompts() # Load from prompts.json def chat(user_input): if not user_input.strip(): return chat_memory user_msg = ACPMessage(sender="User", receiver="Aymaan", performative="inform", content=user_input) response_aymaan = aymaan.receive_message(user_msg) response_zaid = zaid.receive_message(user_msg) chat_memory.append({"role": "user", "content": user_input}) chat_memory.append({"role": "aymaan", "content": response_aymaan.content}) chat_memory.append({"role": "zaid", "content": response_zaid.content}) return chat_memory def reset_memory(): global chat_memory chat_memory = [] return chat_memory def use_prompt(selected): return selected with gr.Blocks(css="footer {margin-top: 2em; text-align: center;}") as demo: gr.Markdown("## ๐Ÿค– BotTalks: Chat with 2 AI Friends!\nSelect a prompt or ask anything!") chatbot = gr.Chatbot(label="Group Chat", type='messages', height=250) msg = gr.Textbox(label="You") prompt_picker = gr.Dropdown(prompt_options, label="๐Ÿง  Choose a Test Prompt", interactive=True) send_btn = gr.Button("Send") clear_btn = gr.Button("๐Ÿงน Reset Memory") prompt_picker.change(use_prompt, inputs=prompt_picker, outputs=msg) send_btn.click(chat, inputs=msg, outputs=chatbot) clear_btn.click(reset_memory, outputs=chatbot) gr.HTML(""" """) if __name__ == "__main__": demo.launch()