SamiKoen commited on
Commit
7185aef
·
verified ·
1 Parent(s): cba1186

Upload app.py

Browse files
Files changed (1) hide show
  1. app.py +102 -12
app.py CHANGED
@@ -58,6 +58,51 @@ else:
58
  logger.error(f"❌ Twilio client hatası: {e}")
59
  twilio_client = None
60
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
61
  # Trek bisiklet ürünlerini çekme - DÜZELTİLMİŞ VERSİYON
62
  try:
63
  print("🔍 XML DEBUG TEST BAŞLADI")
@@ -707,13 +752,36 @@ def process_whatsapp_message_with_memory(user_message, phone_number):
707
  try:
708
  product_result = improved_whatsapp_bot.process_message(user_message)
709
  if product_result['is_product_query'] and product_result['response']:
710
- # Use improved search response directly
711
- messages.append({
712
- "role": "system",
713
- "content": f"ÜRÜN BİLGİSİ (BF Space):\n{product_result['response']}\n\nSADECE bu bilgileri kullanarak kullanıcıya yardımcı ol. Bu bilgiler dışında ek bilgi ekleme."
714
- })
715
- product_found_improved = True
716
- logger.info("✅ BF Space: Improved product search used")
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
717
  except Exception as e:
718
  logger.error(f"❌ BF Space: Improved search error: {e}")
719
 
@@ -896,11 +964,33 @@ def process_whatsapp_message(user_message):
896
  try:
897
  product_result = improved_whatsapp_bot.process_message(user_message)
898
  if product_result['is_product_query'] and product_result['response']:
899
- system_messages.append({
900
- "role": "system",
901
- "content": f"ÜRÜN BİLGİSİ (BF Space Backup):\n{product_result['response']}\n\nSADECE bu bilgileri kullanarak kullanıcıya yardımcı ol. Bu bilgiler dışında ek bilgi ekleme."
902
- })
903
- product_found_improved = True
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
904
  except Exception as e:
905
  print(f"BF Space backup: Improved search error: {e}")
906
 
 
58
  logger.error(f"❌ Twilio client hatası: {e}")
59
  twilio_client = None
60
 
61
+ # Mağaza stok bilgilerini çekme fonksiyonu
62
+ def get_warehouse_stock(product_name):
63
+ """B2B API'den mağaza stok bilgilerini çek"""
64
+ try:
65
+ warehouse_url = 'https://video.trek-turkey.com/bizimhesap-warehouse-xml.php'
66
+ response = requests.get(warehouse_url, verify=False, timeout=15)
67
+
68
+ if response.status_code != 200:
69
+ return None
70
+
71
+ root = ET.fromstring(response.content)
72
+
73
+ # Ürünü ara
74
+ for product in root.findall('Product'):
75
+ product_name_elem = product.find('ProductName')
76
+ if product_name_elem is not None and product_name_elem.text:
77
+ xml_product_name = product_name_elem.text.lower().strip()
78
+ search_name = product_name.lower().strip()
79
+
80
+ # Fuzzy matching
81
+ if search_name in xml_product_name or xml_product_name in search_name:
82
+ warehouses = product.find('Warehouses')
83
+ if warehouses is not None:
84
+ warehouse_info = []
85
+ for warehouse in warehouses.findall('Warehouse'):
86
+ name_elem = warehouse.find('Name')
87
+ stock_elem = warehouse.find('Stock')
88
+
89
+ if name_elem is not None and stock_elem is not None:
90
+ warehouse_name = name_elem.text if name_elem.text else "Bilinmeyen"
91
+ try:
92
+ stock_count = int(stock_elem.text) if stock_elem.text else 0
93
+ if stock_count > 0:
94
+ warehouse_info.append(f"{warehouse_name}: {stock_count} adet")
95
+ except (ValueError, TypeError):
96
+ pass
97
+
98
+ return warehouse_info if warehouse_info else ["Hiçbir mağazada stokta bulunmuyor"]
99
+
100
+ return ["Ürün bulunamadı"]
101
+
102
+ except Exception as e:
103
+ print(f"Mağaza stok bilgisi çekme hatası: {e}")
104
+ return None
105
+
106
  # Trek bisiklet ürünlerini çekme - DÜZELTİLMİŞ VERSİYON
