Spaces:
Sleeping
Sleeping
Update app.py
Browse files
app.py
CHANGED
|
@@ -34,7 +34,7 @@ async def ask(request: Request):
|
|
| 34 |
print("📥 Incoming payload:", json.dumps(payload, indent=2))
|
| 35 |
|
| 36 |
account_id = payload.get("account", {}).get("id")
|
| 37 |
-
conversation_id = payload.get("conversation", {}).get("id")
|
| 38 |
sender = payload.get("sender") or {}
|
| 39 |
sender_id = sender.get("id")
|
| 40 |
sender_role = (sender.get("role") or "").lower()
|
|
@@ -43,8 +43,17 @@ async def ask(request: Request):
|
|
| 43 |
|
| 44 |
print(f"🧾 sender_id: {sender_id}, sender_role: {sender_role}, account_id: {account_id}")
|
| 45 |
|
| 46 |
-
#
|
| 47 |
if message_type != "incoming":
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 48 |
print("⚠️ Ignoring non-incoming message")
|
| 49 |
return {"status": "ignored"}
|
| 50 |
|
|
@@ -60,12 +69,6 @@ async def ask(request: Request):
|
|
| 60 |
await send_chatwoot_message(conversation_id, "Bot resumed and will reply to users now.")
|
| 61 |
return {"status": "bot resumed"}
|
| 62 |
|
| 63 |
-
# If message is from other inbox (Slack), disable bot
|
| 64 |
-
if account_id != CHATWOOT_ACCOUNT_ID:
|
| 65 |
-
stop_reply_conversations.add(conversation_id)
|
| 66 |
-
print(f"🚫 Message from other inbox (account ID {account_id}) → disabling AI for conversation {conversation_id}")
|
| 67 |
-
return {"status": "AI disabled due to human intervention"}
|
| 68 |
-
|
| 69 |
# Check if AI is blacklisted for this conversation
|
| 70 |
if conversation_id in stop_reply_conversations:
|
| 71 |
print(f"🚫 AI is disabled for conversation {conversation_id}")
|
|
|
|
| 34 |
print("📥 Incoming payload:", json.dumps(payload, indent=2))
|
| 35 |
|
| 36 |
account_id = payload.get("account", {}).get("id")
|
| 37 |
+
conversation_id = str(payload.get("conversation", {}).get("id"))
|
| 38 |
sender = payload.get("sender") or {}
|
| 39 |
sender_id = sender.get("id")
|
| 40 |
sender_role = (sender.get("role") or "").lower()
|
|
|
|
| 43 |
|
| 44 |
print(f"🧾 sender_id: {sender_id}, sender_role: {sender_role}, account_id: {account_id}")
|
| 45 |
|
| 46 |
+
# Step 1: Detect agent message via Slack and disable AI for that conversation
|
| 47 |
if message_type != "incoming":
|
| 48 |
+
messages = payload.get("conversation", {}).get("messages", [])
|
| 49 |
+
if messages:
|
| 50 |
+
msg = messages[0]
|
| 51 |
+
external_ids = msg.get("external_source_ids", {})
|
| 52 |
+
if "slack" in external_ids:
|
| 53 |
+
stop_reply_conversations.add(conversation_id)
|
| 54 |
+
print(f"🛑 Human intervened via Slack in conversation {conversation_id}. Disabling AI.")
|
| 55 |
+
return {"status": "AI disabled due to Slack intervention"}
|
| 56 |
+
|
| 57 |
print("⚠️ Ignoring non-incoming message")
|
| 58 |
return {"status": "ignored"}
|
| 59 |
|
|
|
|
| 69 |
await send_chatwoot_message(conversation_id, "Bot resumed and will reply to users now.")
|
| 70 |
return {"status": "bot resumed"}
|
| 71 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 72 |
# Check if AI is blacklisted for this conversation
|
| 73 |
if conversation_id in stop_reply_conversations:
|
| 74 |
print(f"🚫 AI is disabled for conversation {conversation_id}")
|