Spaces:
Sleeping
Sleeping
Update app.py
Browse files
app.py
CHANGED
@@ -2063,34 +2063,9 @@ async def process_incoming_message(from_number: str, msg: dict):
|
|
2063 |
await handle_category_selection(message_body, from_number)
|
2064 |
return
|
2065 |
|
2066 |
-
|
2067 |
-
elif current_state in ['all_products_menu', 'category_products_menu']:
|
2068 |
-
# Handle product selection from numbered list
|
2069 |
-
try:
|
2070 |
-
selection_index = int(message_body) - 1
|
2071 |
-
menu_options = user_context.get('current_menu_options', [])
|
2072 |
-
available_products = user_context.get('available_products', [])
|
2073 |
-
|
2074 |
-
if 0 <= selection_index < len(available_products):
|
2075 |
-
selected_product = available_products[selection_index]
|
2076 |
-
context_manager.update_context(from_number, current_product=selected_product)
|
2077 |
-
await send_product_with_image(from_number, selected_product, user_context)
|
2078 |
-
await handle_veterinary_product_followup(selected_product.get('Product Name', ''), from_number)
|
2079 |
-
return
|
2080 |
-
else:
|
2081 |
-
# Invalid selection
|
2082 |
-
if reply_language == 'ur':
|
2083 |
-
send_whatsjet_message(from_number, f"❌ *غلط انتخاب۔ براہ کرم 1 سے {len(available_products)} کے درمیان نمبر منتخب کریں یا 'main' لکھ کر مین مینو پر واپس جائیں۔*")
|
2084 |
-
else:
|
2085 |
-
send_whatsjet_message(from_number, f"❌ *Invalid selection. Please choose a number between 1 and {len(available_products)}, or type 'main' to return to main menu.*")
|
2086 |
-
return
|
2087 |
-
|
2088 |
-
except ValueError:
|
2089 |
-
# Not a number - treat as general query
|
2090 |
-
await handle_general_query_with_ai(from_number, message_body, user_context, reply_language)
|
2091 |
-
return
|
2092 |
|
2093 |
-
# 🎯 PRIORITY
|
2094 |
elif current_state == 'product_inquiry':
|
2095 |
# Check for voice commands first
|
2096 |
mapped_command = process_intelligent_voice_command(message_body, current_state, user_context)
|
@@ -2179,7 +2154,7 @@ async def process_incoming_message(from_number: str, msg: dict):
|
|
2179 |
await handle_general_query_with_ai(from_number, message_body, user_context, reply_language)
|
2180 |
return
|
2181 |
|
2182 |
-
# 🎯 PRIORITY
|
2183 |
await handle_general_query_with_ai(from_number, message_body, user_context, reply_language)
|
2184 |
return
|
2185 |
|
@@ -2388,7 +2363,7 @@ async def process_incoming_message(from_number: str, msg: dict):
|
|
2388 |
return
|
2389 |
return # Exit after handling menu selection
|
2390 |
|
2391 |
-
# 🎯 PRIORITY
|
2392 |
# This ensures users can say product names like "hydropex", "respira aid plus", etc. from any menu
|
2393 |
logger.info(f"[Process] Checking for product name in message: '{message_body}' from state: {current_state}")
|
2394 |
products = get_veterinary_product_matches(message_body)
|
|
|
2063 |
await handle_category_selection(message_body, from_number)
|
2064 |
return
|
2065 |
|
2066 |
+
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2067 |
|
2068 |
+
# 🎯 PRIORITY 5: Product inquiry handling (for direct product searches)
|
2069 |
elif current_state == 'product_inquiry':
|
2070 |
# Check for voice commands first
|
2071 |
mapped_command = process_intelligent_voice_command(message_body, current_state, user_context)
|
|
|
2154 |
await handle_general_query_with_ai(from_number, message_body, user_context, reply_language)
|
2155 |
return
|
2156 |
|
2157 |
+
# 🎯 PRIORITY 6: All other queries - use OpenAI for intelligent response
|
2158 |
await handle_general_query_with_ai(from_number, message_body, user_context, reply_language)
|
2159 |
return
|
2160 |
|
|
|
2363 |
return
|
2364 |
return # Exit after handling menu selection
|
2365 |
|
2366 |
+
# 🎯 PRIORITY 6: Product names - works from ANY menu state
|
2367 |
# This ensures users can say product names like "hydropex", "respira aid plus", etc. from any menu
|
2368 |
logger.info(f"[Process] Checking for product name in message: '{message_body}' from state: {current_state}")
|
2369 |
products = get_veterinary_product_matches(message_body)
|