107
  try:
108
  print("🔍 XML DEBUG TEST BAŞLADI")
 
752
  try:
753
  product_result = improved_whatsapp_bot.process_message(user_message)
754
  if product_result['is_product_query'] and product_result['response']:
755
+ # Check if user is asking about specific warehouse/store location
756
+ if any(keyword in user_message.lower() for keyword in ['mağaza', 'mağazada', 'nerede', 'hangi mağaza', 'şube']):
757
+ # Get warehouse stock info for the found products
758
+ if product_result['products_found']:
759
+ warehouse_info_parts = []
760
+ for product in product_result['products_found'][:2]: # Max 2 products
761
+ product_name = product[2] # Full product name
762
+ warehouse_stock = get_warehouse_stock(product_name)
763
+ if warehouse_stock:
764
+ warehouse_info_parts.append(f"{product_name} mağaza stogu:")
765
+ warehouse_info_parts.extend(warehouse_stock)
766
+ warehouse_info_parts.append("")
767
+
768
+ if warehouse_info_parts:
769
+ warehouse_response = "\n".join(warehouse_info_parts)
770
+ messages.append({
771
+ "role": "system",
772
+ "content": f"MAĞAZA STOK BİLGİSİ (BF Space):\n{warehouse_response}\n\nSADECE bu bilgileri kullanarak kullanıcıya yardımcı ol."
773
+ })
774
+ product_found_improved = True
775
+ logger.info("✅ BF Space: Warehouse stock info used")
776
+
777
+ if not product_found_improved:
778
+ # Use improved search response directly
779
+ messages.append({
780
+ "role": "system",
781
+ "content": f"ÜRÜN BİLGİSİ (BF Space):\n{product_result['response']}\n\nSADECE bu bilgileri kullanarak kullanıcıya yardımcı ol. Bu bilgiler dışında ek bilgi ekleme."
782
+ })
783
+ product_found_improved = True
784
+ logger.info("✅ BF Space: Improved product search used")
785
  except Exception as e:
786
  logger.error(f"❌ BF Space: Improved search error: {e}")
787
 
 
964
  try:
965
  product_result = improved_whatsapp_bot.process_message(user_message)
966
  if product_result['is_product_query'] and product_result['response']:
967
+ # Check if user is asking about specific warehouse/store location
968
+ if any(keyword in user_message.lower() for keyword in ['mağaza', 'mağazada', 'nerede', 'hangi mağaza', 'şube']):
969
+ # Get warehouse stock info for the found products
970
+ if product_result['products_found']:
971
+ warehouse_info_parts = []
972
+ for product in product_result['products_found'][:2]: # Max 2 products
973
+ product_name = product[2] # Full product name
974
+ warehouse_stock = get_warehouse_stock(product_name)
975
+ if warehouse_stock:
976
+ warehouse_info_parts.append(f"{product_name} mağaza stogu:")
977
+ warehouse_info_parts.extend(warehouse_stock)
978
+ warehouse_info_parts.append("")
979
+
980
+ if warehouse_info_parts:
981
+ warehouse_response = "\n".join(warehouse_info_parts)
982
+ system_messages.append({
983
+ "role": "system",
984
+ "content": f"MAĞAZA STOK BİLGİSİ (BF Space Backup):\n{warehouse_response}\n\nSADECE bu bilgileri kullanarak kullanıcıya yardımcı ol."
985
+ })
986
+ product_found_improved = True
987
+
988
+ if not product_found_improved:
989
+ system_messages.append({
990
+ "role": "system",
991
+ "content": f"ÜRÜN BİLGİSİ (BF Space Backup):\n{product_result['response']}\n\nSADECE bu bilgileri kullanarak kullanıcıya yardımcı ol. Bu bilgiler dışında ek bilgi ekleme."
992
+ })
993
+ product_found_improved = True
994
  except Exception as e:
995
  print(f"BF Space backup: Improved search error: {e}")
996