SamiKoen commited on
Commit
5dd2ad6
·
verified ·
1 Parent(s): 3dd7ea5

XML ürün eşleştirmesi düzeltildi - doğru fiyat için tam eşleşme

Browse files
Files changed (1) hide show
  1. app.py +21 -3
app.py CHANGED
@@ -504,13 +504,31 @@ def chatbot_fn(user_message, history, image=None):
504
  has_stock_from_api = is_stock_query(user_message) and 'stock_info' in locals() and stock_info is not None
505
 
506
  # XML'den ürün bilgilerini al (fiyat, görsel, link için)
507
- input_words = user_message.lower().split()
 
 
 
 
 
 
508
  added_products_count = 0
509
- for word in input_words:
510
  if added_products_count >= 5: # Token limiti için maksimum 5 ürün
511
  break
512
  for product_info in products:
513
- if word in product_info[0] or word in product_info[2].lower():
 
 
 
 
 
 
 
 
 
 
 
 
514
  # API'den stok alındıysa veya ürün stokta ise bilgileri al
515
  if has_stock_from_api or product_info[1][0] == "stokta":
516
  # Fiyat bilgisi varsa al
 
504
  has_stock_from_api = is_stock_query(user_message) and 'stock_info' in locals() and stock_info is not None
505
 
506
  # XML'den ürün bilgilerini al (fiyat, görsel, link için)
507
+ if has_stock_from_api and 'product_name' in locals():
508
+ # API'den stok alındıysa, aynı ürün adıyla XML'de ara
509
+ search_words = product_name.lower().split()
510
+ else:
511
+ # Normal arama
512
+ search_words = user_message.lower().split()
513
+
514
  added_products_count = 0
515
+ for word in search_words:
516
  if added_products_count >= 5: # Token limiti için maksimum 5 ürün
517
  break
518
  for product_info in products:
519
+ # Daha spesifik eşleştirme yap
520
+ product_full_name = product_info[2].lower()
521
+ if has_stock_from_api and 'product_name' in locals():
522
+ # API'den gelen ürün adıyla tam eşleşme ara
523
+ if all(w in product_full_name for w in search_words):
524
+ match_found = True
525
+ else:
526
+ match_found = False
527
+ else:
528
+ # Normal kelime eşleştirme
529
+ match_found = word in product_info[0] or word in product_full_name
530
+
531
+ if match_found:
532
  # API'den stok alındıysa veya ürün stokta ise bilgileri al
533
  if has_stock_from_api or product_info[1][0] == "stokta":
534
  # Fiyat bilgisi varsa al