aymnsk commited on
Commit
5f9aa9b
·
verified ·
1 Parent(s): eccdb11

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +46 -71
app.py CHANGED
@@ -1,92 +1,67 @@
1
- # app.py
2
 
3
- import time
4
  import gradio as gr
5
  from agents.programmer import ProgrammerAgent
6
  from agents.debugger import DebuggerAgent
7
  from agents.base_agent import ACPMessage
8
 
9
- # Initialize agents
10
  aymaan = ProgrammerAgent()
11
  zaid = DebuggerAgent()
12
 
13
- chat_history = []
 
14
 
15
- # Memory
16
- chat_memory = {
17
- "aymaan": [],
18
- "zaid": []
19
- }
20
 
21
- # Chat Function
22
- def chat_with_friends(user_input):
23
- global chat_history
24
 
25
- try:
26
- chat_history.append({"role": "user", "content": user_input})
 
27
 
28
- msg_aymaan = ACPMessage(sender="You", receiver="Aymaan", performative="request", content=user_input)
29
- msg_zaid = ACPMessage(sender="You", receiver="Zaid", performative="request", content=user_input)
 
30
 
31
- reply_aymaan = aymaan.receive_message(msg_aymaan)
32
- reply_zaid = zaid.receive_message(msg_zaid)
 
33
 
34
- chat_memory["aymaan"].append(f"You: {user_input}")
35
- chat_memory["aymaan"].append(f"Aymaan: {reply_aymaan.content}")
36
- chat_memory["zaid"].append(f"You: {user_input}")
37
- chat_memory["zaid"].append(f"Zaid: {reply_zaid.content}")
38
 
39
- chat_history.append({"role": "assistant", "name": "Aymaan", "content": reply_aymaan.content})
40
- chat_history.append({"role": "assistant", "name": "Zaid", "content": reply_zaid.content})
 
 
41
 
42
- return chat_history
43
-
44
- except Exception as e:
45
- chat_history.append({"role": "assistant", "name": "System", "content": f"⚠️ Error: {str(e)}"})
46
- return chat_history
47
-
48
- # Reset button
49
- def reset_all():
50
- chat_history.clear()
51
- chat_memory["aymaan"].clear()
52
- chat_memory["zaid"].clear()
53
- return []
54
-
55
- # UI
56
- with gr.Blocks(css="""
57
- .gr-chatbot {
58
- height: 250px !important;
59
- overflow-y: auto;
60
- }
61
- .gr-chatbot .avatar {
62
- border-radius: 50% !important;
63
- height: 38px !important;
64
- width: 38px !important;
65
- object-fit: cover !important;
66
- margin-right: 6px;
67
- }
68
- """) as demo:
69
- gr.Markdown("## 🤖 BotTalks: Chat with Aymaan & Zaid — Your AI Coding Buddies")
70
-
71
- chatbot = gr.Chatbot(label="Group Chat", show_copy_button=True, type="messages")
72
 
73
  with gr.Row():
74
- msg_input = gr.Textbox(placeholder="Say hi or ask a coding question!", lines=1, show_label=False)
75
- send_btn = gr.Button("Send", variant="primary")
76
- reset_btn = gr.Button("🧹 Reset Memory", variant="secondary")
77
-
78
- send_btn.click(chat_with_friends, inputs=msg_input, outputs=chatbot)
79
- msg_input.submit(chat_with_friends, inputs=msg_input, outputs=chatbot)
80
- reset_btn.click(fn=reset_all, inputs=[], outputs=chatbot)
81
-
82
- gr.Markdown("""
83
- <div style='text-align: right; font-size: 0.9em; padding-top: 15px;'>
84
- 🔗 Connect:
85
- <a href="https://linkedin.com/in/aymnsk" target="_blank">LinkedIn</a> |
86
- <a href="https://github.com/aymnsk" target="_blank">GitHub</a> |
87
- <a href="https://instagram.com/damnn_aymn" target="_blank">Instagram</a> |
88
- <a href="https://huggingface.co/aymnsk" target="_blank">HF</a>
89
- </div>
90
- """)
 
91
 
92
  demo.launch()
 
1
+ # app/app.py
2
 
 
3
  import gradio as gr
4
  from agents.programmer import ProgrammerAgent
5
  from agents.debugger import DebuggerAgent
6
  from agents.base_agent import ACPMessage
7
 
8
+ # Instantiate agents
9
  aymaan = ProgrammerAgent()
10
  zaid = DebuggerAgent()
11
 
12
+ # Agent memory
13
+ memory = []
14
 
15
+ # Chat function
16
+ def chat(user_input):
17
+ if not user_input.strip():
18
+ return memory
 
19
 
20
+ # Format user's message
21
+ memory.append({"role": "user", "content": user_input, "name": "You", "avatar": "🧑", "color": "#ff0000"})
 
22
 
23
+ # Create messages for both agents
24
+ msg_for_aymaan = ACPMessage(sender="You", receiver="Aymaan", performative="inform", content=user_input)
25
+ msg_for_zaid = ACPMessage(sender="You", receiver="Zaid", performative="inform", content=user_input)
26
 
27
+ # Get responses
28
+ aymaan_reply = aymaan.receive_message(msg_for_aymaan)
29
+ zaid_reply = zaid.receive_message(msg_for_zaid)
30
 
31
+ # Append replies to memory
32
+ memory.append({"role": "assistant", "content": aymaan_reply.content, "name": "Aymaan", "avatar": "💬", "color": "#00cc66"})
33
+ memory.append({"role": "assistant", "content": zaid_reply.content, "name": "Zaid", "avatar": "🐞", "color": "#ffa500"})
34
 
35
+ return memory
 
 
 
36
 
37
+ # Reset memory
38
+ def reset():
39
+ memory.clear()
40
+ return memory
41
 
42
+ # Custom chat styling
43
+ with gr.Blocks(theme=gr.themes.Base(), css=".message { border-radius: 999px !important; min-height: 250px; }") as demo:
44
+ gr.Markdown("## 🤖 BotTalks: Chat with Aymaan & Zaid (TinyLLaMA + Mistral)")
45
+ chatbot = gr.Chatbot(label="Group Chat", type='messages', show_copy_button=True)
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
46
 
47
  with gr.Row():
48
+ msg = gr.Textbox(placeholder="Say something...", scale=8)
49
+ send_btn = gr.Button("Send", scale=1)
50
+ reset_btn = gr.Button("🧹 Reset Memory", scale=1)
51
+
52
+ send_btn.click(chat, inputs=[msg], outputs=[chatbot])
53
+ msg.submit(chat, inputs=[msg], outputs=[chatbot])
54
+ reset_btn.click(reset, outputs=[chatbot])
55
+
56
+ # Footer with social links
57
+ gr.Markdown(
58
+ "<div style='text-align: right; font-size: 14px;'>"
59
+ "🔗 Connect: "
60
+ "<a href='https://www.linkedin.com/in/aymnsk' target='_blank'>LinkedIn</a> | "
61
+ "<a href='https://github.com/aymnsk' target='_blank'>GitHub</a> | "
62
+ "<a href='https://www.instagram.com/damnn_aymn/' target='_blank'>Instagram</a> | "
63
+ "<a href='https://huggingface.co/aymnsk' target='_blank'>HF</a>"
64
+ "</div>"
65
+ )
66
 
67
  demo.launch()