XML ürün eşleştirmesi düzeltildi - doğru fiyat için tam eşleşme
Browse files
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 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
508 |
added_products_count = 0
|
509 |
-
for word in
|
510 |
if added_products_count >= 5: # Token limiti için maksimum 5 ürün
|
511 |
break
|
512 |
for product_info in products:
|
513 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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
|