DreamStream-1 commited on
Commit
b34bcac
·
verified ·
1 Parent(s): 7aad12a

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +31 -20
app.py CHANGED
@@ -1465,7 +1465,7 @@ async def process_incoming_message(from_number: str, msg: dict):
1465
  return
1466
  else:
1467
  # Only trigger menu mode if not in AI chat mode
1468
- welcome_msg = generate_veterinary_welcome_message()
1469
  send_whatsjet_message(from_number, welcome_msg)
1470
  context_manager.update_context(
1471
  from_number,
@@ -1481,7 +1481,7 @@ async def process_incoming_message(from_number: str, msg: dict):
1481
  mapped_navigation = process_intelligent_voice_command(message_body, current_state, user_context)
1482
  if mapped_navigation == 'main':
1483
  logger.info(f"[Process] Navigation command detected: '{message_body}' -> 'main'")
1484
- welcome_msg = generate_veterinary_welcome_message()
1485
  send_whatsjet_message(from_number, welcome_msg)
1486
  context_manager.update_context(
1487
  from_number,
@@ -1493,7 +1493,7 @@ async def process_incoming_message(from_number: str, msg: dict):
1493
 
1494
  # Also check for text-based main commands
1495
  if message_body.lower() in ['main', 'menu', 'start', 'home', 'back']:
1496
- welcome_msg = generate_veterinary_welcome_message()
1497
  send_whatsjet_message(from_number, welcome_msg)
1498
  context_manager.update_context(
1499
  from_number,
@@ -1513,7 +1513,7 @@ async def process_incoming_message(from_number: str, msg: dict):
1513
  # Check for main navigation first
1514
  if mapped_selection == 'main':
1515
  logger.info(f"[Process] Main navigation from product_inquiry: '{message_body}' -> 'main'")
1516
- welcome_msg = generate_veterinary_welcome_message()
1517
  send_whatsjet_message(from_number, welcome_msg)
1518
  context_manager.update_context(
1519
  from_number,
@@ -1552,7 +1552,7 @@ async def process_incoming_message(from_number: str, msg: dict):
1552
  # Check for main navigation first
1553
  if mapped_selection == 'main':
1554
  logger.info(f"[Process] Main navigation from category_products_menu: '{message_body}' -> 'main'")
1555
- welcome_msg = generate_veterinary_welcome_message()
1556
  send_whatsjet_message(from_number, welcome_msg)
1557
  context_manager.update_context(
1558
  from_number,
@@ -1585,7 +1585,7 @@ async def process_incoming_message(from_number: str, msg: dict):
1585
  # Check for main navigation first
1586
  if mapped_selection == 'main':
1587
  logger.info(f"[Process] Main navigation from all_products_menu: '{message_body}' -> 'main'")
1588
- welcome_msg = generate_veterinary_welcome_message()
1589
  send_whatsjet_message(from_number, welcome_msg)
1590
  context_manager.update_context(
1591
  from_number,
@@ -1616,7 +1616,7 @@ async def process_incoming_message(from_number: str, msg: dict):
1616
  # Check for main navigation first
1617
  if mapped_selection == 'main':
1618
  logger.info(f"[Process] Main navigation from category_selection_menu: '{message_body}' -> 'main'")
1619
- welcome_msg = generate_veterinary_welcome_message()
1620
  send_whatsjet_message(from_number, welcome_msg)
1621
  context_manager.update_context(
1622
  from_number,
@@ -1857,7 +1857,7 @@ async def handle_voice_message_complete(from_number: str, msg: dict):
1857
  return
1858
  else:
1859
  # Only trigger menu mode if not in AI chat mode
1860
- welcome_msg = generate_veterinary_welcome_message()
1861
  send_whatsjet_message(from_number, welcome_msg)
1862
  context_manager.update_context(from_number, current_state='main_menu', current_menu='main_menu', current_menu_options=list(MENU_CONFIG['main_menu']['option_descriptions'].values()))
1863
  return
@@ -1971,13 +1971,13 @@ async def handle_veterinary_menu_selection_complete(selection: str, from_number:
1971
  await handle_all_products_selection(from_number, selection, user_context)
1972
 
1973
  else:
1974
- welcome_msg = generate_veterinary_welcome_message()
1975
  send_whatsjet_message(from_number, welcome_msg)
1976
  context_manager.update_context(from_number, current_state='main_menu', current_menu='main_menu', current_menu_options=list(MENU_CONFIG['main_menu']['option_descriptions'].values()))
1977
 
1978
  except Exception as e:
1979
  logger.error(f"[Menu] Error handling menu selection: {e}")
1980
- welcome_msg = generate_veterinary_welcome_message()
1981
  send_whatsjet_message(from_number, welcome_msg)
1982
  context_manager.update_context(from_number, current_state='main_menu', current_menu='main_menu', current_menu_options=list(MENU_CONFIG['main_menu']['option_descriptions'].values()))
1983
 
@@ -2218,7 +2218,7 @@ Format your response professionally with emojis and clear structure. Keep it con
2218
  except Exception as e:
2219
  logger.error(f"Error in product inquiry: {e}")
2220
  # Instead of sending a generic error, return to main menu
2221
- welcome_msg = generate_veterinary_welcome_message()
2222
  send_whatsjet_message(from_number, welcome_msg)
2223
  context_manager.update_context(from_number, current_state='main_menu', current_menu='main_menu', current_menu_options=list(MENU_CONFIG['main_menu']['option_descriptions'].values()))
2224
 
@@ -2279,7 +2279,7 @@ Always keep responses professional, concise, and user-friendly.
2279
  except Exception as e:
2280
  logger.error(f"[AI] Error handling general query: {e}")
2281
  # Instead of sending a generic error, return to main menu
2282
- welcome_msg = generate_veterinary_welcome_message()
2283
  send_whatsjet_message(from_number, welcome_msg)
2284
  context_manager.update_context(
2285
  from_number,
@@ -2311,7 +2311,7 @@ async def handle_contact_request(from_number: str):
2311
  except Exception as e:
2312
  logger.error(f"[Contact] Error handling contact request: {e}")
2313
  # Instead of sending a generic error, return to main menu
2314
- welcome_msg = generate_veterinary_welcome_message()
2315
  send_whatsjet_message(from_number, welcome_msg)
2316
  context_manager.update_context(
2317
  from_number,
@@ -2368,7 +2368,7 @@ async def handle_contact_request_response(from_number: str, response: str):
2368
  except Exception as e:
2369
  logger.error(f"[Contact] Error handling contact response: {e}")
2370
  # Instead of sending a generic error, return to main menu
2371
- welcome_msg = generate_veterinary_welcome_message()
2372
  send_whatsjet_message(from_number, welcome_msg)
2373
  context_manager.update_context(
2374
  from_number,
@@ -2407,7 +2407,7 @@ async def handle_availability_inquiry(from_number: str, user_context: dict):
2407
  except Exception as e:
2408
  logger.error(f"[Availability] Error handling availability inquiry: {e}")
2409
  # Instead of sending a generic error, return to main menu
2410
- welcome_msg = generate_veterinary_welcome_message()
2411
  send_whatsjet_message(from_number, welcome_msg)
2412
  context_manager.update_context(
2413
  from_number,
@@ -2472,7 +2472,7 @@ async def handle_availability_request_response(from_number: str, response: str):
2472
  except Exception as e:
2473
  logger.error(f"[Availability] Error handling availability response: {e}")
2474
  # Instead of sending a generic error, return to main menu
2475
- welcome_msg = generate_veterinary_welcome_message()
2476
  send_whatsjet_message(from_number, welcome_msg)
2477
  context_manager.update_context(
2478
  from_number,
@@ -2535,7 +2535,7 @@ def send_helpful_guidance(from_number: str, current_state: str):
2535
  )
2536
  except Exception as e:
2537
  logger.error(f"Error sending helpful guidance: {e}")
2538
- welcome_msg = generate_veterinary_welcome_message()
2539
  send_whatsjet_message(from_number, welcome_msg)
2540
  context_manager.update_context(
2541
  from_number,
@@ -2690,7 +2690,7 @@ async def handle_ai_chat_mode(from_number: str, query: str, reply_language: str
2690
  # Check for navigation commands first
2691
  if query.lower().strip() in ['main', 'menu', 'start', 'home', 'back']:
2692
  logger.info(f"[AI Chat] Navigation command detected: '{query}' -> returning to main menu")
2693
- welcome_msg = generate_veterinary_welcome_message()
2694
  send_whatsjet_message(from_number, welcome_msg)
2695
  context_manager.update_context(
2696
  from_number,
@@ -2703,7 +2703,7 @@ async def handle_ai_chat_mode(from_number: str, query: str, reply_language: str
2703
  # Check for greetings - return to main menu
2704
  if is_greeting(query):
2705
  logger.info(f"[AI Chat] Greeting detected: '{query}' -> returning to main menu")
2706
- welcome_msg = generate_veterinary_welcome_message()
2707
  send_whatsjet_message(from_number, welcome_msg)
2708
  context_manager.update_context(
2709
  from_number,
@@ -2819,7 +2819,18 @@ Response:
2819
  error_msg = "❌ AI Assistant encountered an error. Please try again or type 'main' to return to main menu."
2820
  send_whatsjet_message(from_number, error_msg)
2821
 
 
 
 
 
 
 
 
 
 
 
 
2822
  if __name__ == "__main__":
2823
  # Launch FastAPI app
2824
  import uvicorn
2825
- uvicorn.run(app, host="0.0.0.0", port=7860)
 
1465
  return
1466
  else:
1467
  # Only trigger menu mode if not in AI chat mode
1468
+ welcome_msg = generate_veterinary_welcome_message(from_number, user_context)
1469
  send_whatsjet_message(from_number, welcome_msg)
1470
  context_manager.update_context(
1471
  from_number,
 
1481
  mapped_navigation = process_intelligent_voice_command(message_body, current_state, user_context)
1482
  if mapped_navigation == 'main':
1483
  logger.info(f"[Process] Navigation command detected: '{message_body}' -> 'main'")
1484
+ welcome_msg = generate_veterinary_welcome_message(from_number, user_context)
1485
  send_whatsjet_message(from_number, welcome_msg)
1486
  context_manager.update_context(
1487
  from_number,
 
1493
 
1494
  # Also check for text-based main commands
1495
  if message_body.lower() in ['main', 'menu', 'start', 'home', 'back']:
1496
+ welcome_msg = generate_veterinary_welcome_message(from_number, user_context)
1497
  send_whatsjet_message(from_number, welcome_msg)
1498
  context_manager.update_context(
1499
  from_number,
 
1513
  # Check for main navigation first
1514
  if mapped_selection == 'main':
1515
  logger.info(f"[Process] Main navigation from product_inquiry: '{message_body}' -> 'main'")
1516
+ welcome_msg = generate_veterinary_welcome_message(from_number, user_context)
1517
  send_whatsjet_message(from_number, welcome_msg)
1518
  context_manager.update_context(
1519
  from_number,
 
1552
  # Check for main navigation first
1553
  if mapped_selection == 'main':
1554
  logger.info(f"[Process] Main navigation from category_products_menu: '{message_body}' -> 'main'")
1555
+ welcome_msg = generate_veterinary_welcome_message(from_number, user_context)
1556
  send_whatsjet_message(from_number, welcome_msg)
1557
  context_manager.update_context(
1558
  from_number,
 
1585
  # Check for main navigation first
1586
  if mapped_selection == 'main':
1587
  logger.info(f"[Process] Main navigation from all_products_menu: '{message_body}' -> 'main'")
1588
+ welcome_msg = generate_veterinary_welcome_message(from_number, user_context)
1589
  send_whatsjet_message(from_number, welcome_msg)
1590
  context_manager.update_context(
1591
  from_number,
 
1616
  # Check for main navigation first
1617
  if mapped_selection == 'main':
1618
  logger.info(f"[Process] Main navigation from category_selection_menu: '{message_body}' -> 'main'")
1619
+ welcome_msg = generate_veterinary_welcome_message(from_number, user_context)
1620
  send_whatsjet_message(from_number, welcome_msg)
1621
  context_manager.update_context(
1622
  from_number,
 
1857
  return
1858
  else:
1859
  # Only trigger menu mode if not in AI chat mode
1860
+ welcome_msg = generate_veterinary_welcome_message(from_number, user_context)
1861
  send_whatsjet_message(from_number, welcome_msg)
1862
  context_manager.update_context(from_number, current_state='main_menu', current_menu='main_menu', current_menu_options=list(MENU_CONFIG['main_menu']['option_descriptions'].values()))
1863
  return
 
1971
  await handle_all_products_selection(from_number, selection, user_context)
1972
 
1973
  else:
1974
+ welcome_msg = generate_veterinary_welcome_message(from_number, user_context)
1975
  send_whatsjet_message(from_number, welcome_msg)
1976
  context_manager.update_context(from_number, current_state='main_menu', current_menu='main_menu', current_menu_options=list(MENU_CONFIG['main_menu']['option_descriptions'].values()))
1977
 
1978
  except Exception as e:
1979
  logger.error(f"[Menu] Error handling menu selection: {e}")
1980
+ welcome_msg = generate_veterinary_welcome_message(from_number, user_context)
1981
  send_whatsjet_message(from_number, welcome_msg)
1982
  context_manager.update_context(from_number, current_state='main_menu', current_menu='main_menu', current_menu_options=list(MENU_CONFIG['main_menu']['option_descriptions'].values()))
1983
 
 
2218
  except Exception as e:
2219
  logger.error(f"Error in product inquiry: {e}")
2220
  # Instead of sending a generic error, return to main menu
2221
+ welcome_msg = generate_veterinary_welcome_message(from_number, user_context)
2222
  send_whatsjet_message(from_number, welcome_msg)
2223
  context_manager.update_context(from_number, current_state='main_menu', current_menu='main_menu', current_menu_options=list(MENU_CONFIG['main_menu']['option_descriptions'].values()))
2224
 
 
2279
  except Exception as e:
2280
  logger.error(f"[AI] Error handling general query: {e}")
2281
  # Instead of sending a generic error, return to main menu
2282
+ welcome_msg = generate_veterinary_welcome_message(from_number, user_context)
2283
  send_whatsjet_message(from_number, welcome_msg)
2284
  context_manager.update_context(
2285
  from_number,
 
2311
  except Exception as e:
2312
  logger.error(f"[Contact] Error handling contact request: {e}")
2313
  # Instead of sending a generic error, return to main menu
2314
+ welcome_msg = generate_veterinary_welcome_message(from_number, user_context)
2315
  send_whatsjet_message(from_number, welcome_msg)
2316
  context_manager.update_context(
2317
  from_number,
 
2368
  except Exception as e:
2369
  logger.error(f"[Contact] Error handling contact response: {e}")
2370
  # Instead of sending a generic error, return to main menu
2371
+ welcome_msg = generate_veterinary_welcome_message(from_number, user_context)
2372
  send_whatsjet_message(from_number, welcome_msg)
2373
  context_manager.update_context(
2374
  from_number,
 
2407
  except Exception as e:
2408
  logger.error(f"[Availability] Error handling availability inquiry: {e}")
2409
  # Instead of sending a generic error, return to main menu
2410
+ welcome_msg = generate_veterinary_welcome_message(from_number, user_context)
2411
  send_whatsjet_message(from_number, welcome_msg)
2412
  context_manager.update_context(
2413
  from_number,
 
2472
  except Exception as e:
2473
  logger.error(f"[Availability] Error handling availability response: {e}")
2474
  # Instead of sending a generic error, return to main menu
2475
+ welcome_msg = generate_veterinary_welcome_message(from_number, user_context)
2476
  send_whatsjet_message(from_number, welcome_msg)
2477
  context_manager.update_context(
2478
  from_number,
 
2535
  )
2536
  except Exception as e:
2537
  logger.error(f"Error sending helpful guidance: {e}")
2538
+ welcome_msg = generate_veterinary_welcome_message(from_number, user_context)
2539
  send_whatsjet_message(from_number, welcome_msg)
2540
  context_manager.update_context(
2541
  from_number,
 
2690
  # Check for navigation commands first
2691
  if query.lower().strip() in ['main', 'menu', 'start', 'home', 'back']:
2692
  logger.info(f"[AI Chat] Navigation command detected: '{query}' -> returning to main menu")
2693
+ welcome_msg = generate_veterinary_welcome_message(from_number, user_context)
2694
  send_whatsjet_message(from_number, welcome_msg)
2695
  context_manager.update_context(
2696
  from_number,
 
2703
  # Check for greetings - return to main menu
2704
  if is_greeting(query):
2705
  logger.info(f"[AI Chat] Greeting detected: '{query}' -> returning to main menu")
2706
+ welcome_msg = generate_veterinary_welcome_message(from_number, user_context)
2707
  send_whatsjet_message(from_number, welcome_msg)
2708
  context_manager.update_context(
2709
  from_number,
 
2819
  error_msg = "❌ AI Assistant encountered an error. Please try again or type 'main' to return to main menu."
2820
  send_whatsjet_message(from_number, error_msg)
2821
 
2822
+ def generate_veterinary_welcome_message(phone_number, user_context):
2823
+ return (
2824
+ "👋 Welcome to Apex Biotical Veterinary WhatsApp Bot!\n"
2825
+ "How can I assist you today?\n"
2826
+ "1️⃣ Search Products\n"
2827
+ "2️⃣ Browse Categories\n"
2828
+ "3️⃣ Download Catalog\n"
2829
+ "4️⃣ Chat with Veterinary AI Assistant\n"
2830
+ "Please reply with a number (1-4) or type your question."
2831
+ )
2832
+
2833
  if __name__ == "__main__":
2834
  # Launch FastAPI app
2835
  import uvicorn
2836
+ uvicorn.run(app, host="0.0.0.0", port=7860)