# app.py import gradio as gr from agents.programmer import ProgrammerAgent from agents.debugger import DebuggerAgent from agents.base_agent import ACPMessage from firebase.firebase_config import log_message_to_firestore # Init agents codebot = ProgrammerAgent() bugbot = DebuggerAgent() chat_history = [] def chat_with_bots(user_input): global chat_history # Append User message (in red) chat_history.append(("🟥 You", f"{user_input}")) # Create ACP messages msg_to_codebot = ACPMessage(sender="User", receiver="CodeBot", performative="request", content=user_input) msg_to_bugbot = ACPMessage(sender="User", receiver="BugBot", performative="request", content=user_input) # Log to Firebase log_message_to_firestore(msg_to_codebot.to_dict()) log_message_to_firestore(msg_to_bugbot.to_dict()) # Get responses reply_codebot = codebot.receive_message(msg_to_codebot) reply_bugbot = bugbot.receive_message(msg_to_bugbot) # Log replies log_message_to_firestore(reply_codebot.to_dict()) log_message_to_firestore(reply_bugbot.to_dict()) # Append responses with custom colored bubbles chat_history.append(("🟩 CodeBot", f"{reply_codebot.content}")) chat_history.append(("🟧 BugBot", f"{reply_bugbot.content}")) return chat_history # Gradio Blocks App with gr.Blocks(css=""" .user-msg { background-color: #ffdddd; padding: 8px 12px; border-radius: 10px; display: inline-block; } .codebot-msg { background-color: #ddffdd; padding: 8px 12px; border-radius: 10px; display: inline-block; } .bugbot-msg { background-color: #ffe5cc; padding: 8px 12px; border-radius: 10px; display: inline-block; } .gr-chatbot { height: 250px !important; overflow-y: auto; } """) as demo: gr.Markdown("### Mn.o1 ACP Based Bots") chatbot = gr.Chatbot(label="Chat", bubble_full_width=False, show_copy_button=True) with gr.Row(): msg_input = gr.Textbox(placeholder="Ask a question...", lines=1, show_label=False) send_btn = gr.Button("Send", variant="primary") send_btn.click(chat_with_bots, inputs=msg_input, outputs=chatbot) msg_input.submit(chat_with_bots, inputs=msg_input, outputs=chatbot) gr.Markdown( """
🌐 Connect with me: LinkedIn | GitHub | Instagram | HF
""", elem_id="footer" ) demo.launch()