İki aşamalı arama sistemi eklendi
Browse files
app.py
CHANGED
@@ -503,16 +503,34 @@ def chatbot_fn(user_message, history, image=None):
|
|
503 |
if product_words:
|
504 |
product_name = ' '.join(product_words)
|
505 |
|
506 |
-
#
|
507 |
-
#
|
508 |
-
if 'fx sport' in product_name and '3' in product_name:
|
509 |
-
if 'al' in product_name:
|
510 |
-
# Kelime sırasını düzelt
|
511 |
-
product_name = 'fx sport al 3'
|
512 |
-
elif 'carbon' in product_name:
|
513 |
-
product_name = 'fx sport carbon'
|
514 |
stock_info = get_realtime_stock(product_name)
|
515 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
516 |
if stock_info:
|
517 |
# Stok bilgisini sistem mesajına ekle
|
518 |
system_messages.append({
|
|
|
503 |
if product_words:
|
504 |
product_name = ' '.join(product_words)
|
505 |
|
506 |
+
# İki aşamalı arama sistemi
|
507 |
+
# 1. Aşama: Direkt API'de ara
|
|
|
|
|
|
|
|
|
|
|
|
|
508 |
stock_info = get_realtime_stock(product_name)
|
509 |
|
510 |
+
# 2. Aşama: Bulamazsa XML'de benzer ürün bul ve onunla tekrar dene
|
511 |
+
if not stock_info:
|
512 |
+
print(f"API'de '{product_name}' bulunamadı, XML'de aranıyor...")
|
513 |
+
|
514 |
+
# XML'deki products listesinde ara
|
515 |
+
found_product = None
|
516 |
+
for _, product_info, full_name in products:
|
517 |
+
full_name_lower = full_name.lower()
|
518 |
+
# Tüm kelimeler ürün adında geçiyor mu?
|
519 |
+
if all(word in full_name_lower for word in product_words):
|
520 |
+
found_product = full_name
|
521 |
+
print(f"XML'de eşleşen ürün bulundu: {found_product}")
|
522 |
+
break
|
523 |
+
|
524 |
+
# Bulunan ürün adıyla API'yi tekrar çağır
|
525 |
+
if found_product:
|
526 |
+
# XML'deki ürün adını temizle (sadece ana ürün adını al)
|
527 |
+
# Örnek: "FX SPORT AL 3 L - KREM" -> "FX SPORT AL 3"
|
528 |
+
clean_name = found_product.split(' - ')[0] # Renk bilgisini çıkar
|
529 |
+
clean_name = ' '.join(clean_name.split()[:4]) # İlk 4 kelimeyi al (model adı genelde 4 kelime)
|
530 |
+
|
531 |
+
print(f"Temizlenmiş ürün adıyla tekrar deneniyor: {clean_name}")
|
532 |
+
stock_info = get_realtime_stock(clean_name.lower())
|
533 |
+
|
534 |
if stock_info:
|
535 |
# Stok bilgisini sistem mesajına ekle
|
536 |
system_messages.append({
|